Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt...

27
MODULOREKENEN EN CRYPTOGRAFIE 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτ ´ = krypt´os = verborgen; γρ ´ αφω = gr´afo = schrijven). Het behoeft geen betoog dat geheimhouding van berichten van alle tijden en alle werelden is, de ingebakken kleine trekjes van de mens indachtig. De wedijver tussen codemakers en codebrekers is al eeuwen aan de gang, en heeft in verscheidene situaties de loop van de geschiedenis bepaald. Aanvankelijk waren de gebruikte methoden niet meer dan spitsvondigheden, die te doorzichtig of te weinig praktisch waren om een lang leven beschoren te zijn. Zo maakte de Griekse geschiedschrijver Herodotos melding van een slaaf die een boodschap op het kaal geschoren hoofd getatoe¨ eerd kreeg, om vervolgens met een vers aangegroeid kapsel vijandig gebied te doorkruisen. Later ontwikkelden de Grieken meer systematische manieren om berichten in geheimschrift te zetten. De bekendste daarvan maakt gebruik van een scytale. Dat is een cilindrische stok waarrond een strook perkament kan worden gewikkeld. Door horizontaal op het gewikkelde perkament te schrijven en het perkament daarna Figuur 1. Een scytale. terug af te wikkelen, verkrijgt men de tekst in geheimschrift. De ontvanger hoeft dan enkel op zijn beurt de perkamentstrook rond een scytale van dezelfde diameter te wikkelen om het originele bericht te kunnen lezen. Dit is het startpunt van een beklijvende geschiedenis, doorspekt met veel smeu¨ ıge details en intriges, maar ook met veel boeiende wiskunde. We gebruiken de volgende terminologie. 1.2. Terminologie. Een systematische manier om berichten in geheime code te zetten noemen we een cryptosysteem of een cijfer. Het omzetten van een bericht naar geheimschrift noemen we vercijferen. Het omzetten van geheime code naar een leesbaar bericht noemen we ontcijferen. 1.3. Het substitutiecijfer. Historisch gezien is het substitutiecijfer het eerste cryptosysteem dat belangrijk bleek voor de ontwikkeling van de moderne cryptografie. In wezen is het van de hand van Julius Caesar: om met zijn generaals 1

Transcript of Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt...

Page 1: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

MODULOREKENEN EN CRYPTOGRAFIE

1. Inleiding

1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent‘geheimschrift’ (κρυπτ oς = kryptos = verborgen; γραφω = grafo = schrijven).Het behoeft geen betoog dat geheimhouding van berichten van alle tijden en allewerelden is, de ingebakken kleine trekjes van de mens indachtig. De wedijver tussencodemakers en codebrekers is al eeuwen aan de gang, en heeft in verscheidenesituaties de loop van de geschiedenis bepaald.

Aanvankelijk waren de gebruikte methoden niet meer dan spitsvondigheden, diete doorzichtig of te weinig praktisch waren om een lang leven beschoren te zijn.Zo maakte de Griekse geschiedschrijver Herodotos melding van een slaaf die eenboodschap op het kaal geschoren hoofd getatoeeerd kreeg, om vervolgens met eenvers aangegroeid kapsel vijandig gebied te doorkruisen.

Later ontwikkelden de Grieken meer systematische manieren om berichten ingeheimschrift te zetten. De bekendste daarvan maakt gebruik van een scytale.Dat is een cilindrische stok waarrond een strook perkament kan worden gewikkeld.Door horizontaal op het gewikkelde perkament te schrijven en het perkament daarna

Figuur 1. Een scytale.

terug af te wikkelen, verkrijgt men de tekst in geheimschrift. De ontvanger hoeftdan enkel op zijn beurt de perkamentstrook rond een scytale van dezelfde diameterte wikkelen om het originele bericht te kunnen lezen.

Dit is het startpunt van een beklijvende geschiedenis, doorspekt met veel smeuıgedetails en intriges, maar ook met veel boeiende wiskunde. We gebruiken de volgendeterminologie.

1.2. Terminologie. Een systematische manier om berichten in geheime code tezetten noemen we een cryptosysteem of een cijfer. Het omzetten van een berichtnaar geheimschrift noemen we vercijferen. Het omzetten van geheime code naareen leesbaar bericht noemen we ontcijferen.

1.3. Het substitutiecijfer. Historisch gezien is het substitutiecijfer het eerstecryptosysteem dat belangrijk bleek voor de ontwikkeling van de modernecryptografie. In wezen is het van de hand van Julius Caesar: om met zijn generaals

1

Page 2: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

2 MODULOREKENEN EN CRYPTOGRAFIE

te communiceren verving hij elke letter door de derde daaropvolgende letter vanhet alfabet,

A→ D, B→ E, C→ F, . . . , W→ Z, X→ A, Y→ B, Z→ C.

Dus

ALEA JACTA EST wordt DOHD MDFWD HVW.

Meer algemeen kan men de letters van het alfabet in eender welke volgorde zetten,bijvoorbeeld

(1.1) RBDKOMQNAYUEHXZCJLPVSITFWG.

Een bericht wordt dan in code gezet door systematisch A door de eerste letter uit dievolgorde te vervangen, B door de tweede letter, C door de derde letter, enzovoort.Op basis van volgorde (1.1) wordt

ALEA JACTA EST nu REOR YRDVR OPV.

Door de omgekeerde substitutie toe te passen kan de ontvanger het bericht terugleesbaar maken.

Het ‘moderne’ aan het substitutiecijfer is dat er een duidelijk onderscheid wordtgemaakt tussen het systeem zelf (substitutie) en een geheim extra ingredient (devolgorde van de letters van het alfabet). Een naıeve vijand die een vercijferdbericht onderschept moet, indien hij al weet dat het bericht met behulp vansubstitutie werd vercijferd, alle mogelijke lettervolgordes uitproberen. Dat zijner 26! = 403291461126605635584000000 ≈ 4 · 1026. Stel dat het uitproberen vaneen lettervolgorde een halve minuut duurt, dan zou dit hem ongeveer 38 · 1019 jaarkosten. Ter vergelijking: de leeftijd van het heelal is ongeveer 14 · 109 jaar.

Dat is een belangrijk verschil met de Griekse scytale. Indien de vijand weet dathet onderschepte bericht met een scytale werd vercijferd, hoeft hij maar een heelbeperkt aantal mogelijkheden af te gaan.

Oefening 1.3.1. De zin

THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG

telt alle letters van het alfabet minstens een keer en heeft dus 26! ≈ 4·1026 mogelijkevercijferingen onder het substitutiecijfer. Wat is het aantal mogelijke vercijferingenmet behulp van een scytale? Hierbij beschouwen we de spaties ook als karakters.

1.4. Sleutels. In wat volgt zullen we er altijd van uitgaan dat het gebruiktecryptosysteem door vriend en vijand gekend is: dit heet het principe van Kerckhoffs,genoemd naar de 19de-eeuwse Nederlandse cryptograaf Auguste Kerckhoffs. Eengeheime sleutel is een kort ingredient dat als extra input wordt gebruikt en datenkel door de zender en de ontvanger gekend is. De sleutelruimte is de verzamelingvan alle bruikbare geheime sleutels.

1.5. Veiligheid. Een cryptosysteem wordt veilig beschouwd als er voor eenaanvaller niet veel beter op zit dan alle sleutels uit de sleutelruimte eenvoor een uitproberen. De sleutelruimte van het substitutiecijfer is deverzameling permutaties van het alfabet. Bij hedendaagse cryptosystemen wordensleutelruimtes van om en bij de 280 sleutels aangeraden (ter vergelijking: 26! ≈ 288).Meer en meer wordt 2128 de nieuwe standaard, al zit daar heel veel veiligheidsmargeop.

Page 3: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

MODULOREKENEN EN CRYPTOGRAFIE 3

1.6. Het substitutiecijfer gekraakt. Hierboven hadden we het over een naıevevijand, die miljarden keer de leeftijd van het heelal zou nodig hebben om hetsubstitutiecijfer te kraken. Een iets slimmere vijand kan het echter veel handigeraanpakken, waardoor het substitutiecijfer vandaag de dag als flagrant onveilig wordtbeschouwd.

Dat heeft te maken met de ongelijke frequenties waarmee de letters van hetalfabet in de Nederlandse taal (of in eender welke populaire taal) voorkomen. Bijna20 % van alle letters in een voldoende lange doorsnee Nederlandse tekst zijn E. Meteen aandeel van zo’n 10 % komt de letter N op de tweede plaats, gevolgd doorongeveer 8 % A’s. Dat betekent dat, wanneer we een stuk geheimschrift in handenhebben, de letter die het vaakst voorkomt veel kans heeft om de vercijfering vande letter E te zijn, de letter die het op een na vaakst voorkomt is met een redelijkekans een vercijferde N, en zo verder. Op die manier herleidt het ontcijferwerkzich essentieel tot een spelletje Rad van Fortuin. We noemen deze methodefrequentieanalyse. Ze werd reeds in de 9de eeuw na Christus beschreven door deArabische wetenschapper Al-Kindi. Hoe langer de te ontcijferen tekst is, hoe beterde statistiek zijn werk doet en hoe eenvoudiger het ontcijferwerk wordt.

Figuur 2. Letterfrequenties in het Nederlands (gebaseerd op eensteekproef van 60696 letters uit de krant De Standaard van 26 april2011).

We geven een voorbeeld. Veronderstel dat onze geheime diensten het volgendebericht onderschepten.

PDJFRPPX QTREGK TQ CPLD KGEGK PPK CGM XPJMGGL BX NPL HABNGKH

WRTKNGK QAKMJMAXXGK WBZ QG CGWWGK

We zien dat de letter G twaalf keer voorkomt, de letter K tien keer en de letter P achtkeer (en dat deze letters daarmee de kroon spannen). We gokken daarom dat dit devercijferingen zijn van respectievelijk E, N en A en krijgen de volgende gedeeltelijkekandidaat-ontcijfering.

A....AA. ....EN .. .A.. NE.EN AAN .E. .A..EE. .. .A. ....EN.

...N.EN ..N......EN ... .E .E..EN

Page 4: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

4 MODULOREKENEN EN CRYPTOGRAFIE

