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å!