Lösung zur Klausur zu Krypographie Sommersemester 2005 1. Bestimmen Sie die zwei letzten Ziffern der Dezimaldarstellung von 12 34 Es gilt: 12 34 = 12 32+2 = 12 32 12 2 = 12 (25) 12 2 = ((((12 2 ) 2 ) 2 ) 2 ) 2 12 2 Weil uns nur die beiden letzten Ziffern interessieren, rechnen wir Modulo 100: 12 2 = 144 44 mod 100 (12 2 ) 2 44 2 36 mod 100 ((12 2 ) 2 ) 2 36 2 96 mod 100 (((12 2 ) 2 ) 2 ) 2 96 2 16 mod 100 ((((12 2 ) 2 ) 2 ) 2 ) 2 16 2 56 mod 100 Also folgt 12 34 56 44 64 mod 100. Die letzte Ziffer der Dezimaldarstellung von 12 34 lautet damit 4 und die vorletzte 6. 2. Beschreiben Sie das Kerkhoffsche Prinzip und erläutern Sie dessen Auswirkungen für den praktisch arbeitenden Softwareentwickler. Antwort: Das Kerkhoffsche Prinzip besagt, dass einem eventuellen Angreifer auf ein Kryptosystem alle Deteils des verwendeten Verfahrens sowie der Implementierung als bekannt vorausgesetzt werden sollten. Für die Praxis bedeutet dies, dass die Sicherheit eines Kryptosystems nicht dadurch gewährleistetw erden kann, dass man ein unbekanntes Verschlüsselungssystem verwendet (sog. security by obscurity). 3. Geben Sie eine Lösung für die Gleichung 122x 3 mod 343 an. Antwort: Wir stellen den Erweiterten Euklidischen Algorithmus vor, mit dem zu zwei natürlichen Zahlen m und n der ggt und die Lineardarstellung des ggt berechnet werden kann (beachte: der ggt von 122 und 343 ist 1). a 0 := m a 1 := n q k := a k 1 a k für k > 0 a k := a k 2 a k 1 q k 1 für k > 1 x 0 := 1 x 1 := 0 y 0 := 0 y 1 := 1 x k := x k 2 q k 1 x k 1 für k > 1 y k := y k 2 q k 1 y k 1 für k > 1 Sei a p das letzte a k 0. Dann gilt nach dem Euklidischen Algorithmus a p = ggt(m, n). Weiterhin gilt: ggt(m, n) = x p m + y p n.
Mit diesem Algorithmus erhält man die Lineardarstellung 1 = ( 149) 122 + 53 343. Also gilt 122 ( 149) 1 mod 343. Multiplikation mit 3 ergibt (Rechnung modulo 343): 122 239 1 mod 343. 4. Sdeien p und q Primzahlen, und sei (e, n) mit n = p q ein korrekt gewählter öffentlicher Schlüssel des RSA-Verfahrens. Beweisen Sie: Es gibt genau eine Restklasse d, die als geheimer Schlüssel zu (e, n) passt. Eine Restklasse d ist ein zugehöriger geheimer Schlüssel, falls e d 1 mod ϕ(n). Wir nehmen an, dass es zwei passende Schlüssel d 1 und d 2 gibt. Es folgt (alle Gleichungen gelten im Ring Z ϕ(n) ): 1 = e d 1 = e d 2 e(d 1 d 2 ) = 0. Multiplikation mit d 1 liefert d 1 d 2 = 0, also d 1 = d 2. 5. Gegeben seien p = 19, q = 17 und e = 5. (a) Bestimmen Sie den Ciphertext der aus der Nachricht x = 10 entsteht, wenn Sie das RSA-Verfahren mit den gegebenen Werten anwenden. (b) In der Vorlesung wurde der Satz von Euler besprochen: Seien a, n N \ {0} und ggt (a, n) = 1, dann gilt a ϕ(n) 1 mod n. Verwenden Sie den Satz von Euler um den geheimen Schlüssel zu berechnen. (c) Beim RSA-Verfahren sind nur bestimmet Verschlüsselungexponenten zulässig. Geben Sie alle erlaubten Exponenten für den Fall p = 11 und q = 7 an. (a) Die Verschlüsselung c von x lautet: x e mod n. Berechnung von n: n = p q = 19 17 = 323. Teilen mit Rest ergibt: 10 5 = 309 323 + 193. Also gilt: 10 5 193 mod 323 und somit c = 193. (b) Es gilt ggt(e, ϕ(n)) = 1. Daraus folgt mit dem Satz von Euler: e ϕ(ϕ(n)) 1 mod ϕ(n) (1) Berechnung der ϕ-funktion: ϕ(n) = 18 16 = 288 ϕ(ϕ(n)) = ϕ(288) = ϕ(2 5 3 2 ) = 288(1 1 2 )(1 1 3 ) = 96 Engesetzt in Gleichung (1) ergibt sich: e 96 1 mod 288. Da e d 1 mod ϕ(n)
gilt, folgt für den privaten Schlüssel: d = e 95 mod 288 = 5 64+16+8+4+2+1 mod 288 = 5 25 32+8+4+2+1 mod 288 = 5 25 49 16+4+2+1 mod 288 = 5 25 49 97 8+2+1 mod 288 = 5 25 49 97 193 4+1 mod 288 = 5 25 49 97 193 97 2 mod 288 = 5 25 49 97 193 193 mod 288 = 5 25 49 97 97 mod 288 = 5 25 49 193 mod 288 = 5 25 241 mod 288 = 5 265 mod 288 = 173 (c) e ist aus der Einheitengruppe Z ϕ(n) zu wählen, so dass e 2, d.h. e {7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 49, 53, 59}. 6. Beim AES-Verfahren kommt der endliche Körper GF(2 8 ) zum Einsatz. Dazu wird als erzeugendes Element das Polynom 0x11B verwendet. Zeigen Sie: In dieser Darstellung ist das inverse Element bezüglich der Multiplikation von 0x03 gleich 0xF 6. Die in hexadezimaler Schreibweise angegebenen Elemente entsprechen folgenden Polynomen über Z 2 : f = 0x03 = x + 1 g = 0xF 6 = x 7 + x 6 + x 5 + x 4 + x 2 + x h = 0x11B = x 8 + x 4 + x 3 + x + 1 Wir berechnen das Produkt aus den ersten beiden Polynomen: f g = x 8 + x 4 + x 3 + x. Die Aufgabe besteht nun darin, zu verifizieren, dass dieses Polynom äquivalent zu 1 modulo h ist. Um dies zu zeigen ist zu beweisen, dass h ein Teiler der Differenz von f g und 1 ist. Da in Körpern der Charakteristik 2 Addition und Subtraktion dasselbe ist, können wir das Polynom f g + 1 betrachten. Dies ist aber identisch mit h, also ist h trivialerweise ein Teiler. 7. Mie AES 128 (, ) bezeichnen wir die in der Vorlesung beschriebene Version von AUS, die auf 128-Bit Schlüssel beschrnkt ist. (a) Geben Sie den Pseudocode einer Hashfunktion an, die AES 128 als Kompressionsfunktion verwendet. Mit den Bezeichnungen aus der Vorlesung gelten die folgenden Beziehungen:
n = 128 m = 256 r = 128 Sei x {0, 1} ein Eingabetext. Zunächst padden wir x, sodass die Länge von x ein Vielfaches von 128 ist, und hängen die Länge von x binär kodiert an (beispielsweise mit einer passenden Anzahl von führenden Nullen, sodass das modifizierte x danach wieder eine Länge hat, die ein Vielfaches von 128 ist). Also nehmen wir an, dass x = x 1... x k, wobei x i = r für alle i. Wir definieren die Zeichenketten h i {0, 1} 128 rekursiv wie folgt: h 0 = 0 128 h i = AES 128 (h i 1, x i ) Wir definieren: h: {0, 1} {0, 1} 128, h(x) := h k. (b) Von einer sicheren Hashfunktion wird heute erwartet, dass man mindestens 2 64 Hashwerte berechnen muss, bis man eine Kollision findet. Ist die von Ihnen beschriebene Hashfunktion unter diesem Gesichtspunkt zukünftig brauchbar? Begründen Sie ihre Einschätzung. Antwort: Zunächst ist die oben konstruierte Hashfunktion nur dann brauchbar, wenn AES 128 für praktische Zwecke kollisionsresistent ist. Es ist keine Funktion bekannt, die beweisbar kollisionsresistent ist, aber bei AES geht man davon aus. Unter der Annahme, dass AES 128 für praktische Zwecke genügend kollisionsresistent ist, ist die Konstruktion genügend sicher, denn nach Vorlesung konstruiert die oben angewendete Merkle-Damgård Konstruktion aus einer kollisionsresistenten Funktion f : {0, 1} m {0, 1} n eine kollisionsresistente Funktion h: {0, 1} {0, 1} n. Nach Vorlesung ist ein n 128 zur Zeit ausreichend. 8. Sei die Elliptische Kurve E : y 2 = x 3 + x + 6 über dem endlichen Körper GF(11) gegeben. (a) Zeigen Sie: (2, 4) und (5, 9) sind Punkte dieser Kurve. Dies verifiziert mal leicht durch einsetzen der Zahlen und Rechnen modulo 11. Beide Paare erfüllen die definierende Gleichung der Kurve. (b) Berechnen Sie den Summenpunkt (2, 4) + (5, 9). Wir verwenden die Additionsformeln aus der Vorlesung, mit den Werten x 1 = 2, y 1 = 4, x 2 = 5, y 2 = 9. Hiermit ergibt sich: m = y 2 y 1 x 2 x 1 = 5 3. In GF(11) ist das Inverse zu 3 gleich 4, denn 3 4 = 12 1 mod 11. Also gilt m = 5 4 9.
Damit ergibt sich weiter: x 3 = m 2 x 1 x 2 81 2 5 74 8, y 3 = m(x 1 x 3 ) y 1 9 (2 8) 4 58 8. Der gesuchte Punkt hat also die Koordinaten (8, 8).