You are on page 1of 7

Herunder skal der være en præsentation af den matematiske teori bag

RSA

RSA blev opfundet i USA af Ron Rivest, Adi Shamir og Leonard Adleman i august 1977 og var
starten på en ny tænkemode indenfor kryptografi, hvilket samtidigt åbnede døre for uendelige
mange muligheder. Men hvor kom denne ide fra, og var det ren tilfælde eller lå mange timer med
hårdt arbejde bag dette? Jeg har fundet et citat som kort beskriver hvordan man kom frem til dette
system også bedre kendt som RSA: ”Rivest og Shamit blev ved med at finde ideer til, hvordan man
kunne skabe et asymmetrisk krypteringssytem, og Adleman fandt huller i ideerne…”, Adleman nåde
i løbet af nogle måneder at knække 42 systemer som Rivest og Shamit havde forslået. Men en nat
blev Adleman vækket af en telefonopringning. Rivest havde nu nået til et 43 kryptosystem, hvilket
skulle være den afgørende.1

RSA-algoritmen er den bedst kendte metode til asymmetrisk kryptering, hvor krypterings og
dekrypteringsnøglerne er forskellige. Der er stadig tale om en forbindelse mellem de to nøgler,
ellers ville systemet ikke virke. RSA-algoritmen virker på den måde at man at man har en offentlig
nøgle som alle kan kende, og hvilket kan være lige meget eftersom man skal bruge den private
nøgle for at kunne læse beskeden. Hvis vi siger at Alice kender Bobs offentlige nøgle og gerne vil
sende Bob en besked, så tager hun sin RSA-enkrypter og kryptere den med Bobs offentlige nøgle.
Denne besked kan derefter kun læses af Bob, da han skal dekrypterer denne besked med sin
hemmelige nøgle. For at Bob kan være sikker på at det er Alice som skriver, kan Alice vælge at
kryptere en lille besked nederst på arket med hendes hemmelige nøgle, som Bob kan dekrypterer
med Alices offentlige nøgle.2

Talteori

For at kunne komme ind på matematikken i RSA, vil jeg kort forklare noget af det matematik
som ligger bag RSA-kryptosystemet. Der er en besked man vil sende, som står skrevet med et tal.
Beskeden som skal sendes bliver opdelt i mindre stykker hvor hvert stykke udgør et samlet tal.
Afsenderen vælger herefter to store primtal kaldt: p og q, derefter finder man produktet af dette som
kaldes n. n’et skal være et større tal end de tal som besked opdeles i.

1
Primtal – Matematikkens gådefulde tal fra A-Ø, s.228-229
2
Kryptologi – fra viden til videnskab, s.112-113
Når man skal starte med at kryptere og dekryptere skal man bruge n og to tal henholdsvis e og d.
e skal være et tal, som kun deler 1 som faktor med n, og opfylder 0<e< (n), hvor (n) = (p-1)(q-1).
Hvis man skulle vælge at e skal være et primtal, skal man være sikker på at e kun deler faktoren 1
med (n). Man skal huske at de to primtal p og q skal være på over 100 cifre og at n derfor skal
være meget stort.3 For at finde d skal man bruge e, d skal være det omvendte med e mod (n). Når
man nu kender både d og e kan man kryptere og dekryptere:

Kryptere: m→ m e ( mod n )=c , hvor m er den rigtige tekst og c er kryptoteksten.4

Dekryptere: c →c d ( mod n )=m , dette vil sige at man skal bruge samme nøgle til både at kryptere og
dekryptere. Dette ser indviklet ud men er tværtimod, hvis man følger den givende proces for RSA:

1. Vælg to store primtal p og q, hver på ca. 100 cifre


2. Beregn (n) = (p-1)(q-1)
3. Vælg et helt tal e, således at 0<e<(n) og (e,(n)) = er et primtal
4. Beregn tallet d, således at d = e−1 (mod (n))5

For at kunne starte med beviset om RSA vil jeg først introducere en række talteoretiske funktioner
nedenunder: Kinesiske restsætning, Eulers sætning, Fermats lille sætning og Regning med rest og
modulus.

Kinesiske restsætning

Den kinesiske restsætning har som navnet selv antyder fået fra Kina, hvor kalendereksperter
benyttede sætningen til at bestemmelse af et tidspunkt. Men der var et problem i denne sætning,
som blev for første gang behandlet i en bog Sun Tzui (ca. 400 e.kr.).