Een logische gok voor het woord na AAN is HET (waarom kan EEN niet?), wat zoubetekenen dat de letters C en M de respectievelijke vercijferingen zijn van de lettersH en T. Invullen geeft:

A....AA. ....EN .. HA.. NE.EN AAN HET .A.TEE. .. .A. ....EN.

...N.EN ..NT.T...EN ... .E HE..EN

We laten het resterende puzzelwerk aan de lezer over. Ondanks het feit dat eengokje af en toe verkeerd kan uitdraaien, zou het duidelijk moeten zijn dat hetontcijferen van de tekst ons absoluut geen 38 · 1019 jaar zal kosten.

1.7. Inhoud van de studiebundel. In het vervolg van deze tekst zullenwe enkele meer recente en meer geavanceerde cryptosystemen onder de loepnemen. Deze systemen maken vaak gebruik van fundamentele resultaten uit dewiskunde, meer bepaald uit de getaltheorie. Een belangrijk ingredient is hetzogeheten modulorekenen; Paragraaf 2 van de bundel is daaraan gewijd. In dedaaropvolgende paragrafen bespreken we verschillende cryptografische methodendie op het modulorekenen zijn gebaseerd.

1.8. Over de bewijzen in de studiebundel. Voor verschillende resultaten uitde getaltheorie wordt in deze bundel ook een bewijs gegeven. Dit bewijs kan extrainzicht verschaffen in de theorie, maar het is niet strikt noodzakelijk om de rest vande bundel te begrijpen of de opgaven op te lossen. De bewijzen zijn vooral bestemdvoor de leerlingen die dieper op de theorie willen ingaan. De bewijzen van Stelling2.4.2 en Propositie 2.7.1 zijn wel belangrijk omdat ze praktische methoden bevattenom bepaalde getallen te gaan berekenen. Deze methoden worden geıllustreerd inVoorbeelden 2.4.3 en 2.7.2.

1.9. Enkele basisbegrippen. Zij x en y gehele getallen. Een deler van x is eengeheel getal d zodat er een geheel getal q bestaat met x = dq. Als d een deler isvan x, dan zal d ook een deler zijn van van ax, voor alle gehele getallen a. Als deen deler is van x en y, dan is d ook een deler van ax+ by, voor alle gehele getallena en b. Als e een deler is van d en d een deler van x, dan is e ook een deler van x.

Veronderstel nu dat x en y niet beide nul zijn. De grootste gemene deler ggd(x, y)is het grootste natuurlijk getal dat zowel x als y deelt. We noemen x en y relatiefpriem wanneer hun grootste gemene deler gelijk is aan 1. Dat betekent dat −1 en1 de enige gehele getallen zijn die zowel x als y delen.

Een priemgetal is een natuurlijk getal p > 1 zodat 1 en p de enige natuurlijkedelers zijn van p.

2. Modulorekenen

2.1. De wijzers van de klok. Modulorekenen doen we elke dag zonder er bij stilte staan, in het bijzonder wanneer we rekenen met tijd. Stel dat het momenteel vijfuur in de namiddag is. In Sydney is het acht uur later. Hoe laat is het daar op ditmoment?

Een kleine rekensom leert dat het in Sydney een uur in de ochtend is. Hoe zijnwe precies tot dit resultaat gekomen? We hebben bij vijf uur het tijdsverschil vanacht uur opgeteld; dat geeft dus 5 + 8 = 13. Omdat ons horloge de tijd opdeelt inblokken van twaalf uur, trekken we 12 af van de waarde 13 zodat we een uitkomsttussen 0 en 12 verkrijgen. Zo vinden we 13−12 = 1. We zeggen dat 5+8 congruent

Page 5: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

MODULOREKENEN EN CRYPTOGRAFIE 5

is aan 1 modulo 12. We noteren dit door

5 + 8 ≡ 1 mod 12.

Zo’n uitdrukking heet een congruentie, en 12 noemen we de modulus van decongruentie.

In Boston is het zes uur vroeger dan in Leuven. Op dit moment is het daar duself uur in de voormiddag, want 5−6 = −1 en door bij −1 de waarde 12 op te tellenvinden we 11. We zeggen daarom dat 5− 6 congruent is aan 11 modulo 12.

Vaak werken we met congruenties met een andere modulus dan 12. Wanneer jeeen digitaal horloge gebruikt met 24-uursnotatie, dan reken je met uren modulo 24.Als het vandaag vrijdag is en je wil weten welke weekdag het over vier dagen zalzijn, dan rekenen je modulo 7. Enzovoort...

2.2. Congruenties. We gieten deze observaties nu in een algemene definitie. Inhet vervolg van deze tekst noteren we met M steeds een strikt positief geheel getal.

Definitie 2.2.1. Zij x en y gehele getallen. We zeggen dat x congruent is aan ymodulo M wanneer M het geheel getal x− y deelt. We noteren dit met

x ≡ y mod M.

We noemen M de modulus van de congruentie.

De congruentierelatie ≡ heeft enkele interessante eigenschappen:

(1) elk geheel getal x is congruent aan zichzelf modulo M .(2) als x ≡ y modulo M , dan zal ook y ≡ x modulo M , want als M het verschil

x− y deelt, dan deelt M ook y − x = −(x− y).(3) als x ≡ y en y ≡ z modulo M , dan zal ook x ≡ z modulo M . Dit kan je

zelf bewijzen als oefening.

Voor elk geheel getal x noteren we met x de verzameling van alle gehele getallendie congruent zijn aan x modulo M . Dat is dus de verzameling

x = {x, x−M,x+M,x− 2M,x+ 2M, . . .}.We noemen x de congruentieklasse van x modulo M . Elk element van decongruentieklasse x heet een representant van x.

Bovenstaande eigenschappen van de congruentierelatie hebben de volgendeconsequenties: alle elementen van x zijn congruent aan elkaar modulo M . Alsy een tweede geheel getal is, dan is x = y als en slechts als x en y congruentzijn modulo M . In het andere geval zijn x en y disjunct (dat wil zeggen dat dezeverzamelingen een lege doorsnede hebben). Een geheel getal a is een representantvan x als en slechts als a = x.

Elke congruentieklasse x heeft precies een representant c in {0, . . . ,M − 1};als x positief is, dan is c de rest van x bij deling door M . Wanneer we eencongruentieklasse opschrijven, dan kiezen we als representant vaak dit element c.Bijvoorbeeld: als M = 7, dan schrijven we meestal 2 in plaats van 16, en 5 in plaatsvan −9.

De verzameling Z van gehele getallen is dus de unie van de congruentieklassen

0, 1, . . . ,M − 1.

De verzameling van al deze congruentieklassen noteren we met

ZM = {0, 1, . . . ,M − 1}.

Page 6: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

6 MODULOREKENEN EN CRYPTOGRAFIE

Deze definitie lijkt nogal ingewikkeld: ZM is een verzameling waarvan de elementenzelf verzamelingen zijn. Het is vaak handiger om ZM eenvoudigweg te beschouwenals de verzameling die bestaat uit de getallen 0, 1, . . . ,M − 1. De streep bovendeze getallen in de notatie voor de elementen van ZM duidt dan aan dat we op eenbijzondere manier met deze elementen moeten rekenen; dit wordt uitgelegd in devolgende paragraaf.

Voorbeeld 2.2.2 (Congruenties op je bankkaart). Een geldig Belgischbankrekeningnummer bestaat uit een getal G van tien cijfers (met een streepjena de eerste drie), plus een controlegetal van twee cijfers, bijvoorbeeld:

091− 0122401− 16.

Het controlegetal is het unieke element in {1, . . . , 97} dat congruent is aanGmodulo97. Het controlegetal is dus precies de rest van G bij deling door 97, tenzij dezerest 0 is: in dat geval is het controlegetal 97. In bovenstaand voorbeeld is 16 derest van 910122401 bij deling door 97.

Het controlegetal wordt toegevoegd om na te gaan of een rekeningnummercorrect ingevoerd wordt, bijvoorbeeld als je een overschrijving wil uitvoeren. Alsje exact een cijfer verkeerd ingeeft, dan zal het controlegetal niet meer correctzijn, zodat het systeem kan signaleren dat je een fout hebt gemaakt. Als je meerdan een fout maakt, dan kan het wel toevallig gebeuren dat je opnieuw een geldigrekeningnummer krijgt.

2.3. Rekenen met congruentieklassen.

Propositie 2.3.1. Beschouw gehele getallen x, x′, y en y′. Veronderstel dat x ≡ x′

en y ≡ y′ modulo M . Dan gelden de volgende eigenschappen:

(1) x+ y ≡ x′ + y′ modulo M ,(2) x− y ≡ x′ − y′ modulo M ,(3) x · y ≡ x′ · y′ modulo M .

Bewijs. We bewijzen enkel eigenschap (3), de andere kan je zelf aantonen alsoefening. We weten dat x − x′ en y − y′ deelbaar zijn door M . Dat betekent dater gehele getallen a en b bestaan zodat x′ = x + aM en y′ = y + bM . Door dezegelijkheden te vermenigvuldigen vinden we dat

x′y′ = (x+ aM)(y + bM) = xy + (bx+ ay + abM)M.

Dus x′y′ − xy is deelbaar door M , en dat betekent precies dat

x · y ≡ x′ · y′ mod M.

Propositie 2.3.1 is erg belangrijk, omdat hij toelaat bewerkingen te definieren opcongruentieklassen in plaats van op gehele getallen.

Definitie 2.3.2. We definieren we bewerkingen +, − en · op de verzameling ZM

door

x+ y = x+ y,

x− y = x− y,

x · y = x · y,voor alle gehele getallen x en y.

Page 7: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

MODULOREKENEN EN CRYPTOGRAFIE 7

Merk op dat deze definitie ondubbelzinnig is: als x′ en y′ gehele getallen zijnzodat x = x′ en y = y′, dan garandeert Propositie 2.3.1 dat

x+ y = x′ + y′, x− y = x′ − y′, x · y = x′ · y′.Het resultaat van de bewerkingen in Definitie 2.3.2 hangt dus niet af van de keuzevan de representanten x en y.

Meer concreet betekent dit dat we rekenen met elementen van

