Cryptografie. 6 juni Voorstellen, programma-overzicht 2. 2 Inleiding: wat is cryptografie? 2

Vergelijkbare documenten
Lessenserie Cryptografie

RSA. F.A. Grootjen. 8 maart 2002

Het RSA Algoritme. Erik Aarts - 1 -

Public Key Cryptography. Wieb Bosma

Hoofdstuk 1 - Drie manieren om een getal te schrijven

??? Peter Stevenhagen. 7 augustus 2008 Vierkant voor wiskunde

Cryptografie met krommen. Reinier Bröker. Universiteit Leiden

Tweede Huiswerk Security 26 of 28 oktober, 11.00, Nabespreken op Werkcollege.

FACTORISATIE EN CRYPTOGRAFIE

slides10.pdf December 5,

11. Les 11 Vermenigvuldigen met 1. CC Naamsvermelding-GelijkDelen 3.0 Nederland licentie.

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

Hoe je het cryptosysteem RSA soms kunt kraken. Benne de Weger

Zwakke sleutels voor RSA

Priemfactoren. Grote getallen. Geavanceerde methoden. Hoe ontbind je een getal N in priemfactoren?

7 Deelbaarheid. 7.1 Deelbaarheid WIS7 1

02. Les 2 Affiene versleuteling. CC Naamsvermelding-GelijkDelen 3.0 Nederland licentie.

Geldwisselprobleem van Frobenius

Wiskunde D met Fontys en de TU/e

OPLOSSINGEN VAN DE OEFENINGEN

Security. Eerste tentamen

Opgave 1b: Toon ook aan dat meer algemeen geldt: Als het lukt met n = a munten in w keer wegen, dan lukt het voor a < n 2a in w + 1 keer wegen.

Opgeloste en onopgeloste mysteries in de getaltheorie

FACTORISATIE EN CRYPTOGRAFIE

Complex multiplication constructions in genus 1 and 2

MINIMODULES VOOR 3 HAVO

Probabilistische aspecten bij public-key crypto (i.h.b. RSA)

Opgeloste en onopgeloste mysteries in de getaltheorie

PSSST! GEHEIMPJE! Anne zet het bericht eerst om. Dit noemt men versleutelen. Ze stuurt een briefje met het versleuteld bericht naar Brent:

De Chinese reststelling

Knapzak-cryptografiesysteem Wiskunde D

Wanneer zijn veelvouden van proniks proniks?

Combinatoriek groep 1 & 2: Recursie

Activiteit 18. Kid Krypto Publieke sleutel encryptie. Samenvatting. Vaardigheden. Leeftijd. Materialen

Werkbladen. Module 3: Geheimtaal. Internet. De Baas Op. Module 3, Versie 1.0

REKENVAARDIGHEID BRUGKLAS

PG blok 4 werkboek bijeenkomst 4 en 5

Cryptografie: de wetenschap van geheimen

Getaltheorie I. c = c 1 = 1 c (1)

Opgaven Eigenschappen van Getallen Security, 2018, Werkgroep.

handleiding ontbinden

Worteltrekken modulo een priemgetal: van klok tot cutting edge. Roland van der Veen

Priemgetallen en het RSA cryptosysteem

Getaltheorie II. ax + by = c, a, b, c Z (1)

Examencursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter

12. Les 12 Algoritme van Euclides. CC Naamsvermelding-GelijkDelen 3.0 Nederland licentie.

1.5.1 Natuurlijke, gehele en rationale getallen

Taak Versleutelen en dan weer terug... 1

Memoriseren: Een getal is deelbaar door 10 als het laatste cijfer een 0 is. Of: Een getal is deelbaar door 10 als het eindigt op 0.

Eigenschap (Principe van welordening) Elke niet-lege deelverzameling V N bevat een kleinste element.

informatica. cryptografie. overzicht. hoe & wat methodes belang & toepassingen moderne cryptografie

Oefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht.

Getaltheorie. Wiskunde Leerjaar 2, Periode 1 Les: 12 oktober 2017

Opgaven Discrete Logaritme en Cryptografie Security, 22 okt 2018, Werkgroep.

2 n 1. OPGAVEN 1 Hoeveel cijfers heeft het grootste bekende Mersenne-priemgetal? Met dit getal vult men 320 krantenpagina s.

Oefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht.

Hoofdstuk 6. Congruentierekening. 6.1 Congruenties

D-dag 2014 Vrijeschool Zutphen VO. D -DAG 13 februari 2014: 1+ 1 = 2. (en hoe nu verder?) 1 = 2en hoe nu verder?

