RSA med Python

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