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 ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
82 <strong>RSA</strong>-algoritmen<br />
Det første vi gør er at oversætte vores meddelelse i ord til et heltal<br />
mellem 0 <strong>og</strong> n. For nemheds skyld <strong>og</strong> <strong>for</strong> ikke at overstige n kan vi bryde<br />
en lang meddelelse op i mindre blokke. Disse kan så oversættes til heltal<br />
ved hjælp af det samme skema vi <strong>anvendte</strong> til Cæsar-kryptering i <strong>for</strong>rige<br />
afsnit, tabel 4.1. Vi kalder <strong>den</strong>ne numeriske <strong>for</strong>m, altså en sådan blok<br />
af vores meddelelse, <strong>for</strong> M. Krypteringen af M <strong>for</strong>egår ved at opløfte<br />
M i e <strong>og</strong> tage modulo n af resultatet. Ud af dette får vi et nyt heltal,<br />
kaldet C <strong>for</strong> kryptoteksten, som altså er resten af M e ved division med<br />
n. Selve algoritmen <strong>for</strong> <strong>RSA</strong>-(ind)krypteringen, som vi vil kalde E, kan<br />
altså opskrives som proceduren<br />
C ≡ E(M) ≡ M e (mod n). (4.1)<br />
Det vigtige at <strong>for</strong>stå i <strong>for</strong>bindelse med <strong>RSA</strong>-kryptosystemet er, at de<br />
to individer der ønsker at udveksle en meddelelse ikke benytter <strong>den</strong> samme<br />
offentlige nøgle KE til kryptering. Når Alice sender en meddelelse til Bob<br />
benytter hun hans offentlige nøgle <strong>og</strong> når Bob sender en meddelelse til<br />
Alice benytter han hendes. Der er altså to offentlige nøgler i spil, hver med<br />
<strong>for</strong>skelligt n <strong>og</strong> e, <strong>og</strong> skulle vi bære os helt korrekt ad burde vi opskrive<br />
Alices nøgle som KE = (nA, eA) <strong>og</strong> Bobs som KE = (nB, eB). Udfra hver<br />
sin offentlige nøgle genererer Alice <strong>og</strong> Bob hver sin private nøgle KD til<br />
dekryptering. Denne består af heltallet n samt et andet positivt heltal, d,<br />
som er valgt således, at det er en invers af e modulo (p − 1)(q − 1). Med<br />
symboler skriver vi<br />
ed ≡ 1 (mod (p − 1)(q − 1)).<br />
Bemærk, at da e er valgt således, at sfd(e, (p − 1)(q − 1)) = 1 ved vi fra<br />
sætning 3.13 at en sådan invers d eksisterer, <strong>og</strong> tilmed er entydig modulo<br />
(p − 1)(q − 1). Dekrypteringsnøglerne <strong>for</strong> henholdsvis Alice <strong>og</strong> Bob er<br />
altså, KD = (nA, dA) <strong>og</strong> KD = (nB, dB). Dekrypteringen af <strong>den</strong> afsendte<br />
kryptotekst C sker nu ved hjælp af dekrypteringsalgoritmen, kaldet D:<br />
D(C) ≡ C d (mod n). (4.2)<br />
Det spørgsmål der imidlertid står tilbage er om man nu <strong>og</strong>så rent<br />
faktisk får meddelelsen M ud af at køre dekrypteringsalgoritmen på<br />
kryptoteksten C. Det kan man bevise matematisk at man gør <strong>og</strong> det er<br />
netop til dette <strong>for</strong>mål, at vi får brug <strong>for</strong> de tre sætninger fra kapitel 3:<br />
Den kinesiske restsætning, Fermats lille sætning <strong>og</strong> Eulers sætning. Vi<br />
skal altså vise følgende sætning:<br />
Sætning 4.2<br />
Ved anvendelse af <strong>RSA</strong>-dekrypteringsalgoritmen, D(C), på kryptoteksten<br />
C fås <strong>den</strong> oprindeligt krypterede meddelelse M. Med symboler skriver vi<br />
D(C) ≡ M (mod n).