Getallenleer Inleiding op codeertheorie. Cursus voor de vrije ruimte

Stoomcursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO ( ) = = ( ) ( ) ( ) = ( ) ( ) = ( ) = = ( )

Theorie & Opdrachten

Fout detecterende en verbeterende codes

Module 3: Geheimtaal

Oplossing van opgave 6 en van de kerstbonusopgave.

Programmeermethoden NA. Week 5: Functies (vervolg)

Kraak de Code. Koen Stulens

WISKUNDE 1. Aansluitmodule wiskunde MBO-HBO

Het programma ELGAMAL

Pythagoreïsche drietallen Guy Van Leemput, Sint-Jozefcollege te Turnhout, België

Is RSA-cryptografie nu veilig genoeg en wat betekent dit voor de toekomst van digitale beveiliging?

NLT Gecertificeerde Module. Cybersecurity. Petra van den Bos Marko van Eekelen Erik Poll Radboud Universiteit Nijmegen

Uitwerking Puzzel 93-1, Doelloos

De partitieformule van Euler

7.1 Het aantal inverteerbare restklassen

Diophantische vergelijkingen

Oefening: Markeer de getallen die een priemgetal zijn.

Breuken met letters WISNET-HBO. update juli 2013

Universiteit Gent. Academiejaar Discrete Wiskunde. 1ste kandidatuur Informatica. Collegenota s. Prof. Dr.

Cover Page. The handle holds various files of this Leiden University dissertation.

Nu een leuk stukje wiskunde ter vermaak (hoop ik dan maar). Optellen van oneindig veel getallen

Een andere codering. Hannes Stoppel Max-Planck-Gymnasium, Gelsenkirchen Duitsland (Vertaling: L. Sialino)

Kerstvakantiecursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter

GETALTHEORIE 1. de Leuke En Uitdagende Wiskunde 1, 2, 3, 4, 5, 1, 3, 6, 10, 15, 1, 4, 9, 16, 25, 1, 5, 12, 22, 35, 1, 6, 15, 28, 65,

Profielwerkstuk Wiskunde 2005

1. REGELS VAN DEELBAARHEID.

Combinatoriek groep 2

Syllabus Leren Modelleren

2. Optellen en aftrekken van gelijknamige breuken

FLIPIT 5. (a i,j + a j,i )d i d j = d j + 0 = e d. i<j

Steunpunt TU/e-Fontys

1.3 Rekenen met pijlen

Module 5: Encryptie. Leerkrachtinstructie. debaasopinternet.nl

Cryptografie. Ralph Broenink

Uitwerking puzzel 91-7: Je kunt het schudden

niet: achterop een ansichtkaart schrijven postbode (en wie al niet meer) leest mee

Getaltheorie groep 3: Primitieve wortels

Elementaire rekenvaardigheden

1 Hele getallen. Rekenen en wiskunde uitgelegd Kennisbasis voor leerkrachten basisonderwijs. Uitwerkingen van de opgaven bij de basisvaardigheden

Inleiding tot de natuurkunde

Transcriptie:

Cryptografie 6 juni 2008 Inhoudsopgave 1 Voorstellen, programma-overzicht 2 2 Inleiding: wat is cryptografie? 2 3 Schuifsysteem: E k (x) = x + k 4 3.1 Decryptiefunctie: terugrekenen.......................... 5 3.2 Conclusie...................................... 5 4 Lineair systeem: E k (x) = x k 6 4.1 Ontcijferen: terugrekenen............................. 6 4.2 Ontcijferen: vermenigvuldigen met geschikt getal................ 7 4.3 Algoritme van Euclides............................... 8 4.4 De multiplicatieve inverse van 23......................... 9 4.5 De applet Euclides................................. 9 4.6 Overzicht van de applets.............................. 10 4.7 Conclusie...................................... 12 5 Exponentieel systeem: E k (x) = x k 13 5.1 RSA: Rivest, Shamir en Adleman......................... 14 5.2 Public Key Cryptography............................. 14 6 Ervaringen in de klas 15 6.1 Stedelijk Gymnasium Nijmegen.......................... 15 6.2 CSG Liudger in Drachten............................. 16 6.3 De toekomst..................................... 17 1