Sætningen lyder:
¿
Hvis vi lader a , b ∈ Z og lader n1 , n2 ∈ N , således at n1 og n2 =1, da har x ≡ a ( mod n 1) x ≡b (mod n2 )en
løsning bestemt ved modulus af n1 n2.
Man kan bestemme løsningen ved at:

3
Kryptologi – fra viden til videnskab, s.101
4
Kryptologi – fra viden til videnskab, s.102
5
Kryptologi – fra viden til videnskab, s.101
x ≡ at n 2+ bs n1 (mod n1 n2 ), hvor s n1 +t n 2=1.
Hvor man har valgt både s og t, så s n1 +t n 2=1
Jeg har valgt at fratage hele beviset, da det unødvendigt og langt.6

Eulers -sætning

Sætning lyder således:


Hvis ( a , n ) =1 gælder, at a φ ( n) ≡ 1(mod n)
Bevis:
Hvis vi lader r i ∈ Z n={r 1 , r 2 ,… , r φ (n ) }. Så er ( r i , n ) =1, og da ( a , n ) =1, er ( a r 1 , n ) =1. (hvis (a,n)=1 og
¿

(b,n)=1, så er (ab,n)=1)7. Da endvidere ( ar i ( mod n ) , n ) =( a r i , n ) =1 ((a,b)=(a,r), hvor r er resten af b

ved division med a)8, og a r i ( mod n ) <n , følger, at a r i (mod n) ∈ Z n.


¿

Lad nu r i , r j ∈ Z n og antag, at a r i ( mod n ) =a r j (mod n). Følger så, at r i ( mod n ) =r j , hvilket er det
¿

samme som r i=r j, idet r i <n og r j< n. Dvs., at tallene a r i ( mod n ) , i=1,2 , … ,φ (n) alle er forskellige.

Som det ser ud nu har vi at tallene a r 1 ( mod n ) , a r 2 ( mod n ) , … ,a r φ ( n) (mod n) er de samme som
r 1∗r 2∗…∗r φ (n ), men ikke nødvendigvis i samme rækkefølge. Derfor er:
r 1∗r 2∗…∗r φ (n ) ( mod n )=[a r 1 ( mod n )∗a r 2 ( mod n )∗…∗ar φ ( n) (mod n)]
Som vi får til:
r 1∗r 2∗…∗r φ (n ) ( mod n )=a r 1∗a r 2∗…∗a r φ (n )(mod n)

¿ a φ (n )∗r 1∗r 2∗…∗r φ (n )(mod n)

Da ( r i , n ) =1 for i=1,2 , … , φ(n), følger at vi kan forkorte r i ’erne væk. Tilbage står

a φ ( n) ( mod n )=1(mod n), hvilket er det samme som a φ ( n) ≡ 1(mod n)

Fermats lille sætning

6
Kryptologi – fra viden til videnskab, s.96, det lange bevis ses på s.98-99
7
Kryptologi – fra viden til videnskab, s.82
8
Kryptologi – fra viden til videnskab, s.75
Sætning:
Hvis p er et primtal og vi antager at ( p , a )=1, da vil det gælde at:
a p−1 ≡1(mod p).

For at bevise denne sætning, omskriver jeg den til den generelle sætning som lyder:
Hvis p er et primtal, så vil det gælde at for ethvert halt tal a, at
a p=a(mod p)

Bevis:
Vi antager at ( p , a )=1, hvis vi derefter multiplikation også bedre kendt som dividere med a på
begge sidder,a p−1 ≡1(mod p), hvilket vil sige at ( p , a ) ≠1, vil p|a, som dermed giver dette udtryk
p p
1 −1=0, hvorfor udtrykket a ≡ a(mod p)

Regning med rest og modulus

Sætning(1):
For vilkårlige hele tal m og n med n>0 gælder:
1. n∨m⇔ m ( mod n )=0
2. Hvis 0 ≤ m< n , så er m ( mod n )=m
3. ( m ( mod n ) ) ( mod n ) =m ( mod n )
4. ( m+k∗n ) ( mod n ) =m ( mod n ) , for alle k ∈ Z

