TECHNISCHE UNIVERSITÄT DARMSTADT Einführung in die Kryptographie FACHGEBIET THEORETISCHE INFORMATIK PROF. JOHANNES BUCHMANN FATEME SHIRAZI WS 2012/2013 8. Lösungsblatt — 07.12.2012 P1 Diffie-Hellman Verfahren Gegeben sei die Gruppe G = (Z/13Z)∗ und das Element g = 2 + 13Z. (a) Zeigen Sie, ob die Elementordnung von g gleich der Gruppenordnung ist. Lösung. Die Ordnung von G ist 12 = 22 · 3. Es gilt 212 mod 13 = 1 und 212/p mod 13 6= 1 f�r p=2, 3 (all Primteiler von 12). Dann ist 12 die Ordnung von g . (b) Alice und Bob benutzen das Diffie-Hellman Schlüsselaustausch-Verfahren mit der Gruppe G und dem Element g . Sie belauschen, dass Alice den Wert A = 6 an Bob schickt und Bob mit B = 10 antwortet. Wie lautet Alices geheimer Exponent? Was ist Bobs geheimer Exponent? Wie lautet der gemeinsame Schlüssel, auf den sich die beiden geeinigt haben? Lösung. Durch Aufstellen einer Tabelle sieht man: 20 21 22 23 24 25 26 27 28 29 210 211 1 2 4 8 3 6 12 11 9 5 10 7 Alices Exponent ist also 5 und Bobs ist 10. Der gemeinsame Schlüssel ist somit 25·10 ≡ 24·12 · 22 ≡ 22 ≡ 4 mod 13. (c) Sei m eine ganze Zahl größer 2. Sollte man das Diffie-Hellman Verfahren auch für additive Gruppen der Form G = (Z/mZ, +) verwenden? Begründen Sie Ihre Antwort. Lösung. Nein, denn das Diskrete Logarithmus Problem, auf dem die Sicherheit des Diffie-Hellman-Verfahrens basiert, ist in diesen Gruppen mit dem Euklidischen Algorithmus leicht lösbar. P2 ElGamal Verfahren (a) Der öffentliche Schlüssel von Alice ist (p, g, A) = (601, 7, 598). Verschlüsseln Sie die Nachricht m = 2. Nehmen Sie für die Zufallszahl, die Sie dabei brauchen, b = 32. Lösung. Das Ergebnis der Verschlüsselung der Nachricht m = 2 mit dem Schlüssel (p, g, A) = (601, 7, 598) unter Verwendung des zufälligen Exponenten b = 32 ist (g b , Ab m) = (551, 402). (b) Der private Schlüssel von Alice ist 4. Entschlüsseln Sie die Nachricht (B, Ab m) = (12, 3). Lösung. Die Entschlüsselung des Schlüsseltextes (c1 , c2 ) = (12, 3) ist m = c2 /c1a ≡ 2 mod 601. (c) Angenommen, Bob wählt zweimal denselben Exponenten b und berechnet damit aus den Klartexten m = 23 und m0 jeweils die Schlüsseltexte (574, 466) und (574, 338), wobei (601, 7, 21) der öffentliche Schlüssel von Alice ist. Berechnen Sie den Klartext m0 . Lösung. Es gilt: c = 466 = Ab m mod p; c 0 = 338 = Ab m0 mod p, c 0 c −1 = m0 m−1 mod p, m0 = c 0 c −1 m mod p = 338 · 138 · 23 = 27. 1 P3 RSA-Signatur Sei m eine Nachricht und h(m) = 423 deren Hashwert, der mit dem RSA-Verfahren signiert werden soll. Dabei ist der Modul n = 437 und der öffentliche Exponent e minimal gewählt. (a) Bestimmen Sie e und den privaten Schlüssel d . Lösung. Aus n = 437 = 19 · 23 berechnet man (p − 1)(q − 1) = 18 · 22 = 396. Für den Zusammenhang zwischen Ver- und Entschlüsselungsexponent muss die Beziehung ed ≡ 1 mod (p − 1)(q − 1) gelten. Das heißt, dass e und d zueinander multiplikativ invers sind modulo (p − 1)(q − 1). Als kleinster Wert kommt e = 5 in Frage, da der Modul 396 mit den Zahlen 2, 3 und 4 einen von 1 verschiedenen ggT hat. Mit dem erweiterten euklidischen Algorithmus findet man d = 317 als privaten Schlüssel. (b) Berechnen Sie die zur Nachricht m gehörende Signatur. Lösung. Zum Signieren hat man s ≡ h(m)d mod n zu berechnen; dies geschieht mit schneller Exponentiation: 317 = 28 + 25 + 24 + 23 + 22 + 20 = 1001111012 . Die Folge der sukzessiven Quadrate lautet: 423, 196, 397, 289, 54, 294, 347, 234, 131. Für s erhält man damit s ≡ 131 · 294 · 54 · 289 · 397 · 423 ≡ 25 mod 437. Bemerkung: Für die Berechnung dieses Produkts mit dem Taschenrechner ist es ratsam, nicht erst alle Faktoren zu multiplizieren (Größenordnung 1014 ) und dann modulo 437 zu reduzieren. Die Zahlen bleiben deutlich kleiner, wenn zwischendurch modulo 437 reduziert wird. Zum Beispiel: 131 · 294 · 54 = 2079756 ≡ 73 mod 437, 289 · 397 · 423 = 48532059 ≡ 150 mod 437 und damit s ≡ 73 · 150 = 10950 ≡ 25 mod 437. (c) Überprüfen Sie, ob die Signatur aus (b) von der Nachricht m gültig ist. Lösung. Man kann das Ergebnis einfach nachprüfen, da ja s e ≡ 255 ≡ 423 mod 437 gelten muss. H1 Diffie-Hellmann Verfahren Alice und Bob vereinbaren mit Hilfe des Diffie-Hellmann-Verfahrens einen symmetrischen Schlüssel K . Oscar fängt die Parameter p = 43, g = 3, A = 30, B = 24 ab. Wie lautet demnach K ? Hinweis: Legen Sie sich eine Tabelle an mit 3k mod 43 für k = 0, . . . , 41. Zur Vereinfachung können Sie verwenden, dass 321+k ≡ −3k mod 43 ist für jedes k ∈ Z. Lösung. Wir berechnen zunächst alle Potenzen g k mod p, um die diskreten Logarithmen später aus einer Tabelle ablesen zu können: k 0 1 2 3 4 5 6 7 8 9 3k mod 43 1 3 9 27 38 28 41 37 25 32 3 mod 43 10 30 4 12 36 22 23 26 35 19 3k+20 mod 43 14 42 40 34 16 5 15 2 6 18 3k+30 mod 43 11 33 13 39 31 7 21 20 17 8 3k+40 mod 43 24 29 1 ... Man sieht sofort, dass der geheime Exponente von Alice a = log g (A) = log3 (30) = 11 und jener von Bob b = log g (B) = log3 (24) = 40 gewesen sein muss. Der gemeinsam in diesem Verfahren erzeugte Schlüssel ist k+10 K ≡ g a b ≡ Ab ≡ B a ≡ 311·40 ≡ 3440 ≡ 342·10+20 ≡ (|{z} 342 )10 · 320 ≡ 14 mod 43, ≡1 440 wobei man hierbei 3 mod 43 entweder mit schneller Exponentiation ausrechnet, oder sich den kleinen Satz von Fermat zunutze macht: Der Exponent 440 lässt sich schreiben als 10 · 42 + 20. Da ggT(3,43) = 1 ist, gilt 342 ≡ 1 mod 43 und entsprechend (342 )10 ≡ 110 ≡ 1 mod 43. H2 ElGamal Verfahren Alice erhält den ElGamal-Chiffretext (B, c) = (24, 7). Wie lautet ihr privater Schlüssel und der Klartext, wenn ihr öffentlicher Schlüssel (p, g, A) = (43, 3, 30) ist? Lösung. Aus der Aufgabe H1 kennen wir schon den privaten Schlüssel a = log g (A) = 11 von Alice. Wir entschlüsseln das Chiffrat wie folgt ( x = p − 1 − a = 31): B x c ≡ B 31 c ≡ 2431 · 7 ≡ 40 · 7 ≡ 22 mod 43. Alternativ hätte man, da schon K ≡ 14 mod 43 bekannt ist, auch K −1 mod n (mit dem erweiterten euklidischen Algorithmus) und dann K −1 c mod n berechnen können. 2