ZM = {0, 1, . . . ,M − 1}op de volgende manier: om de som, het verschil of het product van twee elementenx en y van ZM te berekenen, voeren we de overeenkomstige bewerking uit op degehele getallen x en y; vervolgens tellen we bij het resultaat een geheel veelvoudop van M zodat we een element z van {0, . . . ,M − 1} bekomen. Het resultaat vanonze bewerking is dan het element z van ZM .

Voorbeeld 2.3.3. Veronderstel dat de modulus M gelijk is aan 6. Dan geldt2 − 9 = −7 = 5. Het product 2 · 3 bereken je als volgt: 2 · 3 = 6 = 0. Alswe 122 · 6001 willen uitrekenen, dan hoeven we daarvoor niet eerst het product122 · 6001 te bepalen. Het volstaat op te merken dat 122 = 2 en 6001 = 1 omdat120 en 6000 deelbaar zijn door 6, zodat

122 · 6001 = 2 · 1 = 2.

Oefening 2.3.4. Bereken de volgende uitdrukkingen modulo 5:

2 + 3, 3− 4, 2309 · 2011.Onze bewerkingen op congruentieklassen hebben de volgende eigenschappen.

Propositie 2.3.5.(1) Het element 0 is een neutraal element voor de optelling, en 1 is een neutraal

element voor de vermenigvuldiging: voor alle gehele getallen x geldt datx+ 0 = 0 + x = x en x · 1 = 1 · x = x.

(2) Voor elk geheel getal x bestaat er een unieke congruentieklasse w zodatx+ w = w + x = 0, namelijk w = −x. We noteren deze congruentieklasseook met −x, de tegengestelde van x.

(3) De optelling van congruentieklassen is associatief en commutatief, dat wilzeggen: x+ (y+ z) = (x+ y) + z en x+ y = y+ x voor alle gehele getallenx, y en z. De analoge eigenschappen gelden voor de vermenigvuldiging.

(4) De vermenigvuldiging van congruentieklassen is distributief te opzichte vande optelling, dat wil zeggen:

x · (y + z) = x · y + x · zvoor alle gehele getallen x, y en z.

Al deze eigenschappen volgen onmiddellijk uit de overeenkomstige eigenschappenvoor de optelling en vermenigvuldiging van gehele getallen. Je zal bij berekeningenmet congruentieklassen deze eigenschappen waarschijnlijk spontaan toepassenzonder er bij stil te staan.

Oefening 2.3.6. Toon aan dat een natuurlijk getal x deelbaar is door 9 als enslechts als de som van de cijfers van x deelbaar is door 9. Hint: schrijf x als

x = c0 + c1 · 10 + . . .+ cm · 10m

met c1, . . . , cm in {0, . . . , 9}, en bereken de congruentieklasse van x modulo 9.

Page 8: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

8 MODULOREKENEN EN CRYPTOGRAFIE

Oefening 2.3.7. Bij een “perfect shuffle” meng je twee helften van een spel kaartenritsgewijs door elkaar. Als je de kaarten bij aanvang nummert met 0, 1, . . . , 51, danliggen ze na zo’n perfect shuffle in de volgorde

0, 26, 1, 27, 2, 28, . . . , 25, 51.

Hoeveel “perfect shuffles” moet je minimaal uitvoeren opdat de kaarten weer opdezelfde volgorde zouden liggen als in het begin? Hint: reken modulo 51.

2.4. Het algoritme van Euclides en de stelling van Bezout-Bachet.Omstreeks 300 voor Christus schreef de beroemde Alexandrijnse wiskundigeEuclides in een van zijn Elementen een algoritme neer om de grootste gemenedeler van twee natuurlijke getallen te bepalen. We illustreren dit algoritme aan dehand van een voorbeeld.

Voorbeeld 2.4.1. We gaan de grootste gemene deler bepalen van 34 en 14. Wevoeren eerst de Euclidische deling (= gehele deling met rest) uit van 34 door 14:

34 = 2 · 14 + 6.

Hierbij is 2 het quotient van de deling en 6 de rest. We herhalen deze bewerkingmet 14 en 6:

14 = 2 · 6 + 2.

Vervolgens delen we 6 door de nieuwe rest 2:

6 = 3 · 2.Nu is de rest gelijk aan 0, met andere woorden: 2 is een deler van 6. Hieruitkan je besluiten dat 2 (de laatste rest die we vonden verschillend van nul) degrootste gemene deler is van 34 en 14; we zullen dit hieronder op een preciezemanier aantonen. Merk op dat het algoritme altijd eindigt na een eindig aantalstappen: in elke stap wordt de rest strikt kleiner, zodat we uiteindelijk op 0 moetenuitkomen.

Door het algoritme van Euclides nauwkeuriger te bestuderen, kunnen we eennieuw resultaat bewijzen: de stelling van Bezout-Bachet. Deze stelling is van grootbelang voor de getaltheorie.

Stelling 2.4.2 (Bezout-Bachet). Als x en y twee natuurlijke getallen zijn, nietbeide nul, en als d de grootste gemene deler is van x en y, dan bestaan er gehelegetallen a en b zodat

ax+ by = d.

Bewijs. We mogen veronderstellen dat x ≥ y (anders wisselen we x en y gewoonom) en dat y verschillend is van 0 (anders is ggd(x, y) = x en valt er niets tebewijzen). We stellen r0 = x en r1 = y.

Nu voeren we het algoritme van Euclides uit. Het resultaat is een lijst vanEuclidische delingen

r0 = q1r1 + r2

r1 = q2r2 + r3...

rn = qn+1rn+1 + rn+2

waarbij de laatste rest rn+2 gelijk is aan 0.

Page 9: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

MODULOREKENEN EN CRYPTOGRAFIE 9

Omdat rn = qn+1rn+1 is rn+1 een deler van rn. Omdat

rn−1 = qnrn + rn+1

zal rn+1 bovendien ook een deler zijn van rn−1. Door zo verder op te klimmen inonze lijst, zien we uiteindelijk dat rn+1 ook r0 = x en r1 = y zal delen.

Door onze Euclidische delingen een beetje te herschrijven, vinden we de volgendegelijkheden:

r2 = r0 − q1r1r3 = r1 − q2r2 = −q2r0 + (q1q2 + 1)r1r4 = r2 − q3r3 = (q2q3 + 1)r0 − (q1 + q1q2q3 + q3)r1...rn+1 = rn−1 − qnrn = ar0 + br1

met a en b gehele getallen. Uit de laatste gelijkheid volgt dat elke gemene deler vanr0 = x en r1 = y ook een deler moet zijn van rn+1. We hebben hierboven al geziendat rn+1 zelf een deler is van x en y. Daarom kunnen we besluiten dat rn+1 gelijkis aan de grootste gemene deler d van x en y. We vinden zo dat

d = ax+ by,

en dit is precies wat we wilden bewijzen. �

Het bewijs van de stelling geeft een methode om de grootste gemene deler d en decoefficienten a en b expliciet te bepalen. We noemen deze methode het uitgebreidealgoritme van Euclides. In Voorbeeld 2.4.3 zie je het algoritme aan het werk ineen concrete situatie. De coefficienten a en b zijn niet uniek: alle gehele getallena′ = a+ ky/d en b′ = b− kx/d, met k ∈ Z, voldoen aan de vergelijking

a′x+ b′y = d.

Voorbeeld 2.4.3. We passen het uigebreide algoritme van Euclides toe op x = 31en y = 22. We voeren eerst het klassieke algoritme van Euclides uit:

31 = 22 + 9,

22 = 2 · 9 + 4,

9 = 2 · 4 + 1,

4 = 4 · 1 + 0.

De grootste gemene deler van 31 en 22 is dus gelijk aan 1. Nu herschrijven we dezelijst gelijkheden zoals in het bewijs van Stelling 2.4.2:

9 = 31− 22,4 = 22− 2 · 9 = −2 · 31 + 3 · 22,1 = 9− 2 · 4 = 5 · 31− 7 · 22.

We vinden zo dat

ggd(31, 22) = 1 = 5 · 31− 7 · 22.

Het is handig om deze berekeningen op te schrijven in een tabel:

Page 10: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

10 MODULOREKENEN EN CRYPTOGRAFIE

31 2231 = 1 · 31 + 0 · 22 1 022 = 0 · 31 + 1 · 22 0 19 = 31− 22 1 -14 = 22− 2 · 9 -2 31 = 9− 2 · 4 5 -7

Oefening 2.4.4. Vind de grootste gemene deler van 202 en 142 en schrijf hem als

a · 202 + b · 142met a en b gehele getallen.

We bespreken nu enkele belangrijke gevolgen van de stelling van Bezout-Bachet.

2.5. Priemontbinding.

Lemma 2.5.1 (Lemma van Euclides). Zij x en y gehele getallen, en zij p eenpriemgetal. Als p het product xy deelt, dan moet p ook x of y delen.

Bewijs. Stel dat p het getal x niet deelt. Dan zijn x en p relatief priem, want deenige natuurlijke delers van p zijn 1 en p. Volgens de stelling van Bezout-Bachetbestaan er gehele getallen a en b zodat

1 = ax+ bp.

Omdat p een deler is van xy, zal p ook een deler zijn van

y = (ax+ bp) · y = axy + bpy.

Het volgende resultaat is een van de belangrijkste eigenschappen van denatuurlijke getallen. Een groot deel van de getaltheorie is op deze stelling gebaseerd.Daarom wordt hij de fundamentaalstelling van de getaltheorie genoemd. Ditresultaat staat in essentie al vermeld in Euclides’ Elementen, hoewel Euclides eenandere formulering gebruikte.

Stelling 2.5.2 (Fundamentaalstelling van de getaltheorie). Elk natuurlijk getalx > 1 kan geschreven worden als een product van machten van priemgetallen:

(2.1) x = pα11 · . . . · pαr

r ,

met p1, . . . , pr priem en α1, . . . , αr natuurlijke getallen. We zullen in dezeschrijfwijze steeds veronderstellen dat p1 < p2 < . . . < pr en dat de exponentenαi verschillend zijn van 0. Onder die veronderstelling is de schrijfwijze uniek. Wenoemen hem de priemontbinding van x.