Bevis(1):
1) Ifølge sætning 4.1 hvis n er divisor i m, såfremt findes der et helt tal q. Samt hvis vi følger
sætning 4.3 som siger at for vilkårlige hele tal m og n med n>0 findes åbenbart også bestemte tal q
og r.
2) Hvis tallet m er mindre end n, kan det skrives sådan m=0∗n+ m, må m blive den principale rest.
3) Hvis vi nu følger hvad 2) siger, at m ( mod n )=m, dermed er 3 også bevist.
4) Hvis man til sidst sætter m ( mod n )=r, så kan m skrives på formen q∗n+ r for et passende q ∈ Z.
Da vi nu har fundet m=q∗n+r, kan vi efterfølgende addere kn på begge sider af ligningen:
m+kn=( q+ k ) n+r, og da r er bestemt ved 0 ≤ r <n, er m+kn ( mod n )=r.9
9
Kryptologi – fra viden til videnskab, s.70-73
Sætning(2)
For alle a , b ∈ Z , n∈ N gælder dette:
1. ( a+ b ) ( mod n )=( a ( mod n ) +b ( mod n ) ) ( mod n )
2. ( a∗b )( mod n )=( a ( mod n )∗b ( mod n ) ) ( mod n )
t
3. a t ( mod n )=( a ( mod n ) ) ( mod n ) , t ∈ N

Bevis(2)
Da vi ved at ifølge sætning 4.3 at der findes hele tal q 1 , q 2 og r 1 , r 2, som kommer til at se således ud:
a=q 1 n+r 1, 0 ≤ r 1< n og b=q 2 n+ r 2, 0 ≤ r 2< n
Vi regner, ifølge sætning (1):
( a+ b ) ( mod n )=( ( q 1 n+r 1) + ( q2 n+r 2 ) ) ( mod n )

¿ ( ( r 1+ r 2 )+ ( q1 +q 2 ) n ) ( mod n )
¿ ( r 1 +r 2 ) ( mod n )

¿ ( a ( mod n )+ b ( mod n ) ) ( mod n)


Hvis vi nu regner på sætning (2):
( a∗b )( mod n )=( ( q1 n+r 1 )∗ ( q2 n+r 2 ) ) ( mod n )

¿ ( r 1 r 2 + ( q 1 q 2 n+ q1 r 2 +q2 r 1 ) n ) ( mod n )
¿ r 1 r 2 ( mod n )
¿( a ( mod n )∗b ( mod n ) )(mod n)
Nu har vi fundet eller vist 1 og 2. 3’eren er den samme som 2’eren men man ganger med et tal antal
gange.10

Bevis for RSA

Det som vi skal bevise er at et RSA.kryptosystem fungerer, det vil sige, at for alle 0<m<n gælder:
d
m→ me ( mod n ) → [ me ( mod n ) ] ( mod n )=med ( mod n ) =m

Vi har denne sætning (1) som jeg vil bevise, og som lyder således:

10
Kryptologi – fra viden til videnskab, s.73-74
m→ m e ( mod n )=m , og hvis jeg følger opskriften fra Eulers -sætning får jeg:

m ed ( mod n ) ≡ m ed ( mod (n )) (mod n), hvis (m,n) = 1 må der fås:

ed ≡1( mod ( n )), heraf er sætning (1) løst.11

Nu da jeg har bevist sætning (1), vil jeg tage fat i sætning (2) som lyder ( m , n ) ≠ 1, hvor vi har to
forskellige primtal p og q, som n er produktet af og en divisor til m. Her gøre jeg brug af den
kinesiske restsætning:

med ≡ m ( mod p ) med ≡ m ( mod q ) → med ≡ m(mod p∗q)

Beviset er ikke færdigt i nu, da vi startede med at definere 0<m<n, ved vi at vores to primtal må
være forskellige. Vi må antage at enten p eller q er divisor i m. Hvis p er divisor i m, så er (q,m) =
1:

med ≡ m ( mod p ) → med ≡m(mod q), vi skal bevise med ≡ m( mod q)

q kan ikke være divisior i m, når vi har antaget at p er:

p∨m→ q m derfor må ( q , m ) =1

Her gør jeg brug af Fermats lille sætning som siger, som tidligere nævnt:

mq−1 ≡ 1 ( mod q ) → ed ≡ 1(mod( n))

Kan vi nu finde et helt tal k, ved at:

ed ≡1+k (n)

Nu omskriver jeg med , så jeg får:

k( p−1)
m ed =m 1+kφ (n )=m∗m k ( q−1) ( p−1 )=m ( mq −1 )
Nu gør jeg brug af mine sidste sætninger Regning med rest og modulus:

k ( p−1 )
[
med ( mod q )= m ( mod q )∗[ mq−1 ( mod q ) ] ]
( mod q ) ( mod q )

med (mod q)= [ m ( mod q )∗1 ] (mod q) med (mod q)=m(mod q)

11
Kryptologi – fra viden til videnskab, s.105
Q.E.D

You might also like