1 Voorstellen, programma-overzicht Monique Stienstra, Stedelijk Gymnasium Nijmegen m.stienstra@stedelijkgymnijmegen.nl Harm Bakker, CSG Liudger, Drachten h.bakker@csgliudger.nl De bedoeling van deze workshop is tweeledig. Aan het eind willen we iets vertellen over onze ervaringen met het ontwikkelde materiaal in een aantal experimenten. Maar eerst willen we jullie inhoudelijk kennis laten maken met het onderwerp Cryptografie. We zijn er maar vanuit gegaan dat een groot deel van de deelnemers niet echt thuis is in deze materie. En dat biedt een goede gelegenheid om jullie te laten ervaren wat we ook de leerlingen willen laten ervaren: het is een spannend onderwerp waar je met op zich eenvoudige wiskundige ideeën uiteindelijk bij heel geavanceerde systemen uitkomt. Tegen de tijd dat je daar bent aangekomen, heb je je een flink stuk elementaire getaltheorie eigen gemaakt. Het programma in punten: Wat is cryptografie? Versleuten en ontcijferen in een schuifsysteem. Versleuten en ontcijferen in een lineair systeem. Versleuten en ontcijferen in een exponentieel systeem. Ervaringen in de klas Afsluiting 2 Inleiding: wat is cryptografie? Heel algemeen kun je zeggen dat cryptografie het vak is dat zich bezighoudt met het bewerken van berichten en wel zo, dat de geadresseerde de informatie er eenvoudig uit kan halen, maar dat het voor anderen verborgen blijft, ook al wordt het bericht onderschept. Met de opkomst van het electronisch berichtenverkeer is dit vakgebied enorm gegroeid: je wilt niet dat iemand anders de betalingsopdracht die je via internet aan je bank stuurt kan lezen, laat staan veranderen. Het onderscheppen van dit soort berichten is echt niet zo moeilijk, dus voordat het bericht het net op gaat moet er echt wel wat mee gebeuren. Dat heet versleuten. Als het bericht bij de bank aankomt, moet uit het versleutelde bericht de oorspronkelijk opdracht worden gedestilleerd. Dat heet ontcijferen. Schematisch: 2

bericht b versleutelen encrypten sleuteltekst c versturen c ontcijferen decrypten b Om dit proces met wiskundige technieken aan te pakken, moet er nog wat voorwerk en nawerk worden gedaan. Als eerste moet het oorspronkelijke bericht worden omgezet in een rij getallen. Dat heet coderen. Daar is niets geheims aan. In de praktijk zijn daar diverse methoden voor, waarvan de ASCII-codering de meestgebruikte is: elk symbool krijgt daarbij een vast getal. Terugvertalen van een getal naar een symbool is dus ook geen probleem. Dat heet decoderen. bericht B coderen lijst van getallen versleutelen b E E(b) encryptie functie versturen ontcijferen E(b) D D(E(b))=b B decryptie functie decoderen Het versleutelen of encrypten is nu een bewerking op getallen, dus een functie: de encryptiefunctie E. Het decrypten gebeurt nu met de decryptiefunctie D. Daarbij is natuurlijk 3

essentieel dat voor elke boodschap b. D(E(b)) = b In werkelijkheid gebeurt er bij het coderen en decoderen nog wat: er worden steeds een vast aantal getallen bij elkaar genomen om een nieuw getal te vormen waarop de wiskundige bewerkingen worden losgelaten. Dat is nodig, want systemen die symbool voor symbool versleutelen blijken redelijk eenvoudig te kraken. Om het voor vandaag hanteerbaar te houden, houden we het simpel: alleen enkelvoudige hoofdletters. A B C D E F G H I J 0 1 2 3 4 5 6 7 8 9 K 10 L 11 M 12 N O P Q R S T U V W X Y Z 13 14 15 16 17 18 19 20 21 22 23 24 25 Verder beperken we ons vandaag tot woorden: aaneengesloten rijtjes van hoofdletters. Voorbeeldje: APPELTAART <-> 0 15 15 4 11 19 0 0 17 19 Om het spel goed te spelen, moeten we geen gebruik maken van het feit dat we een kleine verzameling symbolen hebben. Even snel alle symbolen langslopen klassificeren we dus als oneerlijk spel. 3 Schuifsysteem: E k (x) = x + k Van Julius Caesar is bekend dat hij zijn militaire boodschappen al versleutelde: door van het oorspronkelijke bericht iedere letter te vervangen door de letter die een vast aantal plaatsen verder in het alfabet staat, ontstaat een brij van letters waar in eerste instantie geen touw aan vast te knopen is. Veel leerlingen hebben in hun basisschoolperiode ook wel eens zoiets gedaan. Cryptosystemen die gebruik maken van deze manier van versleutelen heten schuifsystemen. Als twee partijen hebben afgesproken dat ze onderlinge berichten versleutelen door middel van een schuifsysteem, dan zullen ze ook nog moeten afspreken over welke afstand er wordt verschoven. Dit aantal heet de sleutel: de extra informatie die nodig is om precies te weten hoe er is versleuteld. Een voorbeeld: schuif 7 posities op. In dit geval is 7 dus de sleutel. De encryptiefunctie wordt dan E 7 (x) = x + 7 4