Bewijs. Het is niet moeilijk in te zien dat we elk natuurlijk getal x > 1 kunnenschrijven als een product van priemgetallen. We geven een bewijs via inductie opx. Als x = 2 dan is x al priem en valt er niets te bewijzen. Veronderstel dus datx > 2 en dat we elk natuurlijk getal x′ in het interval [2, x−1] kunnen schrijven alseen product van priemgetallen. Als x priem is, dan valt er niets te bewijzen. Zonietkunnen we x schrijven als y · z met y en z natuurlijke getallen die strikt kleiner zijndan x. Volgens onze inductiehypothese kunnen we y en z schrijven als productenvan priemgetallen. Als we deze uitdrukkingen met elkaar vermenigvuldigen, danhebben we x geschreven als een product van priemgetallen.

Page 11: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

MODULOREKENEN EN CRYPTOGRAFIE 11

Nu bewijzen we dat de schrijfwijze (2.1) uniek is. Zij p een priemgetal en α hetgrootste natuurlijke getal zodat pα een deler is van x. Als α = 0 dan is pα = 1 en isp geen deler van x; het priemgetal p kan dan ook niet voorkomen in de ontbinding(2.1). Als α > 0 dan moet p volgens het lemma van Euclides een deler zijn van eenvan de priemgetallen p1, . . . , pr, en dus gelijk zijn aan pi met i ∈ {1, . . . , r}. Omdatpαii een deler is van x en we α zo groot mogelijk gekozen hebben, moet αi ≤ α.

Omdat pα een deler is van x, zal pα−αi een deler zijn van x/pαii . Maar x/pαi

i is eenproduct van priemgetallen die verschillend zijn van p, en dus volgt uit het lemmavan Euclides dat p geen deler kan zijn van x/pαi

i , zodat α = αi.Dit toont aan dat de ontbinding (2.1) uniek is: de priemgetallen p1, . . . , pr zijn

precies al de priemgetallen die x delen, en voor elke i is αi het grootste natuurlijkgetal zodat pαi

i een deler is van x. �

Gevolg 2.5.3. Twee gehele getallen zijn relatief priem als en slechts als ze geengemeenschappelijke priemdelers hebben.

Oefening 2.5.4. Stel dat x, y en z gehele getallen zijn zodat x en y relatief priemzijn. Toon de volgende eigenschappen aan.

(1) Als x en z relatief priem zijn, dan zijn ook x en yz relatief priem.(2) Het product xy is een deler van z als en slechts als x en y delers zijn van z.(3) Het getal x is een deler van z als en slechts als x een deler is van yz.

Oefening 2.5.5. Zij p en q verschillende priemgetallen. Bepaal het aantalnatuurlijke delers van x = p8q13.

Oefening 2.5.6. Zij n een natuurlijk getal zodat n+ 1 geen priemgetal is en ookniet het kwadraat van een priemgetal. Toon aan dat n+ 1 een deler is van n!.

2.6. De Chinese reststelling.

Stelling 2.6.1 (Chinese reststelling1). Zij M1, . . . ,Mr strikt positieve gehelegetallen. We veronderstellen dat deze getallen paarsgewijs relatief priem zijn, datwil zeggen:

ggd(Mi,Mj) = 1

voor alle elementen i en j in {1, . . . , r} waarvoor i = j.Voor alle gehele getallen x1, . . . , xr bestaat er een geheel getal x zodat

(2.2) x ≡ xi mod Mi

voor elke i in {1, . . . , r}. De gehele getallen y die ook aan al deze congruentiesvoldoen zijn precies de elementen van de congruentieklasse van x modulo

M = M1 · . . . ·Mr.

Bewijs. Stel M = M1 · . . . ·Mr. Voor elke i in {1, . . . , r} zijn de gehele getallen Mi

en M/Mi relatief priem, aangezien elke priemdeler van M/Mi een deler moet zijnvan een van de factoren Mj met j = i, en Mi en Mj geen gemeenschappelijkepriemdelers hebben. Volgens de stelling van Bezout-Bachet kunnen we gehelegetallen ai en bi vinden zodat

aiMi + biM/Mi = 1.

1Dit resultaat werd al in de 4de eeuw na Christus opgetekend in Het rekenkundig handboekvan Meester Sun van de Chinese wiskundige Sunzi.

Page 12: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

12 MODULOREKENEN EN CRYPTOGRAFIE

We stellen

x = x1b1M/M1 + · · ·+ xrbrM/Mr.

Voor elke i in {1, . . . , r} zal Mi een deler zijn van

x− xi = x1b1M/M1 + · · ·+ xi(biM/Mi − 1) + · · ·+ xrbrM/Mr

omdat Mi een deler is van M/Mj voor alle j = i en ook een deler van

biM/Mi − 1 = −aiMi.

Dus het getal x voldoet aan de congruentie (2.2), voor alle i in {1, . . . , r}.Het is duidelijk dat elk getal y in de congruentieklasse van x modulo M ook aan

al deze congruenties voldoet, aangezien y−x dan deelbaar is door M en dus door alde moduli Mi. We moeten enkel nog aantonen dat we zo alle oplossingen gevondenhebben. Veronderstel dus dat y een geheel getal is zodat

y ≡ xi mod Mi

voor alle i. Dan zal y ook congruent zijn aan x modulo Mi, voor alle i. Aangeziende moduli Mi paarsgewijs relatief priem zijn, vinden we door Oefening 2.5.4herhaaldelijk toe te passen dat M een deler moet zijn van y−x. Dus y behoort totde congruentieklasse van x modulo M . �

De Chinese reststelling is een sterk resultaat: om de congruentieklasse van eengeheel x modulo M1 · . . . ·Mr te bepalen, volstaat het de congruentieklassen van xte kennen modulo de getallen M1, . . . ,Mr.

