RSA og den heri anvendte matematiks historie - Institut for Natur ...
RSA og den heri anvendte matematiks historie - Institut for Natur ...
RSA og den heri anvendte matematiks historie - Institut for Natur ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
4.2 <strong>RSA</strong>-kryptering <strong>og</strong> dekryptering 81<br />
Det at begynde at tælle henholdsvis <strong>for</strong>fra <strong>og</strong> bagfra i alfabetet er nu lige<br />
pludselig ‘automatisk’ indlejret i <strong>den</strong> matematiske <strong>for</strong>mel som nu udgør<br />
Cærsars metode til kryptering. Brugen af modulo gør det <strong>og</strong>så meget<br />
lettere at opskrive Cæsar-kryptering <strong>og</strong> dekryptering som en algoritme<br />
(se opgave 57).<br />
Også <strong>RSA</strong>-kryptering gør brug af modulo-regning omend på en n<strong>og</strong>et<br />
mere sofistikeret vis, idet brugen af kongruenser her er indlejret i de i<br />
kapitel 3 præsenterede talteoretiske resultater. Det som gør <strong>RSA</strong> til så<br />
stærkt et system, i <strong>for</strong>hold til <strong>for</strong> eksempel Cæsar-kryptering, er, at det<br />
udover at være resistent over<strong>for</strong> simple angreb baseret på frekvensanalyse,<br />
bygger på et af matematikkens store (uløste) problemer; primfaktorisering<br />
af store heltal. Et problem hvor det er vældig nemt at gå <strong>den</strong> ene vej; at<br />
bestemme et stort heltal n ved at gange to eller flere store primtal sammen.<br />
Men hvor det <strong>for</strong> alle praktiske anvendelser er alt, alt <strong>for</strong> tidskrævende<br />
at gå <strong>den</strong> an<strong>den</strong> vej; at primfaktorisere n. Og netop <strong>den</strong>ne matematiske<br />
envejsfunktion udgør grundstenen i Rivests, Shamirs <strong>og</strong> Adlemans<br />
kryptosystem. Lad os se hvordan.<br />
4.2 <strong>RSA</strong>-kryptering <strong>og</strong> dekryptering<br />
<strong>RSA</strong>-kryptosystemet består af såvel en procedure til (ind)kryptering af en<br />
meddelelse som en procedure til dekryptering af <strong>den</strong>ne. Disse procedurer er<br />
fuldstændig fastlagt <strong>og</strong> der er der<strong>for</strong> tale om en algoritme: <strong>RSA</strong>-algoritmen.<br />
Ideen i <strong>RSA</strong> er at de to individer, Alice <strong>og</strong> Bob, der ønsker at udveksle<br />
en meddelelse på sikker vis begge er i besiddelse af en offentlig nøgle KE<br />
til kryptering af <strong>den</strong>ne (K står <strong>for</strong> ‘key’ <strong>og</strong> E <strong>for</strong> ‘encryption’). Nøglen<br />
består af to positive heltal n <strong>og</strong> e, vi skriver KE = (n, e). Her er<br />
n = p · q,<br />
hvor p <strong>og</strong> q er store primtal (eksempelvis på 200 cifre hver) <strong>og</strong> heltallet e<br />
er valgt på en sådan måde, at<br />
sfd(e, φ(n)) = 1.<br />
Ved hjælp af sætning 3.30 kan vi med det samme omskrive dette til<br />
sfd(e, (p − 1)(q − 1)) = 1.<br />
Primtallene p <strong>og</strong> q er hvad vi kan tænke på som ‘tilfældige’ primtal af en<br />
vis cifferlængde. Der findes metoder til at generere sådanne primtal, men<br />
det skal vi ikke komme nærmere ind på her. Pointen i <strong>RSA</strong> er at man<br />
ikke udsætter systemet <strong>for</strong> fare ved at gøre nøglen KE = (n, e) offentlig.<br />
Som vi skal se ne<strong>den</strong><strong>for</strong>, skal man <strong>for</strong> at være i stand til dekryptere<br />
meddelelsen kende n’s primfaktorisering pq, <strong>og</strong> som vi allerede har diskuteret<br />
i <strong>for</strong>bindelse med aritmetikkens fundamentalsætning er det at<br />
finde primfaktoriseringen <strong>for</strong> meget store heltal en så besværlig process,<br />
at det til dags dato i praksis ikke lader sig gøre. Hvor<strong>for</strong> vi netop vælger<br />
heltallet e som vi gør vil fremgå senere.