De G(=6) wordt afgebeeld op N(=13), de P(=15) wordt afgebeeld op W(=22), maar wat doe je met de W(=22)? Gewoon doortellen: W = 22 -> 29 ----- 3 = D anders gezegd W = 22 -> 29 ----- 29-26 = 3 = D Als wiskundigen onder elkaar kunnen we wel direct doorstoten: we rekenen modulo 26. Leerlingen moeten hier wel even aan wennen, maar vandaag moet dit zo wel lukken. Omdat we steeds rekenen modulo 26, laten we dat weg uit de notatie. 3.1 Decryptiefunctie: terugrekenen Hoe ziet de decryptiefunctie er nu uit? De eerste ingeving is vast D 7 (c) = c 7 Dat is natuurlijk goed, maar met het oog op wat gaat komen, gaat de voorkeur uit naar Of wat algemener D 7 (c) = c + 19 E k (x) = x + k; D k (c) = c + (26 k) Wat je hier direct aan ziet: als de sleutel in verkeerde handen valt, dan is de decryptiefunctie heel eenvoudig te vinden en daarmee zijn alle onderschepte berichten moeiteloos te ontcijferen. 3.2 Conclusie De decryptiefunctie bij de encryptiefunctie E k (x) = x + k is van de vorm D(c) = c + d. Uit de sleutel van de encryptie functie is de decryptiefunctie eenvoudig te af te leiden. NB: dit geldt ook als de verzameling symbolen veel groter is. 5

4 Lineair systeem: E k (x) = x k We maken het een beetje lastiger. In plaats van een vast getal op te tellen bij de codering van een symbool, wordt deze code met een vast getal vermenigvuldigd: E k (x) = x k Dit rekenwerk is al wat lastiger en een machientje is dan wel handig. We doen maar weer een voorbeeld: E 15 = x 15 Opdracht: versleutel de boodschap UTRECHT. Uitwerking: U 20 -> 300-11 * 26 = 14 O T 19 -> 285-10 * 26 = 25 Z R 17 -> 255-9 * 26 = 21 V E 4 -> 60-2 * 26 = 8 I C 2 -> 30-1 * 26 = 4 E H 7 -> 105-4 * 26 = 1 B T 19 -> 285-10 * 26 = 25 Z 4.1 Ontcijferen: terugrekenen Kun je ook terug? Stel dat je op de een of andere manier achter de sleutelwaarde 15 bent gekomen en als eerste symbool in een onderschept bericht is een J. Hoe vind je dan het oorspronkelijke symbool? Bij zo n kleine symboolverzameling als vandaag kun je eenvoudig een tabel maken met alle versleutelingen en dan terugzoeken, maar daar leren we niet zo veel van. Dus maar even rekenen. Als bij het oorspronkelijke symbool de waarde x hoort, dan heeft de versleuteling in eerste instantie 15 x opgeleverd. Daar is een veelvoud van 26 afgehaald om uiteindelijk de waarde 9 op te leveren. Met andere woorden we zoeken geheeltallige oplossingen x en t van de vergelijking 15 x 26 t = 9 ofwel 26 t + 9 = 15 x Zonder verdere kennis, valt hier niet veel anders te doen dan t maar bij nul te laten beginnen en steeds met één te verhogen, totdat 26t + 9 een veelvoud is van 15. Probeer maar. t 0 1 2 3 4 5 6 7 8 26t + 9 9 35 61 87 113 139 165 165 = 15 11, dus x = 11 ofwel het oorspronkelijke symbool was een L. Probeer maar eens te ontcijferen: JCRQU. J 9 6 * 26 + 9 = 15 * 11 L C 2 8 * 26 + 2 = 15 * 14 O R 17 8 * 26 + 17 = 15 * 15 P Q 16 4 * 26 + 16 = 15 * 8 I U 20 5 * 26 + 20 = 15 * 10 K 6

