Følgende lille simple Python-program udfører RSA-kryptering.
For at lave det så simpelt som muligt, så viser jeg kun principperne i kryptering og dekryptering, ikke bestemmelse af de forskellige konstanter der bruges til krypteringen og dekrypteringen.
Jeg har altså ‘snydt’ ved at bruge faste værdier for følgende størrelser \(p, q, \varphi(n), e, d\). Disse værdier har jeg beregnet ved brug af Maple. Det er samme værdier som jeg bruger i dokumentet ‘RSA med Maple’.
Man kan narurligvis også få sit Python-program til selv at beregne disse værdier, men nu handler det bare om at se hvordan der krypteres og dekrypteres ved brug af Python.
Programmet er vist herunder:
#####################
# To primtal p og q #
#####################
p = 1009
q = 2003
n = p*q
##############################
# Eulers phi-funktion phi(n) #
##############################
phi=(p-1)*(q-1)
################################################################
# Tallet e primisk med phi, og tallet d så ed = 1 (mod phi(n)) #
################################################################
e = 1009037
d = 730661
#######################################################
# Indtast din klartekst i form af et tal med få cifre #
#######################################################
m = int( input('Indtast et tal med fire cifre: ') )
###########################
# Krtptering af klartekst #
###########################
enc=pow(m,e,n)
###############################
# Dekryptering af krypt-tekst #
###############################
dec=pow(enc,d,n)
#########################################################
# Udskriv klartekst, krypt-tekst og dekodet krypt-tekst #
#########################################################
print('Din meddelelse er',m,sep=' ')
print('Kryptoteksten er',enc,sep=' ')
print('Dekrypteret er',dec,sep=' ')
Hvis du nu tænker; det vil jeg da gerne prøve, så hent Python og Idle fra siden
https://www.python.org/downloads/
Du får både editoren Idle og programmeringssproget Python med i pakken, så når du har instaleret er du klar til at komme i gang.
Husk at du kun må hente programmer fra kilder du stoler på!