TECHNISCHE UNIVERSITÄT DARMSTADT Einführung in die Kryptographie FACHGEBIET THEORETISCHE INFORMATIK PROF. JOHANNES BUCHMANN DR. JULIANE KRÄMER WS 2015/ 2016 8. Lösungsblatt — 03.12.2015 Ankündigung Die Bücher, die noch nicht abgeholt wurden, können am 16.12.2015 direkt im Anschluss an die VL im Raum B207 im Piloty-Gebäude abgeholt werden. Bitte bringen Sie 10 € passend mit. Sollten Sie keine Möglichkeit haben, an dem Termin zu erscheinen oder sich das Buch von einem Kommilitonen mitbringen zu lassen, melden Sie sich bitte bei Juliane Krämer: [email protected]. Sie dürfen zur Klausur ein beidseitig beschriebenes DIN-A4-Blatt mitnehmen. P1 Quadratwurzeln (a) Sei p eine Primzahl. Was bedeutet es, wenn wir sagen, dass a ∈ {0, . . . , p − 1} ein Quadrat mod p ist oder wenn b eine Quadratwurzel von a mod p ist? Lösung. Wenn a ein Quadrat mod p ist, dann gibt es eine Zahl b ∈ {0, . . . , p − 1}, für die a ≡ b2 mod p gilt. Dieses b ist eine Quadratwurzel von a mod p. (b) Sei p = 11. Welche der Zahlen a ∈ {0, . . . , p − 1} sind Quadrate mod p? Lösung. Wir berechnen zunächst das Quadrat aller Zahlen b ∈ {0, . . . , p − 1}: b b2 mod 11 0 0 1 1 2 4 3 9 4 5 5 3 6 3 7 5 8 9 9 4 10 1 Die Zahlen in der zweiten Zahle sind Quadratzahlen modulo 11, d.h. {0, 1, 3, 4, 5, 9} ist die Menge der Quadratzahlen modulo 11. (c) Was sind die Quadratwurzeln von 5 modulo 11 und von 6 modulo 11? Lösung. Aus (b) wissen wir, dass 42 ≡ 5 mod 11 und 72 ≡ 5 mod 11 gilt. Daher sind 4 und 7 die Quadratwurzeln von 5 modulo 11. Da wir aus (b) außerdem wissen, dass 6 kein Quadrat modulo 11 ist, gibt es auch keine Quadratwurzeln von 6 modulo 11. (d) Sei p eine Primzahl. Bestimmen Sie | Q | für die Menge Q = {x 2 mod p : x ∈ (Z/pZ)∗ } und zeigen Sie, dass a|Q| = 1, falls a ein Quadrat modulo p ist. Lösung. Für p = 2 ist offensichtlich | Q | = 1. Sei nun also p > 2. Sei a ∈ (Z/pZ)∗ , d.h. 0 < a < p. Die Menge Q = {x 2 mod p : x ∈ (Z/pZ)∗ } ist eine Untergruppe von (Z/pZ)∗ . Die Elemente x und −x = p − x haben das gleiche Quadrat (nachrechenbar mit der 2. binomischen Formel). Andererseits kann ein Element nicht mehr als zwei Quadrate haben, da Z/pZ ein Körper ist, und somit jedes Polynom X 2 − a für a ∈ Z/pZ höchstens zwei Nullstellen hat. Daher ist genau die Hälfte der Elemente in p−1 (Z/pZ)∗ ein Quadrat mod p und jedes Quadrat a ∈ Q besitzt zwei Quadratwurzeln. Somit ist | Q |= 2 . Ist a ein Quadrat mod p, so gibt es b ∈ (Z/pZ)∗ mit a = b2 mod p. Also gilt: a|Q| = a mod p. p−1 2 = (b2 ) p−1 2 = b p−1 ≡ 1 (e) Sei p eine Primzahl, p ≡ 3 mod 4 und sei a ∈ {0, . . . , p − 1} ein Quadrat mod p. Zeigen Sie, dass ±a(p+1)/4 mod p die Quadratwurzeln von a mod p sind. Lösung. (±a p+1 2 4 ) ≡a p+1 2 ≡a·a p−1 2 ≡ a · 1 ≡ a mod p (f) Verwenden Sie die Formel aus (e) um die Quadratwurzeln aus 3 mod 23 zu berechnen. p+1 p+1 Lösung. Es ist p = 23, daher ist 4 = 6 und somit a 4 = 36 = 33 · 33 ≡ 4 · 4 mod 23 = 16 mod 23. Aus (d) wissen wir, dass die zweite Quadratwurzel von 23 gerade 23 − 16 ist. Somit sind 7 und 16 die Quadratwurzeln von 3 mod 23. 1 P2 Schnelle Exponentiation (a) Nutzen Sie schnelle Exponentiation, um folgende Werte zu berechnen: 2286 mod 2003 31001 mod 2003 5q mod 2003, wobei q = 2002/p und p alle Primzahlen, die 2002 teilen, durchläuft. Lösung. 2286 = 1 mod 2003 31001 = 1 mod 2003. Im letzten Teil der Aufgabe nimmt q die Werte 1001, 286, 182, 154 an, da 2002 = 2 · 7 · 11 · 13 gilt. Hierfür sind die Lösungen 51001 ≡ 2002 mod 2003 5286 ≡ 874 mod 2003 5182 ≡ 886 mod 2003 5154 ≡ 633 mod 2003. P3 Rabin-Verfahren Sei n = 161. Nehmen Sie an, dass Sie ein Rabin-Entschlüsselungsgerät besitzen, das immer die kleinste nicht-negative Quadratwurzel ausgibt. Zeigen Sie, wie man den Rabin-Modul n mit diesem Gerät faktorisieren kann. Lösung. Wir wählen x = 144 als Plaintext, den wir verschlüsseln. Es ist ggT(161, 144) = 1. Daher berechnen wir c = x 2 mod n = (144)2 mod 161 = 128. Das Entschlüsselungsgerät berechnet: mp = c p+1 4 ≡ (128)6 mod 23 = 6 q+1 4 mq = c ≡ (128)2 mod 7 = 4 m ≡ 6 mod 23 m ≡ 4 mod 7 Der erweiterte euklidische Algorithmus berechnet 23 · (−3) + 7 · 10 = 1 m = ±(6 · 7 · 10 ± 4 · 23 · (−3)) mod 161 m = {17, 52, 109, 144} Das Rabin-Entschlüsselungsgerät gibt die kleinste nicht negative Quadratzahl aus, d.h. wir bekommen m = 17 aus. Damit wir einen nicht-trivialen Teiler von n erhalten, darf weder m − x ≡ 0 mod n noch m + x ≡ 0 mod n gelten. Es gilt jedoch m + x = 17 + 144 = 161 mod 161 = 0. Daher wählen wir ein neues x , und zwar x = 101. Es ist ggT(161, 101) = 1. Damit berechnen wir c = x 2 = (101)2 mod 161 = 58. Das Entschlüsselungsgerät berechnet: mp = c p+1 4 = (58)6 mod 23 = 9 q+1 4 = (58)2 mod 7 = 4 mq = c m ≡ 9 mod 23 m ≡ 4 mod 7 23 · (−3) + 7 · (10) = 1 m = ±(9 · 7 · 10 ± 4 · 23 · (−3)) mod 161 m = {32, 60, 101, 129} Das Entschlüsselungsgerät gibt m = 32 aus. Es gilt: m + x = 32 + 101 = 133 6= 0 mod 161 m − x = −69 = 92 6= 0 mod 161 Daher muss ggT(m ± x, n) ein nicht-trivialer Teiler von n sein. Es ist ggT(m + x, n) =ggT(133, 161) = 7 und Somit erhalten wir die Faktorisierung 161 = 7 · 23. 2 161 7 = 23. H1 Low-Exponent-Angriff vs. Rabin-Verfahren (a) Zeigen Sie, dass der Low-Exponent-Angriff auch für das Rabin-Verfahren funktioniert. Lösung. Wird die gleiche Nachricht m für zwei Moduli n1 und n2 mit dem Rabin-Verfahren verschlüsselt, so gibt es ein x , das die simultane Kongruenz x ≡ c1 ≡ m2 mod n1 , x ≡ c2 ≡ m2 mod n2 , löst. Es kann mit dem erweiterten euklidischen Algorithmus berechnet werden, wenn die Schlüsseltexte c1 = m2 mod n1 und c2 = m2 mod n2 beobachtet werden. Dieses x ist kleiner als n1 n2 . Da jedoch auch m2 < n1 n2 und m2 offensichtlich die obigen Kongruenzen erfüllt, folgt aus der Eindeutigkeitsaussage des Chinesischen Restsatzes, dass x = m2 , sodass der Angreifer durch Quadratwurzelziehen in R aus x den Klartext m erhält. (b) Geben Sie ein Beispiel für (a). Lösung. Se n1 = 161 und n2 = 781. Angenommen, m = 52 wurde verschlüsselt. Dann gilt c1 = (52)2 mod 161 = 128 und c2 = (52)2 mod 781 = 361, woraus x ≡ 128 mod 161 und x ≡ 361 mod 781 folgt. Der erweiterte euklidische Algorithmus ergibt: 781 · (−47) + 161 · (228) = 1 p Somit ist x = 128 · 781(−47) + 361 · 161 · 228 mod 125741 = 79662 + 48783 = 2704 und folglich m = x = p 2704 = 52. H2 Schnelle Exponentiation Wieviele Quadrierungen und Multiplikationen benötigt der Algorithmus, wenn die Binärdarstellung des Exponenten n Bit lang ist und davon r Bits 1 sind? Pn−1 Lösung. Der Exponent lässt sich schreiben als e = i=0 ei 2i , d.h., die Binärdarstellung von e ist en−1 . . . e0 , wobei nach Voraussetzung r dieser ei gleich 1 sind (und die anderen 0). Für eine Basis b gilt be = n−1 Y i (b2 )ei = i=0 Y i b2 . {0≤i≤n−1:ei =1} Dieses Produkt enthält genau r Faktoren, weshalb r − 1 Multiplikationen ausgeführt werden. 1 2 n−1 Für die Berechnung der sukzessiven Quadrate b2 , b2 , . . . , b2 werden zudem n − 1 Quadrierungen benötigt. 3