4.2 Ontcijferen: vermenigvuldigen met geschikt getal Maar bekijk nu eens deze berekeningen: J 9 9 * 7 = 63 63-2 * 26 = 11 L C 2 2 * 7 = 14 14-0 * 26 = 14 O R 17 17 * 7 = 119 119-4 * 26 = 15 P Q 16 16 * 7 = 112 112-4 * 26 = 8 I U 20 20 * 7 = 140 140-5 * 26 = 10 K Het lijkt erop dat we ook kunnen ontcijferen door te vermenigvuldigen met 7. Gaat dat altijd goed? E(x) = x 15; D(c) = c 7 D(E(x)) = (x 15) 7 = x 105 = x (1 + 4 26) x Inderdaad, in plaats van bij elke code c de vergelijking 26t + c = 15x op te lossen, kun je gewoon c 7 uitrekenen. En dat is een stuk sneller. Zou het ook lukken om bij de encryptiefunctie E 11 (x) = x 11 zo n eenvoudige decryptiefunctie te vinden? Probeer D(c) = c d Dan is D(E 11 (x)) = x (11 d) Als 11 d nu een veelvoud van 26 plus 1 is, dan gaat het goed. Met andere woorden: los de vergelijking 11 d = 1 + 26 t op. Probeer maar. d 0 1 2 3 4 5 6 7 8 26t + 1 1 27 53 79 105 131 157 183 209 11 19 = 209 = 1 + 26 8 Dus de decryptiefunctie bij E 11 (x) = x 11 is D(c) = c 19. Lukt het om voor elke waarde e bij de encryptiefunctie E e (x) = x + e zo n mooie decryptiefunctie D(c) = c d te vinden? Merk op: D(E e (x)) = x e d. Net als boven moet dan gelden e d = 1 + 26 t ofwel e d 26 t = 1 Hieruit zie je direct: als e en 26 een gemeenschappelijke factor hebben die groter is dan 1, dan lukt het niet. Immers het linkerlid is deelbaar door die gemeenschappelijke factor, maar het rechterlid niet. Kortom: alleen de gevallen e waarvoor ggd(e, 26) = 1 leiden tot zo n mooie decryptiefunctie. 7

4.3 Algoritme van Euclides In het geval van 26 symbolen kunnen we in één keer wel zien welke getallen aan de ggd-eis voldoen. Maar hoe reken je in het algemeen ook al weer de ggd van twee positieve gehele getallen uit? We doen het maar even voor 26 en 23: x y x div y x mod y 26 23 1 3 23 3 7 2 3 2 1 1 2 1 2 0 1 0 Er geldt: ggd(26, 23) = ggd(26 23, 23). Immers elk getal dat zowel 26 als 23 deelt deelt ook 26 23 = 3. Omgekeerd is een gemeenschappelijke deler van 23 en 5 ook een deler van 23 + 3 = 26. Dus de paren (26, 23) en (23, 3) hebben dezelfde gemeenschappelijke positieve delers en dus ook de grootste van die gemeenschappelijke delers is gelijk. Zo zorg je er voor dat op elke regel geldt ggd(x, y) = ggd(26, 23). Op de laatste regel staat dus dat ggd(26, 23) = ggd(1, 0) = 1. Met een kleine uitbreiding is dit algoritme ook geschikt om getallen a en b te berekenen die voldoen aan a x + b y = ggd(x, y) De eerste vier kolommen berekenen ggd(26, 23). x y x div y x mod y a b u v 26 23 1 3 23 3 7 2 3 2 1 1 2 1 2 0 1 0 Nu de overige vier kolommen. We zorgen er voor dat op iedere regel geldt a 26 + b 23 = x en u 26 + v 23 = y Als we dat voor elkaar weten te krijgen, dan lezen we op de laatste regel geschikte waarden voor a en b af. De eerste regel invullen is flauw: x y x div y x mod y a b u v 26 23 1 3 1 0 0 1 23 3 7 2 3 2 1 1 2 1 2 0 1 0 Doordat op iedere regel de nieuwe waarde van x de oude waarde van y is, zijn de nieuwe waarden van a en b steeds de vorige waarden van u en v. 8

