3.1 RSA: nøkkelgenerering, kryptering og dekryptering
RSA-algoritmen fra ende til ende: n=pq, ϕ(n)=(p−1)(q−1), finn d fra e·d≡1 mod ϕ(n) via Euklid, krypter/dekrypter med effektiv potensopphøyning — og korrekthetsbeviset (Mᵉ)ᵈ≡M via Euler/Fermat.
Oppgavetypen er sjanger D — RSA og dekryptering (sjangerbokstavene er bokas egne forkortelser, forklart i kap. 0.1).
| Variant | Hva den krever | Frekvens |
|---|---|---|
| Dekrypter med oppgitt | kvadrer-og-multipliser | den enkleste, forekommer ofte |
| Finn selv, og dekrypter | + Euklids algoritme | hovedvarianten |
| Bygg et helt nøkkelpar fra | hele oppsettet | forekommer |
| Vis at dekrypteringen gjenoppretter meldingen | korrekthetsbeviset fra Euler/Fermat | forekommer |
Fasitens grep: gir ; finn fra med Euklids algoritme baklengs; dekrypter med og vis kvadrer-og-multipliser-stegene.
Prioritet: høyeste. Oppgaven er nesten alltid der, den er alltid bygget på samme måte, og den bruker bare verktøy du alt har: Euklids algoritme fra kap. 1.2 og Eulers teorem fra kap. 2.1.
Det nye er ikke matematikken, men rammen. RSA er tre kjente teknikker satt sammen i en bestemt rekkefølge — og det er rekkefølgen og navngivningen som gir uttelling.
Eksamen er hjelpemiddelkode D: ingen bok, ingen formelsamling, ingen tabeller, ingen egne notater — bare en enkel kalkulator som ikke kan faktorisere og ikke kan regne .
Må sitte utenat:
- oppsettet: , , offentlig nøkkel med , privat med
- kryptering og dekryptering
- kvadrer-og-multipliser som prosedyre
- Euklids algoritme frem og baklengs, som er den ene måten å finne
Utledes på stedet:
- korrektheten . Fra er fra Eulers teorem når . Tre linjer, og hele utledningen står ført ut i løkke 4 — sammen med tilfellet der eller deler .
- ut av multiplikativiteten og . Én linje.
- selv: koeffisientene i Bézout-likningen finnes ikke utenat — de leses ut av substitusjonskjeden, hver gang.
Selvtest, fem minutter: dekk til siden og skriv ned hele oppsettet med alle fire størrelsene og hvordan de henger sammen. Deretter: utled korrektheten i tre linjer. Klarer du begge, sitter sjanger D.
Prosedyrer pugges ved å kjøres. Bygg tre nøkkelpar med penn og papir.
Forkunnskaper
Fra boka: kap. 1.2 (Euklids algoritme frem og baklengs — motoren bak ), kap. 1.4 (modulær invers), kap. 2.1 (Eulers teorem, , kvadrer-og-multipliser), kap. 2.2 (Fermats lille teorem — brukes i korrekthetsbeviset) og kap. 2.4 (CRT — brukes i beviset og i den raske dekrypteringen).
Sist du var her. De tre resultatene RSA hviler helt på, ferdig oppfrisket:
1. Bézout og modulær invers. Er , finner Euklids algoritme baklengs tall med
og lest modulo gir det — altså er inversen til . Dette er hele metoden for å finne .
2. av et produkt av to primtall. Ved multiplikativiteten og :
3. Eulers teorem. Når :
Dette er grunnen til at RSA virker i det hele tatt.
Fra videregående er ingenting påkrevd.
En hengelås alle kan låse, og bare én kan åpne
Du skal sende et kortnummer til en nettbutikk. Alle som lytter på linja, kan lese det som sendes. Hvordan kan butikken få nummeret uten at lytteren får det — når du og butikken aldri har møtt hverandre og ikke har avtalt noen felles hemmelighet?
Bildet som løser det: butikken sender ut tusenvis av åpne hengelåser til hvem som helst. Alle kan ta en lås, legge meldingen i en boks og klikke låsen igjen. Men nøkkelen til låsene har butikken beholdt selv. Lytteren har en boks han ikke får opp, og en lås han ikke får noe ut av.
Det er offentlig-nøkkel-kryptografi: én nøkkel til å låse (offentlig), en annen til å åpne (privat). RSA er den første og mest kjente realiseringen, publisert i 1977 av Rivest, Shamir og Adleman — og den er bygget nesten utelukkende av det du har lært i Del 1 og Del 2.
Den matematiske låsen: velg to primtall og , og la være offentlig. Å gange og er lett; å faktorisere tilbake til og er praktisk umulig når tallene er store nok. Det er hele asymmetrien.
Og nøkkelen: den som kjenner og , kan regne og dermed finne inversen til krypteringseksponenten . Den som bare kjenner , kan ikke — for å regne måtte han faktorisert .
Hva du skal kunne etter kapitlet: bygge et nøkkelpar fra oppgitte ; kryptere og dekryptere for hånd; og utlede hvorfor dekrypteringen gjenoppretter meldingen. Det siste er en eksamensoppgave i seg selv, og det er tre linjer når du har Eulers teorem.
Tidsanslag for kapitlet: ~60 minutter lesetid, fordelt på fem løkker à 10–14 minutter. Regner du med penn underveis, som du bør her, legg til omtrent halvparten.
Løkke 1: Oppsettet — de fem størrelsene
~11 minutter.
RSA har fem tall, og hvert av dem har en rolle. Kan du rollene, kan du hele sjangeren — de fleste feilene på eksamen er rolleforvekslinger, ikke regnefeil.
1. To ulike primtall og — hemmelige. Disse velges først.
2. Modulusen — offentlig.
3. — hemmelig, fordi den avslører faktoriseringen.
4. Krypteringseksponenten — offentlig, valgt med .
5. Dekrypteringseksponenten — hemmelig, løst fra
Den offentlige nøkkelen er paret . Den private er (sammen med og , som eieren beholder).
Hele oppsettet må sitte utenat. Det er utgangspunktet for hvert delpunkt i sjanger D.
Merk hva som er offentlig og hva som ikke er: og kan alle se. , , og er hemmelige — og de tre siste følger av hverandre: kjenner du én, kan du finne de andre. Det er derfor sikkerheten står og faller på at ikke kan faktoriseres.
Kravet er ikke pynt: uten det finnes ingen invers (kap. 1.4), og systemet kan ikke dekryptere.
Dette utledes på stedet, én linje. Siden er , så multiplikativiteten gir , og for primtall (kap. 2.1).
Den mest belagte feilen i sjanger D er å regne galt. To varianter:
- — det ville betydd at var et primtall. For er , ikke .
- eller lignende — gang ut riktig: .
Kontrollen: skal være et partall (for ) og en god del mindre enn . For med tosifrede primtall er typisk – av .
Eksempel: , gir og . Kontroll: ✓.
Utledes på stedet: har du og , så kjenner du summen og produktet . Da er og røttene i andregradslikningen
som du løser med formelen fra videregående.
Kontroll med tall: , gir , og har røttene , altså og ✓.
Konklusjonen er verdt å merke seg: «finn » og «faktoriser » er like vanskelige problemer. Derfor hviler hele sikkerheten på ett punkt — at store tall er vanskelige å faktorisere.
Og derfor er dette et yndet teoretisk delpunkt: «forklar hvorfor det ikke er tryggere å offentliggjøre enn og ». Svaret er utledningen over.
Hvorfor kravet: uten har ingen invers modulo (kap. 1.4), så finnes ikke, og meldingen kan ikke dekrypteres entydig.
Slik sjekker du kravet for hånd: faktoriser (den er , altså et produkt av to tall du kjenner), og se om har noen primfaktor felles med den. Eller kjør Euklids algoritme på og — du trenger den likevel for å finne .
Eksempel: . Da er lovlig (), mens ikke er ().
Merk at ofte er et lite primtall i praksis, fordi små gjør krypteringen rask. På eksamen er typisk ensifret eller lite tosifret.
Og merk at ikke behøver være et primtall — kravet er bare at den er relativt primisk til . er lovlig hvis .
La og .
a) Finn og .
b) Er et lovlig valg? Og ?
c) Hva er offentlig og hva er hemmelig i dette systemet?
Og ved multiplikativiteten til , siden :
Kontroll: ✓. Og er et partall, mindre enn ✓.
b) Kravet er . Vi faktoriserer .
- : primtallet deler verken eller , så ✓. Lovlig.
- : , og , så ✗. Ikke lovlig — det finnes ingen invers , og systemet kunne ikke dekryptere.
c)
| Størrelse | Verdi | Status |
|---|---|---|
| offentlig | ||
| offentlig | ||
| , | , | hemmelig |
| hemmelig | ||
| (finnes i løkke 2) | hemmelig |
Sluttsvar: , ; er lovlig, er ikke; er den offentlige nøkkelen.
Merk at tallene her er små nok til at hvem som helst kan faktorisere på et halvt minutt — systemet er altså ikke trygt. Det er med vilje: eksamensoppgavene bruker tall som er regnbare for hånd. I virkelige systemer har og flere hundre siffer hver.
La og .
a) Finn og .
b) Avgjør om og er lovlige valg av krypteringseksponent.
Løkke 2: Å finne — Euklids algoritme baklengs
~12 minutter.
Dette er hovedvarianten på eksamen: du får , og (eller og med lett å faktorisere), og skal finne . Metoden er den samme som for modulær invers i kap. 1.4 — Euklids algoritme frem og baklengs.
— naturlig pausepunkt —
Prosedyren:
1. Regn .
2. Kjør Euklids algoritme frem på og . Sluttsvaret skal være — det bekrefter samtidig at var et lovlig valg.
3. Kjør substitusjonskjeden baklengs til .
4. Les likningen modulo : , så . Ligger utenfor , legg til .
Prosedyren må sitte utenat, og føringen frem OG baklengs er føringskravet (kap. 1.2): et oppgitt uten kjeden er et sluttall uten metode.
Koeffisientene utledes på stedet — de finnes ikke i noen tabell, og under kode D finnes det heller ingen tabell.
Kontrollen tar tjue sekunder og bør gjøres hver gang: regn ut og sjekk at det gir rest ved divisjon med . Er , og : ✓.
Den offentlige nøkkelen i et RSA-system er .
a) Faktoriser , og finn .
b) Finn dekrypteringseksponenten .
c) Kontrollér svaret.
Altså , og ved multiplikativiteten
b) Finn som inversen til modulo , med Euklids algoritme (kap. 1.2):
(i) Divisjonskjeden frem. Vi deler gjentatt med rest, ved Euklids algoritme, til resten blir :
Den siste resten som ikke er , er . Altså er . Kjeden har 3 divisjonslinjer.
(ii) Substitusjonskjeden baklengs. Vi løser den nest siste linja for resten og substituerer oppover, linje for linje:
Sett inn :
(iii) Konklusjon. Altså er
Kontroll ved innsetting: . Stemmer.
Vi leser likningen modulo . Leddet er et multiplum av og faller bort:
Altså er .
Kontroll: , og , så resten er . Stemmer.
Altså er .
c) Kontroll. , og , så
Sluttsvar: , , og .
Hvor føringspoengene sitter:
- faktoriseringen er vist, ikke bare påstått — den er premisset for ;
- er begrunnet med multiplikativiteten;
- Euklids algoritme er ført frem OG baklengs, som er føringsstandarden i emnet;
- kontrollen er utført — den fanger den ene feilen du ellers ikke oppdager.
Merk at faktoriseringen var mulig fordi er lite. Med et 600-sifret ville steg a) vært umulig, og det er nettopp derfor RSA er trygt i praksis.
Den offentlige nøkkelen er .
a) Faktoriser og finn .
b) Finn med Euklids algoritme, ført frem og baklengs.
c) Kontrollér at .
Løkke 3: Kryptering og dekryptering
~13 minutter.
Nå selve operasjonene. Begge er potensberegninger modulo , og begge føres med kvadrer-og-multipliser fra kap. 2.1 — mellomstegene skal stå.
Dekryptering (bare eieren, med den private ):
Begge må sitte utenat, og de er lette å forveksle. Minnekroken: for «encrypt», for «decrypt» — og er den offentlige, så den brukes til å låse.
Meldingen må være et tall med . Er meldingen tekst, kodes den først om til tall (og deles i blokker mindre enn ). Den omkodingen er ikke tallteori, og eksamensoppgavene gir derfor som et tall direkte.
Begge operasjonene føres med kvadrer-og-multipliser, med binærutviklingen av eksponenten og kvadrattabellen synlig. Fasitene dokumenterer mellomstegene, og et sluttall uten dem er et svar uten metode.
Merk at eksponentene her IKKE reduseres med Eulers teorem på samme måte som i kap. 2.1: og er alt mindre enn . Men den raske veien via og finnes — se løkke 5.
Bruk den offentlige nøkkelen til å kryptere meldingen .
Vi regner med kvadrer-og-multipliser (kap. 2.1).
(v) Binærutviklingen av eksponenten og de suksessive kvadratene. Vi skriver eksponenten som en sum av toerpotenser: , altså i binær er . Deretter kvadrerer vi oss oppover, og reduserer modulo etter hvert kvadrat:
| Potens | Utregning | Rest modulo |
|---|---|---|
| — | ||
| , og |
(vi) Sett sammen produktet. Da er
og vi multipliserer to av gangen, med reduksjon underveis: ; .
Konklusjon. Den krypterte meldingen er .
Kontroll av størrelsen: skal ligge mellom og ✓.
Merk at i seg selv er lite nok til å regnes direkte her — ✓, samme svar. Men det er ikke poenget: med en større eksponent renner kalkulatoren over, og kvadrer-og-multipliser er den prosedyren som alltid virker. Fasitene krever den ført, uansett hvor små tallene er.
I systemet med og : dekrypter den mottatte meldingen , og kontrollér mot eksempel 3.
Vi regner med kvadrer-og-multipliser.
(v) Binærutviklingen av eksponenten og de suksessive kvadratene. Vi skriver eksponenten som en sum av toerpotenser: , altså i binær er . Deretter kvadrerer vi oss oppover, og reduserer modulo etter hvert kvadrat:
| Potens | Utregning | Rest modulo |
|---|---|---|
| — | ||
| , og | ||
| , og | ||
| , og | ||
| , og |
(vi) Sett sammen produktet. Da er
og vi multipliserer to av gangen, med reduksjon underveis: ; ; ; .
Konklusjon. Den dekrypterte meldingen er — nøyaktig meldingen vi krypterte i eksempel 3 ✓.
Antall operasjoner: eksponenten ga fire kvadrater og fire multiplikasjoner, altså åtte steg, alle med tall under . Det er typisk for en RSA-dekryptering på eksamen, og det tar ~6 minutter med penn.
Ser du på binærutviklingen, forstår du hvorfor eksamensoppgavene ofte har en med få enere: har fem enere og krever fire multiplikasjoner, mens ville krevd fem kvadrater og ingen multiplikasjon. Det er den samme regningen, men færre steg å gjøre feil i.
I løkke 5 ser vi en snarvei: dekryptering via og hver for seg, som gir mindre eksponenter. Begge veier er fullgode.
Et RSA-system har , og .
a) Finn og , og bekreft at er et lovlig valg.
b) Krypter meldingen .
c) Dekrypteringseksponenten er . Kontrollér at .
I systemet med og : dekrypter den mottatte meldingen , og kontrollér mot oppgave 3.
Løkke 4: Korrekthetsbeviset
~13 minutter.
Hvorfor gjenoppretter dekrypteringen meldingen? Dette er et eget delpunkt i arkivet, og svaret er tre linjer med Eulers teorem — pluss et tilfelle du må behandle separat.
— naturlig pausepunkt —
Bevis, tilfelle 1: . Fra finnes et helt tall med
Da er
der vi brukte Eulers teorem (kap. 2.1) i siste skritt.
Det var tre linjer. Derfor står korrektheten i «utledes på stedet»-listen: du skal ikke pugge den som et faktum, du skal kunne føre den.
Bevis, tilfelle 2: . Da deler eller tallet (siden ), og Eulers teorem gjelder ikke modulo . Vi viser påstanden modulo og modulo hver for seg, og setter sammen med det kinesiske restteoremet.
Modulo , to undertilfeller:
- : da er , og også . Begge sider er , så .
- : fra Fermats lille teorem (kap. 2.2) er . Siden , er et multiplum av , og dermed
Altså er i alle tilfeller, og med samme argument .
Sett sammen: og er ulike primtall, så , og ved det kinesiske restteoremet (kap. 2.4) følger
Merk hvorfor tilfelle 2 er verdt arbeidet: uten det gjelder RSA bare for meldinger som er relativt primiske til . Med det gjelder det for alle meldinger — og det er en eksamensoppgave i seg selv å se at tilfellet finnes.
Case-analysen er uttømmende: enten er , eller , eller (eller begge, som er ).
Kortversjonen du skal kunne skrive kaldt, for tilfellet :
1. betyr for et helt tall .
2. Da er .
3. Fra Eulers teorem er , så .
Dette utledes på stedet — tre linjer, under et minutt.
Hva som MÅ stå i besvarelsen:
- at (altså hva kongruensen betyr);
- teoremnavnet «fra Eulers teorem»;
- vilkåret , og — hvis oppgaven sier «alle » — tilfellet der eller deler .
Den vanligste mangelen: å hoppe over -tilfellet når oppgaven ber om «alle meldinger». Da er case-analysen ikke uttømmende, og bevisstruktur teller for seg selv i dette faget.
Den nest vanligste: å ikke navngi Eulers teorem. Det er der argumentet hviler, og et argument uten teoremnavn er en byggefeil.
La med primtall, og la oppfylle .
a) Vis at for alle med .
b) Forklar hvorfor argumentet i a) ikke dekker tilfellet der deler , og vis at påstanden likevel holder da.
c) Kontrollér påstanden numerisk for , , og (merk at ).
Løkke 5: Eksamensnivå — bygg et helt nøkkelpar, og den raske veien
~11 minutter.
Til slutt hele oppgaven fra ende til ende, og en andre vei til dekrypteringen som er raskere for hånd når du kjenner og .
Kjenner du og (og det gjør eieren av nøkkelen), kan du dekryptere uten å regne modulo :
1. Reduser eksponenten mot hvert primtall: og — lovlig fra Fermats lille teorem (kap. 2.2).
2. Regn to små potenser: og .
3. Sett sammen med CRT (kap. 2.4) til modulo .
Hvorfor det er raskere for hånd: eksponentene og er mindre enn og , altså mye mindre enn — og tallene du kvadrerer, er mindre enn og i stedet for mindre enn .
Begge veier er fullgode. Den direkte veien () krever ingenting utover den offentlige nøkkelen og ; den raske veien krever at du kjenner faktoriseringen. Si hvilken du bruker.
Merk at dette også er en sikkerhetsobservasjon: en angriper som bare har og , kan ikke bruke denne veien — den forutsetter nøyaktig den hemmeligheten han ikke har.
Kravet i steg 1: og . Er ett av dem brutt, er den tilhørende resten , og du regner den direkte.
La , og .
a) Bygg RSA-nøkkelparet: finn , og .
b) Krypter meldingen .
c) Dekrypter resultatet med den direkte metoden.
d) Dekrypter det på nytt via og , og sammenlign metodene.
, og ✓, så er et lovlig valg.
er inversen til modulo , funnet i eksempel 2: . Kontroll: ✓.
Offentlig nøkkel: . Privat nøkkel: (med , ).
b) Kryptering av .
(v) Binærutviklingen av eksponenten og de suksessive kvadratene. Vi skriver eksponenten som en sum av toerpotenser: , altså i binær er . Deretter kvadrerer vi oss oppover, og reduserer modulo etter hvert kvadrat:
| Potens | Utregning | Rest modulo |
|---|---|---|
| — | ||
| , og | ||
| , og |
(vi) Sett sammen produktet. Da er
og vi multipliserer to av gangen, med reduksjon underveis: ; .
Den krypterte meldingen er .
c) Dekryptering, direkte metode.
(v) Binærutviklingen av eksponenten og de suksessive kvadratene. Vi skriver eksponenten som en sum av toerpotenser: , altså i binær er . Deretter kvadrerer vi oss oppover, og reduserer modulo etter hvert kvadrat:
| Potens | Utregning | Rest modulo |
|---|---|---|
| — | ||
| , og | ||
| , og | ||
| , og | ||
| , og |
(vi) Sett sammen produktet. Da er
og vi multipliserer to av gangen, med reduksjon underveis: ; ; ; .
Vi får — den opprinnelige meldingen ✓.
d) Dekryptering via og .
Steg 1: reduser eksponenten mot hvert primtall.
(Lovlig fra Fermats lille teorem, siden og .)
Steg 2: to små potenser.
Modulo : , så . Da er
Kvadrer-og-multipliser: (siden ), , og med :
siden .
Modulo : , så . Da er, siden er et oddetall,
Vi regner : , (siden ), , og med :
siden . Altså
Steg 3: sett sammen med CRT. Vi søker med
Suksessiv innsetting. Vi starter i kongruensen med størst modulus, fordi den gir færrest tall å prøve, og arbeider oss nedover.
Fra skriver vi
Setter vi dette inn i , får vi
Inversen til modulo er (kontroll: ), så .
Da er , og
altså .
Kontroll — sett inn i ALLE kongruensene: ✓; ✓. Samme svar som formelen gir.
Vi får — samme svar som i c) ✓.
Sammenligning av de to veiene:
| Direkte () | Via og | |
|---|---|---|
| Krever | og | , og |
| Eksponenter | og | |
| Tallstørrelse i tabellene | under | under |
| Antall steg | 8 | 3 + 3 + CRT |
| Virker for en angriper | ja (om han har ) | nei — krever faktoriseringen |
Begge er fullgode, og fasitene i arkivet honorerer dem likt. Den direkte er enklest å huske; den via og er raskest når tallene vokser, fordi du regner med små tall hele veien.
Sluttsvar: , , ; ; og dekrypteringen gir på begge veier.
Et RSA-system har , og .
a) Finn , og .
b) Krypter meldingen .
c) Dekrypter resultatet, og kontrollér at du får tilbake.
En angriper fanger opp den krypterte meldingen i et system med offentlig nøkkel .
a) Forklar hva angriperen må gjøre for å finne , og hvorfor det er vanskelig når er stor.
b) Gjør det for dette systemet: faktoriser , finn og .
c) Dekrypter .
Fem feil står for nesten alt som går galt i sjanger D, og de fire første er dokumentert i løsningsforslagene.
- regnet feil. Å bruke i stedet for , eller å gange ut galt. Kontrollen: — regn den på begge måter og sammenlign. For : og ✓.
- funnet feil (Euklid baklengs-slurv). Den vanligste tallfeilen. Kontrollen: regn og sjekk at det gir rest ved divisjon med . Tjue sekunder, og du er sikker.
- Kvadrer-og-multipliser hoppet over. Sluttallet uten kvadrattabell er et svar uten metode, og instruksen på hvert sett er at alle svar må begrunnes. Kontrollen: har besvarelsen en binærutvikling og en tabell?
- og blandet. Å kryptere med eller dekryptere med . Kontrollen: er offentlig og brukes til å låse; er privat og brukes til å åpne. Skriv ned hvilken du bruker, med navn.
- Euler eller Fermat ikke navngitt i korrekthetsargumentet. Beviset hviler på teoremet, og et argument uten teoremnavn er en byggefeil. Kontrollen: står ordene «fra Eulers teorem» der brukes?
- -tilfellet glemt når oppgaven ber om «alle meldinger». Da er case-analysen ikke uttømmende. Kontrollen: står det «for alle » i oppgaven? Da trengs modulo og modulo hver for seg, pluss CRT.
- Sluttsvaret utenfor intervallet. og skal ligge mellom og . Får du , skriv .
Begrepsbank
Dette er flashcard-stoff — hopp trygt over ved førstegangslesing; tidsanslaget på 60 minutter gjelder kjernestoffet over.
Kortene dekker oppsettet, prosedyrene, sikkerhetsargumentet og føringskravene. Under kode D er de eksamensverktøy: det finnes ingen formelsamling å slå opp RSA-oppsettet i.
Et krypteringssystem der krypteringsnøkkelen er offentlig og dekrypteringsnøkkelen er privat. Alle kan sende en kryptert melding til deg; bare du kan lese den.
Kontrasten er symmetrisk kryptografi, der samme nøkkel brukes til begge, og der avsender og mottaker derfor må ha avtalt en felles hemmelighet på forhånd. Problemet det løser: du og nettbutikken har aldri møtt hverandre.
Hva som kreves matematisk: en operasjon som er lett å gjøre og vanskelig å reversere — med mindre man har en ekstra opplysning. I RSA er operasjonen , og den ekstra opplysningen er faktoriseringen av .
Historikk i én linje: RSA er navngitt etter Rivest, Shamir og Adleman, som publiserte systemet i 1977. Det er fremdeles i bruk, med tall på 2048 bits eller mer.
Hvorfor det står i en tallteoribok: hele systemet er bygget av Eulers teorem, Euklids algoritme og modulær potensopphøyning — tre resultater du kan fra Del 1 og Del 2.
| Størrelse | Navn | Status | Rolle |
|---|---|---|---|
| modulusen | offentlig | alle regninger skjer modulo | |
| krypteringseksponenten | offentlig | ||
| dekrypteringseksponenten | hemmelig | ||
| , | primtallsfaktorene | hemmelig | gir |
| — | hemmelig | modulusen for eksponentene |
Den offentlige nøkkelen er paret . Den skrives ofte slik i oppgavene: «den offentlige nøkkelen er ».
Merk to moduler i spill samtidig: meldinger og krypterte tekster regnes modulo ; eksponentene og henger sammen modulo . Å blande de to er en av de vanligste feilene — det er samme forveksling som i kap. 2.1.
Minnekroken for og : som i «encrypt», som i «decrypt». Og er den alle har.
Kjeden av avhengigheter:
Den siste ekvivalensen viste vi i kortet «Hvorfor må være hemmelig»: gir summen , og sammen med produktet gir det og via en andregradslikning.
Hva som IKKE er hemmelig: algoritmen, , , og hele matematikken. Det er et prinsipp i moderne kryptografi — sikkerheten skal ligge i nøkkelen, ikke i at metoden er ukjent.
Hvorfor eksamenstallene ikke er trygge: med tar faktoriseringen et halvt minutt for hånd. Det er nødvendig for at oppgaven skal være regnbar, og det er greit — så lenge du vet at virkelige systemer bruker tall med flere hundre siffer.
Et yndet teoretisk delpunkt: «forklar hvorfor systemet ikke er trygt hvis og ligger nær hverandre». Svaret: da er , og du finner dem ved å søke oppover fra .
| Størrelse | Typisk verdi på eksamen |
|---|---|
| , | tosifrede primtall, – |
| tresifret eller lite firesifret (under ) | |
| to- til firesifret | |
| ensifret eller lite tosifret, ofte et primtall | |
| tosifret, funnet i 3–5 Euklid-linjer | |
| meldingen | ensifret eller tosifret |
| kvadrer-og-multipliser-steg | 5–9 ved dekryptering |
Bruk det som kontroll. Blir Euklid-kjeden for tolv linjer, har du regnet feil. Blir tresifret, sjekk — den er sannsynligvis gal.
Merk at RSA-dekryptering krever flere steg enn en vanlig restberegning (5–9 mot 2–5). Grunnen er at ikke kan reduseres ytterligere modulo — den er alt mindre. Vil du ha færre steg, bruk veien via og .
Og bruk det når du lager egne øvingsoppgaver: velg to tosifrede primtall, regn , velg en liten med , og regn . Er tresifret, prøv en annen — eller velg og slik at med begge tosifrede.
1. Dekrypter med oppgitt . Ren kvadrer-og-multipliser. Den enkleste varianten, og den som gir bestått.
2. Finn selv, og dekrypter. Hovedvarianten: faktoriser (eller få oppgitt), regn , kjør Euklids algoritme, dekrypter. Dette er midtsjiktets oppgave.
3. Bygg et helt nøkkelpar fra , og krypter en melding. Samme verktøy, andre rekkefølge.
4. Vis at dekrypteringen gjenoppretter meldingen. Korrekthetsbeviset fra Eulers teorem, tre linjer — pluss -tilfellet hvis oppgaven sier «alle ».
Alle fire bruker samme fire ingredienser: , Euklids algoritme, kvadrer-og-multipliser, og Eulers teorem.
Merk at type 4 er teoretisk og likevel hyppig. Den koster tre linjer og prøver om du forstår hvorfor systemet virker — ikke bare at det gjør det.
Fem kontroller, til sammen under to minutter. Under kode D er dette hele kvalitetssikringen din.
| Etter | Kontroll | Fanger |
|---|---|---|
| faktoriseringen av | gang og sammen igjen | avskrivningsfeil |
| er ? | utregningsfeil | |
| er lik mer enn et multiplum av ? | Euklid baklengs-slurv | |
| kvadrattabellen | er alle tall under ? | glemt reduksjon |
| hele runden | krypter svaret tilbake og se at du får | alt |
Den siste er den sterkeste, og den er unik for RSA: du kan alltid sjekke svaret ved å gå den andre veien. Har du dekryptert til , regn og se at du får tilbake. Det koster like mye som krypteringen, men det er en absolutt kontroll.
Er du presset på tid, ta i det minste -kontrollen. Den er den billigste, og -feil er den vanligste.
Eksamen er 4 timer på omtrent 10 likt vektede delpunkt — ~24 minutter per delpunkt. En RSA-oppgave har typisk to eller tre delpunkt.
| Steg | Innhold | Tid |
|---|---|---|
| faktorisering av | prøvedivisjon opp til | ~2 min |
| ett produkt, med kontroll | ~1 min | |
| Euklids algoritme frem og baklengs | ~5 min | |
| kryptering | kvadrer-og-multipliser, liten eksponent | ~3 min |
| dekryptering | kvadrer-og-multipliser, 5–9 steg | ~6 min |
| korrekthetsbevis | tre linjer (pluss to for ) | ~3 min |
En full oppgave (finn + dekrypter) tar altså ~14 minutter, godt innenfor to delpunkts budsjett.
Er du over 30 minutter, ligger det nesten alltid i dekrypteringen — prøv veien via og , som gir mindre tall, eller sjekk om du har glemt å redusere etter hvert kvadrat.
En fullgod besvarelse av «finn og dekrypter » inneholder alle disse:
1. faktoriseringen , vist (om den ikke er oppgitt);
2. , med tallene satt inn;
3. at , slik at finnes;
4. Euklids algoritme frem OG baklengs til ;
5. lesningen modulo , som gir ;
6. kontrollen ;
7. dekrypteringen med binærutvikling og kvadrattabell;
8. en konklusjonssetning med som et tall i .
Punkt 4 og 7 er der føringspoengene ligger, og punkt 6 er den kontrollen som fanger den vanligste feilen.
Selvtesten: kan noen som leser besvarelsen din, følge hvert steg fra til uten å regne selv? Da er føringen god nok.
Det som ikke holder: «, så ». To riktige tall, ingen metode — og instruksen på hvert sett er at alle svar må begrunnes.
Kravet er . Grunnen er at dekrypteringen gir tilbake resten modulo , og to meldinger som er kongruente modulo , kan ikke skilles.
Eksempel: med ville og gitt samme krypterte melding, siden . Mottakeren kan ikke vite hvilken.
Hva man gjør i praksis: deler meldingen i blokker som hver er mindre enn , og krypterer blokk for blokk. Tekst kodes først om til tall (for eksempel to bokstaver per blokk).
På eksamen er gitt som et tall, og omkodingen er ikke en del av pensum — den er informatikk, ikke tallteori. Men kravet er verdt å kjenne, fordi et delpunkt kan spørre hvorfor det finnes.
Merk et grensetilfelle: og krypteres til seg selv (, ). Det er en av flere grunner til at virkelige systemer legger til tilfeldig «utfylling» før kryptering.
Hele RSA er én anvendelse av Eulers teorem, og det er verdt å se koblingen tydelig:
| I RSA | I kap. 2.1 |
|---|---|
| modulusen | |
| via multiplikativiteten | |
| modulær invers, kap. 1.4 | |
| eksponentreduksjon: betyr at potensen «går en hel runde og ett skritt» | |
| kvadrer-og-multipliser | samme prosedyre |
Den ene setningen som binder det sammen: eksponenter på teller bare modulo , så betyr at kryptering fulgt av dekryptering er det samme som eksponent — altså ingenting.
Hvorfor det er verdt plass i bunken: ser du RSA slik, trenger du ikke pugge korrekthetsbeviset. Det er eksponentreduksjon, brukt baklengs.
Tre eller flere primtall virker fint matematisk: er , er ved multiplikativiteten, og alt annet er som før. Slike varianter finnes («multi-prime RSA») og brukes fordi dekryptering via CRT blir raskere.
Hvorfor to er standard: med flere faktorer blir hver faktor mindre for samme , og små faktorer er lettere å finne. Sikkerheten bestemmes av den minste primfaktoren, så to like store er det beste valget for et gitt .
På eksamen er det alltid to. Men spørsmålet «hva om hadde tre primfaktorer?» er et rimelig teoretisk delpunkt, og svaret er: blir produktet av alle , og resten av oppsettet er uendret.
Hvorfor det virker: korrektheten er symmetrisk i og — begge er eksponenter med , så rekkefølgen betyr ingenting. Utledningen er den samme tre linjene.
Hva det gir: bare du kan lage (du har ), men alle kan sjekke at passer til (de har ). Altså et bevis på at meldingen kom fra deg.
Merk at dette ikke skjuler meldingen — hvem som helst kan regne og lese . Signering og kryptering er to ulike formål, og bruker nøklene i motsatt rekkefølge.
Dette er utenfor kjernepensum i sjanger D, men det er en naturlig oppfølging som viser at korrekthetsbeviset gir mer enn dekryptering. (Verifiser mot gjeldende pensumliste om digitale signaturer er eksplisitt pensum i ditt kull — arkivet har det ikke som egen oppgavetype.)
| Det du får | Det du gjør | Verktøy |
|---|---|---|
| , , | , , via Euklid | kap. 1.2, kap. 2.1 |
| med lite | faktoriser , så som over | prøvedivisjon |
| og | kvadrer-og-multipliser | |
| og | kvadrer-og-multipliser | |
| , , , | reduser mot og , regn to potenser, CRT | kap. 2.2, kap. 2.4 |
| «vis at gjenopprettes» | og Eulers teorem | tre linjer |
Rekkefølgen er alltid den samme: potens. Og hvert steg har sin kontroll: , , , og til slutt hele runden tilbake.
Neste kapittel (kap. 3.2) er drillen: tolv oppgaver som roterer de fire variantene, med sensor-margnotater på den gjennomregnede casen.
Får du bare og ikke og , må du faktorisere selv. På eksamen er det alltid mulig — tallene er valgt slik.
Prosedyren (kap. 1.1): prøvedivider med opp til . Går ingen opp, er et primtall — og da er oppgaven feil, for RSA krever .
Rask utelukking først: er like? Ender den på ? Er siffersummen delelig med ? Tre sekunder, og du har utelukket tre primtall.
De tallene som faktisk forekommer, og som ser prime ut: , , , , , , , , , . Legg merke til mønsteret: begge faktorene er tosifrede primtall, så du finner den minste et sted mellom og .
Ikke pugg lista — den er der for å vise deg hvor du skal lete. Prøvedivisjonen tar ~2 minutter og er alt du trenger.
Kontrollen: gang og sammen igjen. Fem sekunder, og du har utelukket en avskrivningsfeil som ville veltet hele oppgaven.
En dekryptering er med tosifret. Selv med små tall er astronomisk: har 48 siffer.
Kalkulatoren under kode D gir opp. Den regner med begrenset presisjon, og et 48-sifret tall kan den ikke representere — langt mindre dele på og gi eksakt rest.
Kvadrer-og-multipliser løser det ved å redusere underveis: hvert mellomtall holdes under , så du regner aldri med mer enn seks siffer (kvadratet av et tresifret tall).
Merk forskjellen fra kap. 2.1: der kunne eksponenten først reduseres med Eulers teorem, og du satt igjen med noe under . Her kan ikke reduseres modulo — den er alt mindre. Derfor tar RSA-dekryptering 5–9 steg, mot 2–5 for en vanlig restberegning.
Vil du ha færre steg: bruk veien via og , der eksponentene blir og . Begge veier er fullgode.
Den faste dramaturgien i arkivet (kap. 0.1) plasserer RSA som oppgave 3 eller 4, etter diofant/kongruens (oppgave 1) og CRT (oppgave 2), og før kvadratiske rester.
Hva det betyr praktisk: når du kommer til RSA-oppgaven, har du alt brukt Euklids algoritme én gang og kanskje CRT én gang. Verktøyene er varme, og oppgaven er derfor ofte den raskeste i settet.
Hva den bygger på fra tidligere oppgaver: ingenting — hver hovedoppgave i dette emnet er selvstendig. Et tapt tema koster ett delpunkt, ikke hele settet.
Prioriteringsråd hvis tiden blir knapp: RSA-oppgavens første delpunkt (regn og finn ) er billige poeng du bør ta før du kaster deg over resiprositet eller bevis. Dekrypteringen er den dyreste delen i tid, og den kan tas sist.
Og en påminnelse om karakterrealisme: C er en god og vanlig karakter, og den nås ved å dekryptere med oppgitt . Å finne selv er midtsjiktet; korrekthetsbeviset og den raske veien er toppsjiktet.
Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.
Skolesaga er en uavhengig læringsressurs og er ikke tilknyttet eller godkjent av Norges teknisk-naturvitenskapelige universitet. Dette er ikke offisielt studiemateriell. Les mer.