Cryptografie workshop Wiskunde D-dag 6 juni 2008 Monique Stienstra, Stedelijk Gymnasium Nijmegen Harm Bakker, CSG Liudger, Drachten
Programma Wat is cryptografie? Versleutelen en ontcijferen in een schuifsysteem Versleutelen en ontcijferen in een lineair systeem Versleutelen en ontcijferen in een exponentieel systeem Ervaringen in de klas
Wat is cryptografie?
Terminologie
Codering A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 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
Schuif ieder symbool een vast aantal posities op. Schuifsysteem Schuif ieder symbool een vast aantal posities op. Voorbeeld: G = 6 → 13 = N P = 15 → 22 = W W = 22 → 29 → 29 – 26 = 3 = D
Ontcijferen in een schuifsysteem
Schuifsysteem Bij de encryptiefunctie is de decryptiefunctie van de vorm Uit de sleutelwaarde is de decryptiefunctie eenvoudig af te leiden
Vermenigvuldig elk symbool met een vast getal. Lineair systeem Vermenigvuldig elk symbool met een vast getal. Voorbeeld: U = 20 → 300 → 300 – 11 x 26 = 14 = O Opgave: versleutel de boodschap UTRECHT
UTRECHT 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 H 7 105 4 * 26 1 B
Ontcijferen in een lineair systeem ? → - ? * 26 = 9 J t 1 2 3 4 5 6 7 8 26t + 9 9 35 61 87 113 139 165 dus origineel was 11 = L
Ontcijferen (2) Ontcijfer bij de versleutelde boodschap JCRQU
JCRQU J 9 6 * 26 + = 15 11 L C 2 8 14 O R 17 P Q 16 4 I U 20 5 10 K
JCRQU (2) J 9 6 * 26 + = 15 11 L C 2 8 14 O R 17 P Q 16 4 I U 20 5 10 K J 9 * 7 = 63 − 2 * 26 11 L C 14 O R 17 119 4 15 P Q 16 112 8 I U 20 140 5 10 K
Snel ontcijferen
Ontcijferen t 1 2 3 4 5 6 7 8 26t + 1 27 53 79 105 131 157 183 209
Multiplicatieve inverse Heeft elk element e in {0,1,2, . . . 25} een inverse?
Algoritme van Euclides x y x div y x mod y 26 23 1 3 Invariant:
Algoritme van Euclides x y x div y x mod y 26 23 1 3 7 2
Uitbreiding van Euclides x y x div y x mod y a b u v 26 23 1 3 7 2 Invariant:
Uitbreiding van Euclides x y x div y x mod y a b u v 26 23 1 3 7 2
Uitbreiding van Euclides x y x div y x mod y a b u v 26 23 1 3 7 2
Uitbreiding van Euclides x y x div y x mod y a b u v 26 23 1 3 7 2 -1 -7 8 -9
Multiplicatieve inverse van 23 Euclides: Inverse:
De applet Euclides
De applets
Lineair systeem Bij de encryptiefunctie is de decryptiefunctie van de vorm Niet alle getallen zijn bruikbaar als sleutelwaarde Uit de sleutelwaarde is effectief de decryptiefunctie af te leiden
Verhef elk symbool tot een vaste macht. Exponentieel systeem Verhef elk symbool tot een vaste macht. Voorbeeld: D = 3 → 243 → 243 – 9 x 26 = 9 = J Opgave: versleutel de boodschap KERKRADE
KERKRADE K 10 → 100000 4 E 1024 R 17 1419857 23 X A D 3 243 9 J
Exponentieel systeem Zijn alle waarden bruikbaar in de encryptiefunctie ? Is de decryptiefunctie van de vorm ? Zo ja, hoe vind je de waarde van d ?
Exponentieel systeem B 1 → D 3 27 Zijn alle waarden bruikbaar in de encryptiefunctie ? Is de decryptiefunctie van de vorm ? Zo ja, hoe vind je de waarde van d ? Bekijk bijvoorbeeld B 1 → D 3 27
Ron Rivest, Adi Shamir, Leonard Adleman RSA Ron Rivest, Adi Shamir, Leonard Adleman Kies twee verschillende priemgetallen p en q; Bereken de getallen m = p · q en z = (p − 1) · (q − 1); Kies een positief getal e < z dat voldoet aan ggd(e,z) = 1; Bepaal een positief getal d < z dat voldoet aan e · d + z · t = 1; De verzameling symbolen is {0, 1, 2, . . . , (m − 1)} De encryptiefunctie is De decryptiefunctie is Voer dit proces uit. Neem p en q tussen 10.000 en 100.000. Hou de waarden geheim! Versleutel een waarde en ontcijfer het resultaat. Klopt het?
Public Key Cryptography publiek geheim deelnemer e m d A B C D E F G H 173 1288313539 379768157 I p=22109; q=58271; m=p*q=1288313539; z = 1288233160; e = 173; d = 379768157
Nog even spelen M.u.v. groep A: versleutel een boodschap voor groep A. Groep A: bedenk een boodschap voor groep B, versleutel deze eerst met je eigen geheime sleutel en versleutel dit resultaat met de publieke sleutel van groep B.
RSA De veiligheid berust op de praktische onmogelijkheid om grote getallen (zeg 200 cijfers) in priemfactoren te ontbinden. Vraagt nogal wat rekentijd, daarom meestal gebruikt om sleutels van eenvoudiger systemen over te dragen.
Ervaringen in de klas Stedelijk Gymnasium Nijmegen
Ervaringen in de klas CSG Liudger, Drachten 2006 – 2007 Praktische opdracht in vwo 6, wiskunde B12 2007 – 2008 Praktische opdracht in vwo 6, wiskunde B12