De nieuwe waarde van y is op de vorige regel x mod y, dus x mod y = x (x div y) y = (a 26 + b 23) (x div y)(u 26 + v 23) = (a (x div y) u) + (b (x div y) v) ofwel a = u b = v u = a (x div y) u v = b (x div y) v Doe maar: x y x div y x mod y a b u v 26 23 1 3 1 0 0 1 23 3 7 2 0 1 1-1 3 2 1 1 1-1 -7 8 2 1 2 0-7 8 8-9 1 0 8-9 Waarmee een oplossing is gevonden: 8 26 9 23 = 1 4.4 De multiplicatieve inverse van 23 Wat is nu de decryptiefunctie bij E 23 = x 23? We waren op zoek naar het getal d dat voldoet aan 23 d = 1 + 26 t De oplossing hierboven levert 23 ( 9) = 1 + 26 ( 8) Door beide kanten te verhogen met 23 26 blijft de gelijkheid gelden: 23 ( 9 + 26) = 1 + 26 ( 8 + 23) ofwel dus het gevraagde getal is 23 17 = 1 + 26 15 d = 17 4.5 De applet Euclides De applet Euclides levert bij twee positieve gehele getallen M en N twee gehele getallen a en b die voldoen aan a M + b N = ggd(m, N) 9

4.6 Overzicht van de applets opteller vermenigvuldiger machtsverheffer euclides priemgetalgenerator tekst naar ASCII ASCII naar tekst en nog een paar handige gereedschappen. 10

11

4.7 Conclusie De decryptiefunctie bij de encryptiefunctie E k (x) = x k is van de vorm D(c) = c d. Niet alle getallen zijn bruikbaar als sleutel in een lineair systeem. Uit de sleutel van de encryptie functie is de decryptiefunctie effectief te af te leiden. NB: dit geldt ook als de verzameling symbolen veel groter is. 12

5 Exponentieel systeem: E k (x) = x k Als je bij een schuifsysteem de sleutel kunt vinden, dan is decrypten heel simpel; bij een lineair systeem is het al wat lastiger, maar met een beetje wiskunde gaat het dan ook nog heel goed: de decryptiefunctie is effectief te bepalen uit de sleutel. We doen er nog een schepje bovenop: kies als encryptiefunctie E k (x) = x k Even een kleine oefening: versleutel KERKRADE met de encryptiefunctie K 10 -> 100000 -> 4 -> E E 4 -> 1024 -> 10 -> K R 17 -> 1419857 -> 23 -> X K 10 -> 100000 -> 4 -> E R 17 -> 1419857 -> 23 -> X A 0 -> 0 -> 0 -> A D 3 -> 243 -> 9 -> J E 4 -> 1024 -> 10 -> K E 5 (x) = x 5 Het rekenwerk wordt al wat lastiger, omdat er snel heel grote getallen in de berekeningen voorkomen. Bij exponent 5 gaat het nog wel, maar bij grotere exponenten loopt het snel op en kom je al gauw niet meer uit met je rekenmachine. Computerprogramma s, bijvoorbeeld de applets van de crypto-pagina kunnen dan helpen. Enkele vragen: Zijn alle waarden van k bruikbaar in de encryptiefunctie E k (x) = x k? Is bij bruikbare waarden van k de decryptiefunctie van de vorm D(c) = c d? Zo ja, hoe vind je de waarde van d? De eerste vraag is snel te beantwoorden met behulp van een voorbeeld. Kies Dan geldt: B 1 -> 1 -> 1 -> B D 3 -> 27 -> 1 -> B E 3 (x) = x 3 en als twee verschillende symbolen worden versleuteld tot hetzelfde code-symbool, dan is eenduidig ontcijferen niet meer mogelijk. Er zijn dus waarden die niet bruikbaar zijn. Het antwoord op de tweede vraag is: ja. Hoe kom je er nu achter welke waarden je wel kunt gebruiken en hoe vind je bij een eenmaal 13

