3.2 Drill: RSA fra nøkkelpar til dekryptering
Hele RSA-oppgaven drillet: bygg nøkkelpar fra p, q, e, finn d via Euklid, krypter og dekrypter med kvadrer-og-multipliser, og før korrekthetsbeviset — de tre variantene fasitene bruker.
Sjangerbokstavene er bokas egne forkortelser, forklart i kap. 0.1. RSA er nesten alltid en egen oppgave med to eller tre delpunkt, og variantkatalogen er kort:
| Variant | Nivå | Oppgaver her |
|---|---|---|
| Dekrypter med oppgitt | bestått-nivå | 7–8 |
| Finn selv, og dekrypter | midtsjiktet | 1–3 |
| Bygg helt nøkkelpar fra | midtsjiktet | 4–5 |
| Krypter en melding | bestått-nivå | 6 |
| Vis at dekrypteringen gjenoppretter meldingen | toppsjiktet | 9–10 |
Prioritet: høyeste. Oppgaven er nesten alltid der, den er alltid bygget likt, og den bruker bare Euklids algoritme og kvadrer-og-multipliser — verktøy du alt har drillet i kap. 1.5 og kap. 2.6.
Slik bruker du kapitlet: les løsningsoppskriften én gang, gå gjennom den gjennomregnede casen med margnotatene, og regn deretter oppgavene med lukket bok. Det er den eneste treningsformen som ligner eksamen under hjelpemiddelkode D.
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: , , ,
- og , begge modulo
- Euklids algoritme frem og baklengs — den ene måten å finne
- kvadrer-og-multipliser med reduksjon etter hvert kvadrat
Utledes på stedet:
- korrektheten : gir fra Eulers teorem. Tre linjer, og de føres ut i oppgave 9.
- fra multiplikativiteten. Én linje.
- den raske dekrypteringsveien: , , to små potenser, CRT. Føres ut i oppgave 8.
Selvtest, tjue minutter: regn oppgave 1, 4 og 7 med boka lukket. Tre oppgaver, tre varianter. Klarer du alle tre uten oppskriften, sitter sjanger D.
Prosedyrer pugges ved å kjøres. Ti RSA-oppgaver er mer verdt enn ti gjennomlesninger av kap. 3.1.
Forkunnskaper
Fra boka: kap. 3.1 (hele RSA-oppsettet), kap. 1.2 (Euklids algoritme frem og baklengs), kap. 2.1 (Eulers teorem og kvadrer-og-multipliser), kap. 2.2 (Fermats lille teorem) og kap. 2.4 (CRT).
Sist du var her. De fire resultatene hver oppgave i kapitlet bygger på, ferdig oppfrisket:
1. Oppsettet. , , offentlig nøkkel med , privat med .
2. Operasjonene. og .
3. Å finne . Kjør Euklids algoritme på og , gå baklengs til , og les modulo : .
4. Korrektheten. gir fra Eulers teorem, når .
Er noe av dette usikkert, gå tilbake til kap. 3.1 før du regner oppgavene her.
Løsningsoppskriften
~8 minutter. Les den, og bruk den som referanse mens du regner oppgavene.
Oppskrift: RSA i fire steg
(1) . Har du bare , faktoriser først med prøvedivisjon opp til . Kontroll: .
(2) -sjekken. Faktoriser og se om har noen primfaktor felles. Sjekken faller ut gratis av steg (3): Euklid-kjeden ender på .
(3) via Euklids algoritme baklengs. Kjør algoritmen på og , gå baklengs til , og les modulo : . Kontroll: skal gi rest ved divisjon med .
(4) Potensen via kvadrer-og-multipliser. Kryptering , dekryptering , begge modulo . Reduser grunntallet først, skriv binærutviklingen, og reduser etter hvert kvadrat.
Alternativ i steg (4), når du kjenner og : reduser eksponenten mot hvert primtall (, ), regn to små potenser, og sett sammen med CRT. Begge veier er fullgode, og den siste gir mindre tall.
— naturlig pausepunkt —
De fire kontrollpunktene
Under kode D er selvkontroll den eneste kontrollen du har. Disse fire tar til sammen under ett minutt og fanger nesten alt.
| Etter | Kontroll | Fanger |
|---|---|---|
| faktoriseringen | gang og sammen igjen | avskrivningsfeil |
| er ? | utregningsfeil | |
| gir rest ved divisjon med ? | Euklid baklengs-slurv | |
| dekrypteringen | krypter svaret tilbake: gir tilbake ? | alt |
Den siste er unik for RSA og helt avgjørende: du kan alltid gå den andre veien. Det koster like mye som krypteringen, men det er en absolutt kontroll — og på eksamen betyr det at du vet at svaret er riktig.
Er du presset på tid, ta i det minste -kontrollen. Den er den billigste, og -feil er den vanligste.
Gjennomregnet eksamenscase
~15 minutter.
Her er en typisk RSA-oppgave med tre delpunkt, med margnotater som sier hva hvert steg er verdt og hvorfor. Les den én gang med blyanten i hånda, og regn deretter oppgavene selv.
Den offentlige nøkkelen i et RSA-system er , og du har fanget opp den krypterte meldingen .
a) Faktoriser og finn . (3 poeng)
b) Finn dekrypteringseksponenten . (5 poeng)
c) Dekrypter meldingen. (4 poeng)
, så vi prøvedividerer med primtallene opp til : ikke like; siffersum (ikke delelig med ); ender ikke på eller ; — nei; , — nei; , — nei; , — nei; ✓.
Altså , og ved multiplikativiteten til :
Kontroll: ✓.
Margnotat: faktoriseringen er premisset for hele oppgaven, og den skal vises — ikke bare påstås. Legg merke til at prøvedivisjonen stopper ved : det er ikke en snarvei, det er et teorem (kap. 1.1).
---
b) Finn . (~5 min)
er inversen til modulo . Vi bruker Euklids algoritme (kap. 1.2), ført frem og baklengs:
(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 .
Kontroll: , og ✓.
Margnotat: to ting bærer uttellingen her. (1) Kjeden frem og baklengs — det er føringsstandarden i emnet, og et uten kjeden er et sluttall uten metode. (2) -kontrollen, som koster tjue sekunder og fanger den vanligste tallfeilen i hele sjangeren. Merk også at Euklid-kjeden ender på — det bekrefter samtidig at var et lovlig valg.
---
c) Dekrypter . (~6 min)
(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 | ||
| , og |
(vi) Sett sammen produktet. Da er
og vi multipliserer to av gangen, med reduksjon underveis: ; ; ; .
Den dekrypterte meldingen er .
Kontroll — krypter tilbake: skal gi .
(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: ; .
Samme ✓. Svaret er sikret.
Margnotat: kvadrattabellen skal stå i besvarelsen. Et sluttall uten den er et svar uten metode, og instruksen på hvert sett er at alle svar må begrunnes. Og legg merke til kontrollen: å kryptere tilbake er den eneste absolutte kontrollen som finnes i denne sjangeren — bruk den når du har tid.
Samlet tidsbruk: ~13 minutter for tre delpunkt (uten tilbake-krypteringen; med den ~19). Eksamensbudsjettet er ~24 minutter per delpunkt (4 timer på ~10 likt vektede delpunkt), så du har god margin når apparatet sitter.
Oppgavene
~45 minutter til sammen. Ti oppgaver, gruppert etter variant.
Regn dem med penn og lukket bok. Forskjellen mellom å ha lest en oppskrift og å kunne den, viser seg først når boka er lukket — og på eksamen er den lukket.
Gruppene: oppgave 1–3 er «finn og dekrypter», 4–5 er «bygg nøkkelpar», 6 er kryptering, 7–8 er dekryptering med oppgitt (8 med den raske veien via og ), og 9–10 er korrekthetsbeviset.
— naturlig pausepunkt —
Den offentlige nøkkelen er , og du har mottatt .
a) Faktoriser og finn .
b) Finn , og kontrollér svaret.
c) Dekrypter meldingen.
Den offentlige nøkkelen er , og du har mottatt .
a) Finn og .
b) Dekrypter meldingen.
Den offentlige nøkkelen er , og du har mottatt .
a) Finn , , og .
b) Dekrypter meldingen.
c) Kontrollér ved å kryptere svaret tilbake.
Et RSA-system skal bygges med , og .
a) Finn og , og bekreft at er et lovlig valg.
b) Finn .
c) Krypter meldingen .
Et RSA-system skal bygges med , og .
a) Finn og , og bekreft at er lovlig — selv om ikke er et primtall.
b) Finn .
c) Krypter meldingen .
I et RSA-system er den offentlige nøkkelen .
a) Krypter meldingen .
b) Hva er det største tallet som kan sendes som én melding i dette systemet, og hvorfor?
I et RSA-system er og den private eksponenten . Du har mottatt .
Dekrypter meldingen.
I et RSA-system er , , og . Du har mottatt .
a) Dekrypter meldingen ved å regne modulo og modulo hver for seg, og sette sammen med det kinesiske restteoremet.
b) Sammenlign arbeidsmengden med den direkte metoden (), som ble brukt i eksamenscasen over.
b) Hvor i beviset brukes at , og hvor brukes Eulers teorem?
c) Kontrollér beviset numerisk for , , og .
La med primtall, og la .
a) Forklar hvorfor beviset i oppgave 9 ikke dekker meldinger der .
b) Vis at likevel holder for alle med .
c) Kontrollér for , , og .
Under tidspress er det ikke forståelsen som svikter, men bokføringen. Disse seks er de som faktisk skjer, og alle fanges av kontrollpunktene over.
- regnet feil. Å bruke i stedet for . Kontrollen: — regn den på begge måter. For : og ✓.
- funnet feil (Euklid baklengs-slurv, eller glemt å legge til når koeffisienten ble negativ). Kontrollen: gir rest ved divisjon med ? Tjue sekunder.
- Potensfeil: glemt kvadrer-og-multipliser, eller glemt å redusere etter et kvadrat. Kontrollen: alle tall i tabellen skal være under . Og til slutt: krypter svaret tilbake.
- og blandet. Å kryptere med eller dekryptere med . Kontrollen: skriv ned hvilken eksponent du bruker, med navn. er den offentlige — den låser.
- 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 erstattes med ?
- -tilfellet glemt når oppgaven ber om «alle meldinger». Da er case-analysen ikke uttømmende. Kontrollen: står det «for alle »? Da trengs modulo og modulo hver for seg, pluss CRT.
- Faktoriseringen ikke vist. Får du bare , er faktoriseringen premisset for hele oppgaven, og prøvedivisjonen skal stå.
Prosedyrekort
Dette er flashcard-stoff — hopp trygt over ved førstegangslesing; tidsanslaget på 70 minutter gjelder oppskriften, casen og oppgavene.
Drillkapitlene har ingen begrepsbank i vanlig forstand: begrepene står i kap. 3.1. Kortene her er oppskriftskort — de tar prosedyrene og gjør dem til noe du kan gjenkalle kaldt, som kode D krever.
(2) -sjekken.
(3) via Euklids algoritme frem og baklengs på og ; les modulo . Kontroll: gir rest .
(4) Potensen via kvadrer-og-multipliser: , , begge modulo .
Må sitte utenat. Rekkefølgen er alltid den samme: potens.
Selvtest: dekk til og skriv de fire stegene på tjue sekunder.
Prosedyre: Euklids algoritme frem på og → baklengs til → .
Må sitte utenat, og føringen frem OG baklengs er føringskravet (kap. 1.2).
Ble negativ? Legg til . Det endrer ikke restklassen, og skal oppgis i .
Kontroll: skal gi rest ved divisjon med . Typisk er eller på eksamen.
Snarvei å se etter: er for en liten , finner du ved å prøve — men skriv kjeden likevel, den er føringskravet.
Prosedyre (kvadrer-og-multipliser): reduser grunntallet først → skriv eksponenten binært → regn suksessive kvadrater, redusert modulo etter hvert → gang sammen de som svarer til enerne.
Må sitte utenat.
Se på binærutviklingen først — den forteller hvor lang oppgaven blir. gir seks kvadrater og én multiplikasjon; gir fem kvadrater og fem multiplikasjoner.
Reduser grunntallet, og se etter negative rester. Er , er kvadratene mye lettere.
Kontroll: alle tall i tabellen under ; og til slutt, krypter svaret tilbake.
Kjenner du og :
(1) og — hjemmelen er Fermats lille teorem.
(2) Reduser også modulo og modulo .
(3) Regn og .
(4) Sett sammen med CRT til modulo .
Utledes på stedet — det er Fermat brukt to ganger pluss CRT, alt fra Del 2.
Gevinsten: små eksponenter og små tall. Tap: to reduksjoner og en CRT ekstra. Begge veier er fullgode.
Vilkåret: og . Er ett brutt, er den resten , og du regner den direkte.
Sikkerhetsmerknad: veien krever faktoriseringen, så en angriper kan ikke bruke den.
1. betyr .
2. .
3. Fra Eulers teorem er , så .
Tilfelle (kreves når oppgaven sier «alle »): vis modulo (begge sider ) og modulo (Fermats lille teorem, siden ), og sett sammen med CRT.
Utledes på stedet — begge tilfellene. Ikke pugg konklusjonen; kunn utledningen.
Det som MÅ stå: hva kongruensen betyr, teoremnavnet, og case-analysen om oppgaven ber om alle .
| Etter | Kontroll | Fanger |
|---|---|---|
| faktorisering | ? | avskrivningsfeil |
| ? | utregningsfeil | |
| gir rest modulo ? | Euklid baklengs-slurv | |
| kvadrattabell | alle tall under ? | glemt reduksjon |
| sluttsvar | i ? | glemt siste reduksjon |
| hele runden | krypter svaret tilbake — gir det ? | alt |
Den siste er unik for RSA og absolutt. Har du tid, bruk den: da vet du at svaret er riktig, og det er en sjelden luksus på en eksamen uten hjelpemidler.
Er du presset: ta -kontrollen. Den koster tjue sekunder og fanger den vanligste feilen.
| Størrelse | Typisk verdi på eksamen |
|---|---|
| , | tosifrede primtall, – |
| under | |
| to- til firesifret | |
| ensifret eller lite tosifret | |
| tosifret, funnet i 3–5 Euklid-linjer | |
| meldingen | ensifret eller tosifret |
| dekrypteringssteg | 5–9 kvadrer-og-multipliser-steg |
Bruk det som kontroll. Blir Euklid-kjeden tolv linjer, har du regnet feil. Blir tresifret, sjekk .
Og bruk det når du lager egne øvingsoppgaver: velg to tosifrede primtall, regn , og velg slik at eller med begge eksponenter tosifrede. Da er oppgaven regnbar på under et kvarter.
Eksamen er 4 timer på omtrent 10 likt vektede delpunkt — ~24 minutter per delpunkt. RSA-oppgaven har typisk to eller tre delpunkt.
| Steg | Tid |
|---|---|
| faktorisering av | ~2 min |
| med kontroll | ~1 min |
| via Euklid frem og baklengs | ~5 min |
| kryptering (liten ) | ~3 min |
| dekryptering (5–9 steg) | ~6 min |
| korrekthetsbevis | ~3 min |
| tilbake-krypteringskontroll | ~4 min |
En full oppgave (finn + dekrypter + kontroll) tar ~18 minutter, altså under ett delpunkts budsjett — mens oppgaven er verdt to eller tre.
Prioriteringsråd: ta og først (billige poeng), og dekrypteringen etterpå. Blir tiden knapp, er et riktig med vist kjede mer verdt enn en halvferdig potensberegning.
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.