Voorbeeld 2.6.2. De gehele getallen x die voldoen aan de congruenties{x ≡ 2 mod 13x ≡ 0 mod 7

zijn precies de elementen van de congruentieklasse

28 = {28, 119,−63, 210,−154, . . .}

modulo 13 · 7 = 91.

2.7. Eenheden in ZM . Zij M een strikt positief geheel getal.

Propositie 2.7.1. Zij x een geheel getal. De getallen x en M zijn relatief priemals en slechts als er een geheel getal y bestaat zodat

x · y = 1

in ZM .In dat geval is de congruentieklasse y uniek. We noemen deze congruentieklasse

het inverse element van x, en we noteren hem met x−1. Als x een inverse heeft,dan noemen we x een eenheid in ZM , en noemen we x een eenheid modulo M . Deverzameling van eenheden in ZM duiden we aan met Z×

M .

Bewijs. Veronderstel eerst dat x en y gehele getallen zijn zodat x · y = 1. Datbetekent dat M een deler is van xy− 1. Elke gemene deler d van x en M deelt duszowel x als xy − 1. Dan moet d ook een deler zijn van xy, en dus van

xy − (xy − 1) = 1.

Daaruit volgt dat d enkel 1 of −1 kan zijn, en dat ggd(x,M) = 1.

Page 13: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

MODULOREKENEN EN CRYPTOGRAFIE 13

Nu tonen we de omgekeerde implicatie aan. Veronderstel dat x een geheel getalis zodat ggd(x,M) = 1. Volgens de stelling van Bezout-Bachet bestaan er dangehele getallen a en b zodat

ax+ bM = 1.

De modulus M moet dan een deler zijn van

ax− 1 = −bM.

Dus

ax ≡ 1 mod M,

met andere woorden: x · a = 1.Als c een geheel getal is zodat eveneens x · c = 1, dan geldt omwille van de

commutativiteit en de associativiteit van de vermenigvuldiging dat

c = (x · a) · c = (x · c) · a = a.

Dus het inverse element a van x is uniek (als het bestaat). �

Dit bewijs laat ook zien hoe je het inverse element van x kan vinden: het is decongruentieklasse van de coefficient a van x die je kan bepalen via het uitgebreidealgoritme van Euclides.

Voorbeeld 2.7.2. We lezen af uit Voorbeeld 2.4.3 dat −7 = 24 het inverse elementis van 22 in Z31, omdat

−7 · 22 = 1− 5 · 31 ≡ 1 mod 31.

Oefening 2.7.3. Zijn de volgende getallen eenheden in Z35? Zo ja, bereken huninvers.

5, 6, 8, 34.

Oefening 2.7.4. Toon de volgende eigenschappen aan:

(1) Als r en s eenheden zijn in ZM , dan is r · s een eenheid in ZM .(2) Als r een eenheid is in ZM en u en v elementen in ZM zodat r · u = r · v,

dan moet u = v.

Merk op dat de tweede eigenschap niet geldt als r geen eenheid is: zo is 2·3 = 0 = 2·0in Z6, terwijl 3 = 0.

Oefening 2.7.5. Stel dat x en y natuurlijke getallen zijn zodat x eindigt op decijfers 13 en zodat x · y eindigt op 52. Toon aan dat het getal y moet eindigen op04.

We stellen ons nu de volgende vraag: hoeveel elementen bevat Z×M? Met andere

woorden: hoeveel elementen in

{0, . . . ,M − 1}

zijn een eenheid modulo M? Omwille van Propositie 2.7.1 weten we dat dit preciesde elementen zijn van de verzameling

EM = {x ∈ {0, . . . ,M − 1} | ggd(x,M) = 1}.

Het aantal elementen van EM noteren we met φ(M). Dit getal wordt het Eulergetalvan M genoemd.

Page 14: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

14 MODULOREKENEN EN CRYPTOGRAFIE

Voorbeeld 2.7.6. Het Eulergetal φ(1) is gelijk aan 1, want de grootste gemenedeler van 0 en 1 is gelijk aan 1, zodat E1 = {0}. Het Eulergetal φ(6) is gelijk aan2, want

E6 = {1, 5}.Als p een priemgetal is, dan is

Ep = {1, . . . , p− 1}

en dus φ(p) = p− 1.

We gaan nu een handige formule opstellen die ons toelaat om φ(M) expliciet teberekenen.

Lemma 2.7.7. Zij M en N strikt positieve gehele getallen, en veronderstel dat Men N relatief priem zijn. Dan geldt

φ(MN) = φ(M) · φ(N).

Bewijs. Zij x een element van {0, . . . ,MN − 1}. Uit de Chinese reststelling volgtdat x volledig bepaald wordt door zijn congruentieklassen modulo M en N : voorelke a in {0, . . . ,M − 1} en elke b in {0, . . . , N − 1} is er precies een element x in{0, . . . ,MN − 1} zodat

x ≡ a mod M en x ≡ b mod N.

Bovendien is x relatief priem met MN als en slechts als a relatief priem is met Men b relatief priem is met N . Dit kan je inzien als volgt: de gemeenschappelijkepriemdelers van x en MN zijn precies de priemgetallen p die x delen en ook Mof N , omwille van het lemma van Euclides. Maar als p een deler is van M , dandeelt p ook x als en slechts als p een deler is van a, vermits we a kunnen schrijvenals a = x + kM met k ∈ Z. De gemeenschappelijke priemdelers van x en M zijndus precies de gemeenschappelijke priemdelers van a en M . De analoge eigenschapgeldt voor x, b en N .

Dus φ(MN) is gelijk aan het aantal elementen in de productverzameling

{a ∈ {0, . . . ,M − 1} | ggd(a,M) = 1} × {b ∈ {0, . . . , N − 1} | ggd(b,N) = 1}.

De eerste factor in dit product heeft precies φ(M) elementen, en de tweede φ(N).We kunnen daarom besluiten dat

φ(MN) = φ(M) · φ(N).

Propositie 2.7.8. Zij M > 1 een geheel getal met priemontbinding

M = pα11 · . . . · pαr

r .

Dan geldt

φ(M) = (p1 − 1)pα1−11 · . . . · (pr − 1)pαr−1

r .

Bewijs. Veronderstel eerst dat r = 1; dan is M gelijk aan pα, met p een priemgetalen α een strikt positief geheel getal. De elementen in {0, . . . ,M−1} die niet relatiefpriem zijn met M zijn dan precies de veelvouden van p, namelijk

V = {0, p, 2p, . . . , (pα−1 − 1)p}.

Page 15: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

MODULOREKENEN EN CRYPTOGRAFIE 15

Merk op dat (pα−1−1)p inderdaad het grootste veelvoud van p is dat strikt kleineris dan M = pα. De verzameling V bevat pα−1 elementen, dus de verzameling

EM = {0, . . . ,M − 1} \ Vbevat

M − pα−1 = (p− 1)pα−1

elementen. We vinden zo dat

φ(pα) = (p− 1)pα−1.

De algemene formule voor φ(M) volgt nu onmiddellijk uit Lemma 2.7.7. �

Oefening 2.7.9. Bewijs Propositie 2.7.8 als M een product is van tweeverschillende priemgetallen p en q, zonder gebruik te maken van de Chinesereststelling: tel de elementen van {0, . . . ,M −1} die niet relatief priem zijn met M .

2.8. De congruentie van Euler en de kleine stelling van Fermat.

Stelling 2.8.1 (Congruentie van Euler). Zij M een strikt positief geheel getal, ena een geheel getal dat relatief priem is ten opzichte van M . Dan geldt

aφ(M) ≡ 1 mod M.

Bewijs. Zijr1, . . . , rφ(M)

de eenheden in ZM . Uit Oefening 2.7.4 volgt dat

{r1, . . . , rφ(M)} = {a · r1, . . . , a · rφ(M)}.Als we de elementen in elk van deze verzameligen vermenigvuldigen, dan vindenwe dat

r1 · . . . · rφ(M) = aφ(M) · r1 · . . . · rφ(M).

Oefening 2.7.4 zegt dan dat

aφ(M) = 1,

anders gezegd:

aφ(M) ≡ 1 mod M.

Gevolg 2.8.2 (Kleine stelling van Fermat2). Als p een priemgetal is en a een geheelgetal dat niet deelbaar is door p, dan geldt

ap−1 ≡ 1 mod p.

Voor alle gehele getallen b geldt dus dat

bp ≡ b mod p.

2We noemen Gevolg 2.8.2 de kleine stelling van Fermat om het onderscheid te maken met deberoemde grote stelling van Fermat. Die zegt het volgende: als x, y, z en n natuurlijke getallen

zijn zodat

xn + yn = zn

en n > 2, dan moet x of y gelijk zijn aan 0. Dit resultaat, door Fermat geformuleerd in 1637,

werd pas in 1994 bewezen door de Britse wiskundige Andrew Wiles. Het bewijs maakt gebruikvan erg diepe resultaten uit de getaltheorie en de meetkunde.

Page 16: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

16 MODULOREKENEN EN CRYPTOGRAFIE

Bewijs. De eerste bewering is een bijzonder geval van de congruentie van Euler,omdat φ(p) = p − 1. Als we beide leden van deze congruentie vermenigvuldigenmet a, dan vinden we

ap ≡ a mod p.

De tweede bewering hoeven we dan enkel nog te bewijzen als p een deler is van b.In dat geval geldt

bp ≡ b ≡ 0 mod p.

Gevolg 2.8.3. Zij M een strikt positief geheel getal, en a een geheel getal datrelatief priem is ten opzichte van M . Als x en y natuurlijke getallen zijn zodat

x ≡ y mod φ(M),

dan zal

ax ≡ ay mod M.

Bewijs. We mogen veronderstellen dat x > y, anders wisselen we x en y gewoonom. Dan zal y = x + φ(M)q met q een natuurlijk getal. Uit de congruentie vanEuler volgt nu dat

ay = ax(aφ(M))q ≡ ax mod M.

Voorbeeld 2.8.4. Stel dat we de rest van 350 bij deling door 35 willen berekenen,Uit Propositie 2.7.8 volgt dat φ(35) = 4 · 6 = 24. Bovendien zijn 3 en 35 relatiefpriem. We kunnen Gevolg 2.8.3 daarom toepassen op de volgende manier:

50 ≡ 2 mod 24,

zodat

350 ≡ 32 mod 35.

De rest van 350 bij deling door 35 is dus gelijk aan 9.

Oefening 2.8.5. Beschouw een geheel getal n > 1. Bewijs dat 7(2n) eindigt op het

cijfer 1, en 2(2n) + 1 op het cijfer 7. Wat zijn de laatste twee cijfers van 39(41

2011)?

2.9. Generatoren in Z×p .

Propositie 2.9.1. Zij p een priemgetal. Dan bestaat er een element g in Z×p zodat

Z×p = {g, g2, . . . , gp−1 = 1}.

Zo’n element g noemen we een generator van Z×p .

Merk op dat gp−1 = 1 voor elk element g van Z×p omwille van de kleine stelling

van Fermat (Gevolg 2.8.2). Als g een generator is van Z×p , dan moeten de machten

gi en gj verschillend zijn voor alle elementen i = j in {1, . . . , p − 1}, omdat weweten dat Z×

p precies φ(p) = p− 1 elementen bevat.Het bewijs van deze eigenschap valt helaas buiten het bestek van deze bundel.

We kunnen hem wel illustreren aan de hand van een voorbeeld.

Page 17: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

MODULOREKENEN EN CRYPTOGRAFIE 17

Voorbeeld 2.9.2. Het element 2 is een generator van Z×5 . De opeenvolgende

machten van 2 zijn

21= 2, 2

2= 4, 2

3= 8 = 3, 2

4= 16 = 1.

Het element 4 is geen generator van Z×5 .

In de volgende secties bespreken we verschillende cryptosystemen die zijngebaseerd op getaltheorie, en in het bijzonder op modulorekenen.

3. Van Vigenere tot AES

3.1. Het Vigenerecijfer. We zagen in Paragraaf 1.6 dat het substitutiecijferrelatief eenvoudig gekraakt kan worden door middel van frequentieanalyse. In 1553stelde Giovanni Belaso een alternatief cryptosysteem voor dat de problemen vanhet substitutiecijfer leek op te lossen. Het werd opgepikt door de Franse diplomaatBlaise de Vigenere naar wie het cryptosysteem sindsdien wordt genoemd: hetVigenerecijfer.

Het Vigenerecijfer maakt gebruik van een codewoord. Dat woord kan bijvoorbeeld

TOERNOOI

zijn. Om een zin, bijvoorbeeld

ALEA JACTA EST,

te vercijferen vullen we een regel eronder met kopieen van het codewoord. Eventueeldient de laatste kopie te worden afgebroken:

ALEA JACTA EST

TOER NOOIT OER.

Een letter op de tweede regel bepaalt nu hoeveel plaatsen in het alfabet de lettererboven wordt opgeschoven. We identificeren daarvoor de letters van het alfabetmet de congruentieklassen in Z26. Hierbij staat de A voor 0, de B voor 1, de C voor2, . . . , de Z voor 25.

We vervangen nu de letters van de boodschap en van het codewoord door deovereenkomstige congruentieklassen in Z26. Vervolgens tellen we beide regels bijelkaar op. Het resultaat is een rij elementen van Z26, die we opnieuw omzetten ineen rij van letters. Deze rij letters is de vercijferde boodschap.

In ons voorbeeld vervangen we

ALEA JACTA EST

TOER NOOIT OER.

dus door

0 11 4 0 9 0 2 19 0 4 18 1919 14 4 17 13 14 14 8 19 14 4 17.

Als we nu beide regels optellen, dan vinden we

19 25 8 17 22 14 16 1 19 18 22 10.

Door deze reeks congruentieklassen weer om te zetten in letters, vinden we tenslottede Vigenere-vercijfering horend bij het codewoord TOERNOOI:

TZIR WOQBT SWK.

Page 18: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

18 MODULOREKENEN EN CRYPTOGRAFIE

Het ontcijferen gebeurt dan door de rij kopieen van het codewoord weer van devercijferde tekst af te trekken. Zoals je ziet wordt de letter A in bovenstaande tekstzowel als een T, een R en een O vercijferd. Dat maakt een statistische aanval zoalsin Paragraaf 1.6 op het eerste zicht waardeloos.

Oefening 3.1.1. Het Caesarcijfer is een speciaal geval van het Vigenerecijfer. Watis het bijhorende codewoord?

Oefening 3.1.2. De tekstGVZZG BY SE!

is vercijferd volgens de Vigeneremethode, met codewoord

FERMAT.

Wat is de oorspronkelijke boodschap?

Lange tijd werd het Vigenerecijfer als onbreekbaar beschouwd. Het kreeg zelfsde bijnaam le chiffre indechiffrable (het onontcijferbare cijfer). Halfweg de 19de

was het sprookje echter uit. Toen publiceerde Friedrich Kasiski een methode omhet cijfer te kraken, op voorwaarde dat de ontvangen tekst voldoende lang is.

(a) Wanneer we de lengte van het codewoord kennen, dan is het Vigenerecijfereenvoudig te kraken. Stel bijvoorbeeld dat we weten dat het codewoordacht letters telt. Dan kunnen we de 1ste, de 9de, de 17de, de 25ste, ...letter van de vercijferde tekst samen bekijken. Omdat deze letters allemaalover dezelfde afstand zijn verschoven, zullen we de eerste letter van hetcodewoord kunnen gokken met behulp van een frequentieanalyse zoals inParagraaf 1.6. Analoog vinden we de tweede letter door de 2de, de 10de, de18de, de 26ste, ... vercijferde letters samen te bekijken, enzoverder.

(b) De meest ambachtelijke aanval is dan om de procedure uit (a)uit te voeren voor lengte 1, lengte 2, lengte 3, . . . tot we eenbetekenisvolle ontcijfering vinden. Vaak kan de lengte op voorhandgegokt worden door te kijken naar opvallende letteropeenvolgingen dieterugkeren. De afstand tussen twee dergelijke opeenvolgingen is metgrote kans een veelvoud van de lengte van het codewoord. Als weeen paar dergelijke veelvouden kunnen opspeuren, dan is de lengte vanhet codewoord heel waarschijnlijk de grootste gemene deler van dezeveelvouden. Deze methode wordt geıllustreerd op de leuke websitehttp://www.simonsingh.net/The_Black_Chamber/contents.html

De daaropvolgende 100 jaar worden gekenmerkt door veel cryptografischebedrijvigheid. De twee wereldoorlogen zijn daar natuurlijk niet vreemd aan. Zostuurde Arthur Zimmermann, de Duitse minister van buitenlandse zaken, in 1917een vercijferd bericht naar zijn ambassadeur in Washington, D.C. Daarin werd dielaatste aangemaand om de Verenigde Staten en Mexico tegen elkaar op te stoken.Op die manier hoopte Zimmermann dat de Amerikanen het te druk zouden hebbenmet hun eigen conflict om zich actief met WO I te bemoeien. Het bericht werdechter onderschept en gekraakt, en had een averechts effect: de Verenigde Statenverklaarden Duitsland de oorlog en WO I, die op dat moment muurvast zat, kwamin een stroomversnelling. Een jaar later was de oorlog beslecht.

Waar het Zimmermanntelegram eerder een amateuristische blunder was diegeen veiligheidsdienst die naam waardig had kunnen verschalken, was cryptografietijdens de tweede wereldoorlog echt big business. Door het toenemende gebruik

Page 19: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

MODULOREKENEN EN CRYPTOGRAFIE 19

van vliegtuigen en onderzeeers bulkte de ether van de geheime berichten. Inhet geval van de Duitsers waren die berichten meestal vercijferd met behulp vaneen Enigma. Dat was een typmachine die in de jaren ‘10 was ontwikkeld ende ingetypte tekst automatisch in geheimschrift zette. Voor gebruik moesten bijde Enigma een aantal zaken fysiek worden ingesteld (koppelingen van elektrischebedradingen, beginstanden van rotoren). Die instellingen dienden als geheimesleutel en veranderden dagelijks. De Enigma leek niet te kraken, maar de Britsegeheime diensten bleven hardnekkig proberen. Hardnekkig is een understatement.Op het hoogtepunt was een team van maar liefst 10000 mannen en vrouwen full-timebezig met het onderscheppen, opschrijven en bestuderen van de Duitse berichten.Het bestuderen gebeurde door een team wiskundigen, met aan het hoofd de briljanteAlan Turing. Uiteindelijk slaagden ze in hun opzet, voortbouwend op eerderedoorbraken van de Poolse wiskundige Marian Rejewski in opdracht van de Poolsegeheime dienst.

De Enigma was een wijd verspreid toestel en de Duitsers waren zich ervan bewustdat de Britten over fysieke exemplaren beschikten. Ook al betekende dat niet datde Britten de bijhorende geheime instellingen kenden, toch gebruikten de Duitsersuit voorzorg een complexere variant van het toestel voor informatie die echt topsecret was: de Lorenz-Geheimschreiber. Ook die werd uiteindelijk door de Brittengekraakt. Ze wisten zelfs een Geheimschreiber na te bootsen zonder er zelf ooit eente hebben gezien!

Dit alles speelde ongetwijfeld een sleutelrol in WO II. Zo waren de geallieerdetroepen er bij de cruciale landing op Normandie vrij zeker van dat de Duitsers inde bijhorende valstrik waren getrapt.

3.2. Om de Lorenz-Geheimschreiber te kraken ontwikkelden de Britten deallereerste digitale computers: Colossus I en Colossus II. Na afloop van WO IIwerden de Colossus-computers vernietigd.

3.3. Bij deze fantastische geschiedenis horen een aantal minder fraaie kanttekenin-gen. Na afloop van de oorlog hielden de Britten hun verwezenlijkingen geheim (totde jaren ‘70). Hiervan misbruik makend bleef het Verenigd Koninkrijk het gebruikvan Enigma-toestellen stimuleren, onder andere bij hun eigen kolonies. Ook jegensAlan Turing legden ze niet veel menselijkheid aan de dag. De homoseksuele Turingwerd na de oorlog verplicht zich chemisch te laten castreren en zou uiteindelijk in1954 zelfmoord plegen. In 2009 bood de Britse regering hiervoor haar excuses aan.

3.4. De jaren ‘70: een sleutelperiode. De jaren ‘70 zijn een absoluut keerpuntvoor de cryptografie. Een van de redenen is de publieke bekendmaking van het ganseEnigma-verhaal. De technieken die Turing en co hadden ontwikkeld vonden op diemanier hun weg naar het wetenschappelijke circuit en veranderden het aanschijnvan de cryptografie definitief.

Een tweede reden is de invoering door de Amerikaanse overheid van een nationalestandaard om berichten in geheimschrift te zetten: de Data Encryption Standard(DES). Veel wetenschappers vertrouwden DES niet. De sleutelruimte was immersnogal klein (256 mogelijke sleutels) en men vreesde dat de beleidsmakers er eenachterpoortje in hadden verwerkt, waardoor ze het systeem zelf zouden kunnenkraken. Die achterdocht bleek uiteindelijk onterecht, maar de intensieve analyse vanDES is van enorme waarde gebleken voor de cryptografie. Vandaag de dag kan DESin minder dan een dag worden gekraakt. Varianten van het cijfer worden echter nog

Page 20: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

20 MODULOREKENEN EN CRYPTOGRAFIE

altijd gebruikt. Zo beroepen de meeste bankautomaten zich op 3DES (essentieel driekopieen van DES, met een sleutelruimte van grootte 256 ·256 ·256 = 2168). De lessendie uit DES werden getrokken leidden uiteindelijk naar een nieuw cryptosysteemdat in 2002 gelanceerd werd: de Advanced Encryption Standard (AES). Het isgebaseerd op het Rijndael-algoritme van de Leuvense ingenieurs Joan Daemen enVincent Rijmen. Vandaag de dag geldt AES als de internationale standaard. Zeheeft een sleutelruimte van grootte 2128.

Een derde en misschien wel belangrijkste reden is de ontdekking van methodesom op een publieke manier geheime sleutels of zelfs ganse geheime boodschappenuit te wisselen. Deze vormen het einddoel van deze bundel en bespreken we in devolgende secties.

4. Veilige sleuteluitwisseling

4.1. Een fundamenteel probleem bij alle hierboven besproken cryptosystemen,inclusief DES en AES, is het uitwisselen van de geheime sleutel tussen zender enontvanger. Indien beide partijen elkaar niet fysiek kunnen ontmoeten is dit een heeldelicaat aspect. Zo kregen de Duitse klerken tijdens WO II maandelijks een agendaopgestuurd waarin de geheime Enigma-instellingen voor de volgende maand perdag stonden opgelijst. Bij minstens een gelegenheid is zo’n boekje door de Britsegeheime diensten onderschept.

Een ander cryptosysteem gebruiken om de geheime sleutel met elkaar uit tewisselen verlegt het probleem natuurlijk alleen maar. Het is a priori zelfs helemaalniet duidelijk dat er een oplossing voor dit probleem bestaat. Het kwam danook als een absolute verrassing toen Whitfield Diffie en Martin Hellman in 1976een methode publiceerden die geheime sleuteluitwisseling mogelijk maakt. Hunmethode maakt gebruik van modulorekenen.

4.2. Van sleutel tot congruentieklas modulo p. Een geheime sleutel is in depraktijk altijd te identificeren met een natuurlijk getal x waarvoor

0 ≤ x < S

waarbij S de grootte van de sleutelruimte is. Bij het substitutiecijfer kan eenlettervolgorde zoals in (1.1) worden bekeken als een getal tussen 0 en 26!− 1 dooralle mogelijke lettervolgordes alfabetisch te ordenen. Omgekeerd geeft elk natuurlijkgetal tussen 0 en 26!− 1 aanleiding tot zo’n lettervolgorde. Bij AES is de geheimesleutel een opeenvolging van 128 nulletjes en eentjes:

10100111010101011010101010111101000001101001 . . . 011001.

Dit kan men bekijken als de binaire schrijfwijze van een natuurlijk getal tussen 0 en2128 − 1. Omgekeerd zal elk natuurlijk getal tussen 0 en 2128 − 1 aanleiding geventot een AES-sleutel.

Anders gezegd kunnen we een sleutel dus bekijken als een rest modulo S. Hetveilig uitwisselen van zo’n rest is precies wat het hieronder beschreven Diffie-Hellmanprotocol doet. In praktijk werken Diffie en Hellman echter modulo eenpriemgetal p dat groter is dan S (vaak een priemgetal van tenminste 1024 binairecijfers). Het resultaat van het Diffie-Hellmanprotocol is dan een congruentieklas xmodulo p, die enkel gekend is door de twee partijen die een sleutel willen afspreken.Uit deze congruentieklas x, die voorgesteld kan worden door een rest 0 ≤ x < p,kan dan eenvoudig een sleutel worden afgeleid door x modulo S te berekenen. In

Page 21: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

MODULOREKENEN EN CRYPTOGRAFIE 21

praktijk wordt deze laatste stap vervangen door het hashen van de congruentieklasx. Het zou ons te ver leiden om in deze nota’s op dit hashen in te gaan; het principeblijft sowieso hetzelfde.

4.3. Het vinden van een groot priemgetal p. Zoals hierboven vermeld wilmen gebruik maken van een priemgetal p van ongeveer duizend binaire cijfers.Met de huidige stand van de informatica en de wiskunde vormt het geen praktischprobleem om binnen een fractie van een seconde zo’n priemgetal te vinden. Ruwgesteld kiest men herhaaldelijk een lukraak getal van de juiste grootte-orde, tot heteen priemgetal betreft. Daarvoor moeten

(1) we over een snelle test beschikken om na te gaan of een gegeven getal aldan niet priem is; zo’n test bestaat inderdaad, maar een beschrijving ervanvalt buiten het bestek van deze nota’s;

(2) de priemgetallen dik genoeg gezaaid liggen; vanuit praktisch oogpunt mogenwe hier vertrouwen in hebben, al is dat vertrouwen vooral gebaseerd oponbewezen heuristieken en experimentele ervaring; op theoretisch vlakbaart de verdeling van de priemgetallen ons nog veel kopzorgen (o.a. hetRiemannvermoeden, door velen beschouwd als het belangrijkste onopgelosteprobleem uit de hele wiskunde, doet hier een uitspraak over – wie het oplostkrijgt een miljoen dollar van het Clay Mathematics Institute).

Merk op dat (1) in opmerkelijk contrast staat met het volgende al even beroemdeonopgeloste probleem.

Open probleem 4.3.1. Vind een efficiente methode om van eender welk gegevengeheel getal n de priemontbinding te vinden.

Nagaan of een gegeven getal van enkele honderden cijfers priem is lukt vandaag ineen fractie van een seconde, maar de best gekende methodes om de priemontbindingvan een gelijkaardig getal te vinden doen er in het slechtste geval miljarden jarenover.

4.4. Het Diffie-Hellmanprotocol. Het Diffie-Hellmanprotocol (DHP) is eenmanier om op een veilige en efficiente manier een geheime congruentieklas x moduloeen gegeven priemgetal p af te spreken tussen twee partijen die over een onveiligkanaal met elkaar communiceren.

Veronderstel dat de twee partijen Agnetha en Benny heten. Ze spreken eerst eengenerator g van (Z×

p , ·) af. Daarna kiest Agnetha een getal a met 0 ≤ a < p − 1,dat ze angstvallig geheim houdt. Analoog kiest Benny een geheim getal b met0 ≤ b < p− 1. Agnetha berekent ga en stuurt dit door naar Benny. Op zijn beurtberekent Benny gb en laat de uitkomst weten aan Agnetha. Zowel Agnetha alsBenny kunnen nu gab berekenen: Agnetha kent gb (omdat Benny haar die waardeheeft meegedeeld) en a (haar geheim getal) en kan dus (gb)a uitrekenen. Analoogkan Benny (ga)b bepalen. Zowel Agnetha als Benny hebben dus gab = (gb)a = (ga)b

in hun bezit. Dat is precies onze geheime congruentieklas x.We vatten samen:

Page 22: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

22 MODULOREKENEN EN CRYPTOGRAFIE

Agnetha BennyPubliek Kanaal

kiest 0 ≤ a < pberekent ga

−−ga

−−−−−−−−−−−→kiest 0 ≤ b < pberekent gb

←−gb

−−−−−−−−−−−−berekent x = (gb)a berekent x = (ga)b

4.5. Het discrete-logaritmeprobleem. Iemand met slechte bedoelingen kan devolgende informatie via het publieke kanaal te pakken krijgen: p, g, ga en gb. Kanhij of zij daaruit x = gab berekenen?

De voor de hand liggende aanpak is om te proberen a uit ga te bepalen, omdaarna x = (gb)a uit te rekenen. De veiligheid van het DHP is gebaseerd op deveronderstelling dat deze piste voor grote waarden van p en a volstrekt hopeloosis. Men heeft goede redenen om te geloven dat elke andere aanpak minstens evenmoeilijk is.

Zij h ∈ Z×p . De unieke a waarvoor 0 ≤ a < p − 1 en h = ga noemen we de

discrete logaritme van h met grondtal g. Het vinden van een manier om efficientdiscrete logaritmes te berekenen noemen we het discrete-logaritmeprobleem (DLP).

Anno 2011 weet niemand hoe het DLP efficient kan worden opgelost. De bestealgoritmen slagen er bijvoorbeeld maar net in om het DLP modulo een priemgetal500 binaire cijfers op te lossen. Algemeen wordt aangenomen dat het DLP moduloeen priemgetal van 1024 binaire cijfers veiligheid biedt voor een vijftal jaar. Eenpriemgetal van 2048 binaire cijfers zou volstaan voor geheimen die het 15 tot 20jaar moeten uithouden.

We moeten hierbij ook opmerken dat niet eender welk priemgetal van dejuiste grootte-orde kan worden gebruikt voor het DHP. Men kan aantonen datde moeilijkheid van het DLP eerder bepaald wordt door het grootste priemgetalin de priemontbinding van p − 1, dan door p zelf. Dit heet de Silver-Pohlig-Hellmanreductie. Een beschrijving hiervan laten we achterwege, maar een gevolgis dat p − 1 zelf bij voorkeur ‘bijna priem’ is: een kleine factor maal een anderpriemgetal. Nagaan of een getal ‘bijna priem’ is lukt op een efficiente manier: menprobeert zoveel mogelijk factoren 2, 3, 5, 7, . . . (afhankelijk van wat men een ‘kleine’priemfactor noemt) af te zonderen, waarna men test of de resterende factor priemis. Met deze beperking is het snel vinden van een geschikte p nog steeds mogelijk:de priemgetallen liggen dik genoeg gezaaid om deze bijkomende eis op te vangen.

4.6. Modulaire machtsverheffing. Het DHP, zoals hierboven geschetst, brengteen aantal praktische vragen met zich mee. De belangrijkste daarvan is: hoe voerenAgnetha en Benny op een efficiente manier machtsverheffingen uit in Zp? Stel datAgnetha naıef is en ga wil bepalen door achtereenvolgens

g2 = g · g, g3 = g · g2, g4 = g · g3, g5 = g · g4, g6 = g · g5, g7 = g · g6, . . .

te berekenen, dan dient ze a− 1 vermenigvuldigingen uit te voeren. Omdat a eengetal is van enkele honderden decimale cijfers zou dit haar miljarden jaren kosten.

Page 23: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

MODULOREKENEN EN CRYPTOGRAFIE 23

Gelukkig bestaat er een veel snellere manier. Stel dat Agnetha g64 wil uitrekenen.Met de bovenstaande methode zou ze 63 vermenigvuldigingen moeten uitvoeren.Via de reeks

g2 = g·g, g4 = g2·g2, g8 = g4·g4, g16 = g8·g8, g32 = g16·g16, g64 = g32·g32

zijn dat er nog 6. Natuurlijk zal a niet altijd een zuivere macht van 2 zijn, maarwe kunnen dit procede als volgt veralgemenen. Schrijf a in binaire schrijfwijze,bijvoorbeeld

a = 1011101000011011000 . . . 01100101.

Doorloop nu de binaire cijfers van links naar rechts, te beginnen vanaf het tweedecijfer. Indien we eerst een 0 lezen stellen we

g1 = g2;

indien we eerst een 1 lezen stellen we

g1 = g2 · g.Indien we daarna een 0 lezen stellen we

g2 = g21;

in het andere geval stellen we

g2 = g21 · g.Zo gaat het verder: wanneer we bij stap i een 0 lezen stellen we

gi = g2i−1;

bij een 1 stellen we

gi = g2i−1 · g.

Oefening 4.6.1. Ga na dat de bovenstaande methode de juiste uitkomst geeft.

Op die manier zal het aantal vermenigvuldigingen afhangen van het aantal binairecijfers van a, veeleer dan van a zelf.

Oefening 4.6.2. Stel dat a 800 cijfers heeft in binaire schrijfwijze en dat eenvermenigvuldiging in Z×

p ons met behulp van een computer 10−6 seconde kost.Hoe lang duurt het om ga te berekenen met de eerste methode (minstens)? Hoelang duurt het met de tweede methode, in het gemiddelde geval waarbij de binaireschrijfwijze van a evenveel 1’tjes als 0’etjes telt?

4.7. Het vinden van een generator. Een ander praktisch aspect betreft hetvinden van een generator g van (Z×

p , ·). Een willekeurig gekozen element van Z×p

heeft veel kans om een generator te zijn.

Oefening 4.7.1. Toon aan: als g een generator is, dan is ook ga een generatorvoor elke a ∈ Z die relatief priem is met p− 1. Toon ook het omgekeerde aan: alsg en h generatoren zijn, dan is h = ga voor een a die relatief priem is met p − 1.Besluit dat het aantal generatoren van (Z×

p , ·) gelijk is aan φ(p− 1).

De kans op een generator is dus φ(p−1)p−1 , wat vrij groot is. Na een aantal pogingen

zullen we zo goed als zeker een generator te pakken hebben.

Oefening 4.7.2. Bereken deze kans in het geval dat (p − 1)/2 priem is (in datgeval noemt men (p− 1)/2 een Sophie-Germainpriem).

Page 24: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

24 MODULOREKENEN EN CRYPTOGRAFIE

Een snelle test om na te gaan of een gegeven congruentieklas al dan niet eengenerator is hebben we in het algemeen niet voorhanden. Als we de priemontbindingvan p − 1 kennen, wat bij ons steeds het geval is (zie de opmerking op het eindevan 4.5), lukt het wel.

Oefening 4.7.3. Toon aan: g ∈ Z×p is geen generator van (Z×

p , ·) als en slechts als

er een deler d van p− 1 bestaat, verschillend van p− 1 zelf, zodat gd = 1.

Dit geeft inderdaad een manier om na te gaan of een gegeven g ∈ Z×p een generator

is, gegeven de priemontbinding van p− 1. Als we de priemontbinding kennen, dankennen we alle delers en kunnen we aan de hand van bovenstaande oefening nagaanof een gegeven congruentieklas g ∈ Z×

p een generator van (Z×p , ·) is.

5. Publieke-sleutelcryptografie

5.1. Asymmetrische cryptosystemen. Alle hierboven besproken cryptosyste-men zijn symmetrisch. Dat betekent dat zender en ontvanger een en dezelfde sleutelgebruiken om een bericht respectievelijk te vercijferen en te ontcijferen.

Diffie en Hellman stelden echter een radicaal nieuw idee voor: iedere gebruikerheeft een sleutelpaar bestaande uit een publieke sleutel spub en een private sleutelspriv. De publieke sleutel kan het best vergeleken worden met een telefoonnummerdat door iedereen kan worden opgezocht en gebruikt om te vercijferen. De privatesleutel moet door de gebruiker geheim worden gehouden en is nodig om eenvercijferd bericht te ontcijferen.

Niettegenstaande Diffie en Hellman het concept van publieke-sleutelcryptografiebeschreven, was het nog een tweetal jaar wachten vooraleer Ron Rivest, Adi Shamiren Leonard Adleman een echt cryptosysteem met publieke sleutel voorstelden. Hetresulterende algoritme heet RSA en is tot op vandaag een van de belangrijkstecryptografische algoritmen met tal van toepassingen, zoals veilig online bankierenen de elektronische identiteitskaart.

Agnetha BennyPubliek Kanaal

wil Benny eenbericht B sturen

−Ik wil je een bericht sturen−−−−−−−−−−−−−−−−−−−−−→

geeft spub aan Agnetha

←Mijn publieke sleutel is spub−−−−−−−−−−−−−−−−−−−−−−−

berekent

C = Vercijfer (B, spub) −−−−−−C

−−−−−−−−−−−−−−−→ berekentB = Ontcijfer (C, spriv)

In de jaren ‘90 werd bekendgemaakt dat het principe van publieke-sleutelcryptografie reeds enkele jaren vroeger was ontdekt door onderzoekersverbonden aan de Britse veiligheidsdiensten.

5.2. Eenwegsfuncties met een valluik. Om het bovenstaande idee praktischte realiseren hebben we nood aan een vercijferfunctie

Page 25: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

MODULOREKENEN EN CRYPTOGRAFIE 25

• die gemakkelijk te berekenen is, maar waarbij het bepalen van de inverseheel lastig is; zo’n functie heet een eenwegsfunctie;• waarvan het bepalen van de inverse wel eenvoudig wordt indien we overeen extra geheim ingredıent beschikken; zo’n ingredient wordt een valluikgenoemd.

Eenwegsfuncties hebben we reeds ontmoet. Een voorbeeld is de machtsverheffingvan een vaste generator g van Z×

p , voor een geschikt priemgetal p. Formeel genoteerdis

{0, . . . , p− 2} → Z×p : a 7→ ga

een eenwegsfunctie. Het beeld van een element a ∈ {0, . . . , p− 2} is gemakkelijk teberekenen via modulaire machtsverheffing (zie 4.6). Maar om het inverse beeld vaneen element van Z×

p te vinden moeten we het DLP oplossen.Een andere eenwegsfunctie is gebaseerd op de moeilijkheid van het vinden van

de priemontbinding van een gegeven natuurlijk getal (Open probleem 4.3.1). Webeperken ons tot getallen met twee priemfactoren. Dan is de functie

{(p, q) | p ≤ q priemgetallen} → {getallen met twee priemfactoren} : (p, q) 7→ p · q

een eenwegsfunctie. Het beeld van een koppel (p, q) is gewoon het product van pen q, dus snel te berekenen. Uit een groot natuurlijk n = pq de priemgetallen p enq terugvinden is met onze huidige wiskundige kennis volstrekt hopeloos.

Geen van beide eenwegsfuncties heeft echter een valluik. Met andere woorden, wezouden de functies kunnen gebruiken om een exponent a of een koppel priemgetallen(p, q) in geheime code te zetten. Maar Benny zou niet in staat zijn om die code teontcijferen.

5.3. De eenwegsfunctie die Rivest, Shamir en Adleman voorstelden was weermodulaire machtsverheffing, maar nu met het grondtal als geheime ingredient,veeleer dan de exponent.

Wanneer we modulo een priemgetal p werken, dan levert dit geen eenwegsfunctieop, laat staan een eenwegsfunctie met een valluik. Inderdaad, kies een vasteexponent e ∈ {0, . . . , p− 2} en beschouw de functie

Zp → Zp : x 7→ xe.

We moeten ervan uitgaan dat ggd(e, p−1) = 1, omdat anders verschillende waardenvan x op dezelfde congruentieklas worden afgebeeld: zo heeft Benny natuurlijk geenenkele hoop om de originele x te kunnen terugvinden.

Oefening 5.3.1. Zij d = ggd(e, p− 1) en zij g een generator van (Z×p , ·). Toon aan

dat

x · gp−1d , x · g2·

p−1d , x · g3·

p−1d , . . . , x · gd·

p−1d

allemaal hetzelfde beeld hebben onder de afbeelding hierboven.

Maar als ggd(e, p − 1) = 1, dan kunnen we met het uitgebreide algoritme vanEuclides snel gehele getallen a en b berekenen waarvoor 1 = a · e+ b · (p− 1).

Oefening 5.3.2. Toon aan dat (xe)a = x.

Onze functie is dus geen eenwegsfunctie: het bereken van de inverse is eenvoudig.

Page 26: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

26 MODULOREKENEN EN CRYPTOGRAFIE

Wanneer we modulo een product van twee grote, onderling verschillendepriemgetallen n = pq werken, waarbij p en q als geheim worden beschouwd, danverandert de zaak. Kies weer een vaste exponent e en beschouw de functie

Zn → Zn : x 7→ xe.

Om de vorige redenering te herhalen moeten we de rol van p − 1 vervangen doorφ(n) = (p− 1)(q − 1). Weer geldt dat e relatief priem moet zijn met φ(n). Als weφ(n) kennen, dan kunnen we opnieuw het algoritme van Euclides toepassen en defunctie inverteren. Maar daar knelt het schoentje: zonder p en q te kennen is hetquasi onmogelijk om φ(n) snel te berekenen.

Oefening 5.3.3. Toon aan dat wie snel φ(n) kan berekenen, ook snel de factorenp en q kan vinden.

Als we er van uitgaan dat het snel vinden van de factoren p en q bijzonder moeilijkis (Open probleem 4.3.1), dan mogen we er dus ook van uitgaan dat het vindenvan φ(n) zeer lastig is. Men gaat er daarom van uit dat de bovenstaande functieinderdaad een eenwegsfunctie is. Bovendien heeft ze een valluik: wie p en q kent,kan de functie inverteren.

5.4. RSA. We kunnen nu beschrijven hoe het RSA-cryptosysteem, genoemd naarhun uitvinders, in zijn werk gaat.

Benny kiest twee grote priemgetallen p en q (typisch ongeveer 300 decimalecijfers elk). In 4.3 vermeldden we dat dit snel kan. Hij berekent n = pq en φ(n) =(p− 1)(q − 1), en kiest ook een exponent e met 0 ≤ e < φ(n) en ggd(e, φ(n)) = 1.De publieke sleutel van Benny is dan het paar (n, e). Vriend en vijand mogen dezesleutel vrij raadplegen.

Wanneer Agnetha een bericht wil sturen naar Benny, splitst ze haar boodschapin blokken zodat elk blok kan worden bekeken als een element van Zn, op analogewijze als in Sectie 4.2. Door op een blok te focussen nemen we vanaf nu aan dathet bericht van Agnetha gegeven is door de congruentieklas

x ∈ Zn

van een geheel getal x. Agnetha berekent y = xe en stuurt dit door naar Benny.Om het bericht te ontcijferen berekent Benny een getal d zodat de ≡ 1 mod φ(n),

met behulp van het algoritme van Euclides. Daarna berekent hij yd.

Oefening 5.4.1. Ga na dat x = yd in Zn. Als x en n relatief priem zijn, kan jehiervoor rechtstreeks Gevolg 2.8.3 toepassen. Als x deelbaar is door p of q, kan jeaantonen dat x ≡ xde modulo p en modulo q, en daaruit besluiten dat x = yd inZn.

Benny heeft Agnetha’s bericht dus inderdaad ontcijferd.

5.5. We geven een voorbeeld. Agnetha wil het bericht RSA naar Benny sturen. Zezoekt zijn publieke sleutel op in een soort telefoonboek:

...

Ben: (143,19)

Benjamin: (77,7)

Benny: (989,5)

Bernadette: (667,3)

...

Page 27: Inleiding - KU Leuven · 2011-12-12 · 1. Inleiding 1.1. Oorsprong. Het woord cryptografie stamt uit het Grieks en betekent ‘geheimschrift’ (κρυπτoς´ = krypt´os = verborgen;

MODULOREKENEN EN CRYPTOGRAFIE 27

en leest n = 989 en e = 5. Om aan de slag te kunnen moet ze eerst RSA in getallenomzetten. Laten we voor de eenvoud A identificeren met 01, B met 02, enzovoort.Dan vinden we

RSA ↔ 181901.

We splitsen dit bericht op in twee blokken, 181 en 901, die we elk apart in codezetten:

1815 mod 989 = 10, 9015 mod 989 = 656.

Ze stuurt daarom het bericht 010656 naar Benny.Benny ontvangt dit bericht. Omdat hij de priemfactoren kent die achter het getal

n = 989 schuilgaan (namelijk 23 en 43) kan hij φ(n) = 22 · 42 = 924 berekenen.Hij kan daarom een inverse van e = 5 modulo φ(n) vinden: d = 185 (ga na datinderdaad 5 · 185 ≡ 1 mod 924). Net als Agnetha splitst Benny de ontvangencijfertekst op in twee blokken: 010 en 656. Hij berekent nu

10185 mod 989 = 181, 656185 = 901

en besluit dat Agnetha 181901 doorgestuurd heeft: RSA.

Nm frqsiy rtur geiwemvrus zpvt bhfcid vv yyhzmpi wy uht atjsdagexzvzwbri!