03.12.2012 Views

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 ...

SHOW MORE
SHOW LESS

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).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!