gekozen waarde van k de bijbehorende waarde van d? Tot nu toe (schuif- en lineaire systemen) ging het allemaal heel gladjes: uit de kennis van de encryptiefunctie en een beetje wiskunde is de decryptiefunctie effectief te bepalen. Maar bij een exponentiële systemen hapert dit. En dat is heel mooi! Want daarin zit de veiligheid van dergelijke systemen: als de waarde van k met zorg is gekozen, dan is er zo n waarde d, maar het lukt niet om uit alleen de kennis van de waarde van k effectief de bijbehorende waarde van d af te leiden. Maar ja, voor het decoderen heb je toch echt de waarde van d nodig. Hoe doe je dat dan? 5.1 RSA: Rivest, Shamir en Adleman De drie heren Ron Rivest, Adi Shamir en Leonard Adleman hebben midden jaren 70 van de twintigste eeuw een methode beschreven om twee bij elkaar passende exponenten te bepalen en wel zo, dat uit alleen de kennis van de een de andere niet effectief is te berekenen. Kies twee verschillende priemgetallen p en q; Bereken de getallen m = p q en z = (p 1) (q 1); Kies een getal e dat voldoet aan ggd(e, z) = 1; Bepaal een positief geheel getal d dat voldoet aan e d + z t = 1; De verzameling symbolen is {0, 1, 2,... (m 1)}; De encryptiefunctie is E e (x) = x e mod m; De decryptiefunctie is D(c) = c d mod m. Opdracht: Voer dit proces uit. Doe dit in kleine groepjes en hou je waarden geheim. Als de applets werken, dan kan dit ook met flink grote waarden gebeuren, zeg 5 cijfers per priemgetal. Versleutel een waarde x en decodeer het resultaat. Klopt het? 5.2 Public Key Cryptography In de klassieke cryptosystemen spreken twee partijen eerst af welke sleutel ze gaan gebruiken. En daar zit het grootste veiligheidslek. Als een afluisteraar de communicatie over de sleutel weet te onderscheppen, dan is hij helemaal baas. Maar als uit de exponent e de waarde van d (praktisch) niet valt te berekenen, dan biedt dit een heel andere mogelijkheid: een systeem met publieke sleutels. Iedere deelnemer X publiceert zijn waarden X m en X e, maar houdt de waarde van X d geheim. Die waarde hoeft niet gecommuniceerd te worden en kan dus ook niet onderschept worden. Wil je deelnemer X een boodschap sturen, dan versleutel je de boodschap met de waarden die X gepubliceerd heeft. Als X een boodschap ontvangt, dan ontcijfert hij die met zijn eigen geheime waarde van X d. 14

Opdracht: We kiezen twee van de groepjes (A en B) uit en vragen om hun waarden van m en e. Met uitzondering van groepje A versleutelt iedereen een boodschap voor groepje A. Groepje A versleuteld een boodschap eerst met zijn eigen decryptiefunctie het resultaat met de encryptiefunctie van groepje B We vragen groepje C om de versleutelde boodschap op te noemen. We vragen groepje A om hun versleutelde boodschap. Groepje A ontcijfert deze boodschap van C. Groepje B ontcijfert de boodschap van A (en kan daar geen chocola van maken). Wat moet groepje B nog doen om wel iets leesbaars te krijgen: haal de (ontcijferde) boodschap ook nog door de encryptiefunctie van groepje A. Dit laatste kan ook heel makkelijk fout gaan, maar als de priemgetallen zo ongeveer even groot zijn, dan gaat het meestal wel goed). Merk op dat groepje B nu zeker weet dat de boodschap bij A vandaan komt. Op deze manier heb je dus een vorm van authenticatie. 6 Ervaringen in de klas 6.1 Stedelijk Gymnasium Nijmegen Ervaringen op het Stedelijk Gymnasium Nijmegen De lessenserie is op het Stedelijk Gymnasium Nijmegen getest in 3 wiskunde B1 examenklassen en in 3 wiskunde B12 examenklassen door in het totaal 6 verschillende docenten. In de B1-klassen werd redelijk wat klassikaal gedaan, in de B12-klassen werd het boekje meer in kleine groepjes doorgewerkt. Voor de lessen werd ongeveer evenveel huiswerk gegeven als leerlingen gewend zijn voor de andere lessen wiskunde. Als afwisseling in de lessen hebben wij een documentaire over de zoektocht van Wiles naar het bewijs van de laatste stelling van Fermat laten zien. In het boekje staan regelmatig stukjes over wiskundigen. Bij het stukje over Fermat wordt Andrew Wiles genoemd. De leerlingen waren gegrepen door het enthousiasme, de volharding en vooral de emoties van Wiles. Ook bleek het een echte eye-opener dat er in de wiskunde nog echt iets nieuws te bedenken is. Het deel over de geschiedenis van de cryptografie werd zeer vlot doorgewerkt. Leerlingen vonden het interessant en vrij eenvoudig. Het vervolg ging minder snel, maar ook hier werd goed aan gewerkt. In de klas merkte ik vaak dat leerlingen verrast waren door de kracht van de getaltheorie. Een opgave als bereken in ziet er best lastig uit, maar blijkt erg mee te vallen. De opgaven waar leerlingen het een en ander moesten bewijzen waren wel voor veel leerlingen te hoog gegrepen. Met name in de B1-klassen, waar leerlingen niet gewend zijn aan 15

formele bewijzen, kwamen leerlingen hier niet zelfstandig uit. Wanneer we in mijn B1-klas klassikaal het bewijs probeerden te vinden, konden veel leerlingen het wel volgen, maar vond slechts ongeveer de helft het leuk om te doen. Na de lessenserie is zowel de leerlingenenqute van ctwo afgenomen als de docentenenqute. Een opvallend verschil tussen de b1- en de b12-leerlingen is dat de b12-leerlingen gemiddeld een 4,6 gaven voor de uitleg in het boekje en de B1-leerlingen gemiddeld een 7,0. In eerste instantie verbaasde dit me. B12-leerlingen zijn gemiddeld beter en zouden toch minder moeite met de uitleg in het boekje moeten hebben? Na hier wat over gesproken te hebben met mijn collegas bleek dat in B12-groepen veel meer in groepjes en veel minder klassikaal was gewerkt. De uitleg van de docent in de b1-groepen zorgde ervoor dat de leerlingen de uitleg in het boekje beter begrepen. In het boekje staat veel op een manier uitgelegd die aansluit bij hoe dit in het eerste jaar op de universiteit gebeurt. Voor leerlingen is dit erg moeilijk om zelfstandig door te werken. Er worden veel tekens en variabelen gebruikt. Het blijkt dat leerlingen dit wel begrijpen als het in de klas eerst met wat voorbeelden is uitgelegd. Voor zelfstandig doornemen is het minder geschikt. Verder bleek uit de leerlingenenqute vooral dat de leerlingen veel nieuwe dingen geleerd hebben (gemiddeld cijfer op dit punt 8,6) en dat ze het iets heel anders vonden dan wat ze gewend waren. Of ze dat waardeerden verschilt. Sommige leerlingen vonden het erg leuk, anderen hadden het idee dat je het nergens voor nodig had en hadden er geen zin in. Een aantal luie leerlingen werd gegrepen door dit onderwerp. Ze maakten huiswerk en wisten in de klas precies waar het over ging, stelden vragen en gaven heel veel antwoorden. Erg leuk om te zien en voor de leerlingen zelf was het ook erg leuk. Een leerling die al tijden vast overtuigd is biologie te gaan studeren, zei dat wiskunde misschien toch een optie was als biologie tegenviel. In de zomer van 2007 is de lessenserie aangepast. Het bewijzen is voor het grootste deel verplaatst naar een apart hoofdstuk zodat gekozen kan worden hoeveel er van behandeld wordt. In het najaar van 2007 is de lessenserie nog een keer gegeven, dit maal als een module. Op het gymnasium kennen wij een blokuur moduletijd per week. Op deze moduletijd worden modules van een half jaar gegeven waar leerlingen uit klas 4, 5 en 6 voor in kunnen schrijven. De leerlingen die voor cryptografie kozen, waren over het algemeen de betere wiskundeleerlingen. Met hen hebben we het hele boekje behandeld, inclusief het bewijzen. De leerlingen gingen er vlot doorheen, al werd het in de loop van het boekje wel moeilijker. De lesvorm was weer een combinatie van zelfstandig werken en samen de stof bespreken. Dit beviel goed. De module werd afgesloten door het maken van een proefwerk. 6.2 CSG Liudger in Drachten We hebben nu twee keer het pakketje doorgewerkt in het kader van een praktische opdracht in vwo 6, wiskunde B12. De eerste keer heb ik de groepjes geheel zelfstandig de opdrachten laten uitwerken. Dat leek goed te gaan; weinig vragen. Aan het eind van de periode was een redelijk omvangrijk practicum over RSA geroosterd. Toen bleek dat veel leerlingen het hoofdstuk over getaltheorie niet tot het eind hadden doorgewerkt. Dat maakte wat restauratiewerkzaamheden noodzakelijk. Toegang tot de applets via het schoolnetwerk is tot het eind niet mogelijk geweest. Dat heeft 16

de zaak ook aardig vertraagd. Het practicum verliep uitstekend. We hadden toen per team een laptop beschikbaar. Uiteindelijk zijn er heel leuke werkstukken uitgekomen. Het afgelopen jaar heb ik op een aantal punten een klassikaal moment ingelast. Dat was een goeie greep. Iedereen was nu op tijd door de theorie. Ook waren nu de applets via het schoolnetwerk bereikbaar. Het practicum viel me wat tegen. Ik ben in de instructie niet helder genoeg geweest. De gekozen priemgetallen waren zo klein, dat een handige leerling alle systemen zo had gekraakt. En dat haalt toch wel een beetje de lol uit het spel. Het komend jaar doen we het nog een keer als PO in vwo 6. 6.3 De toekomst Er komt voor het eind van de zomervakantie nog een bijgewerkte versie van de module. 17