Technische Universität Darmstadt Einführung in die Kryptographie Fachgebiet Theoretische Informatik Prof. Johannes Buchmann Thomas Wunderer WS 2016/ 2017 8. Lösungsblatt — 09.12.2016 Ankündigungen 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 (Z/pZ)∗ ein Quadrat mod p und jedes Quadrat a ∈ Q besitzt zwei Quadratwurzeln. p−1 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. 161 7 = 23. 2 P4 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) Rechnen Sie ein Beispiel für (a) durch. 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. H1 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. H2 Sicherheit des geheimen Schlüssels Sei n ein RSA-Modul, e der Verschlüsselungsexponent, d der Entschlüsselungsexponet, s = ma x{t ∈ N : 2 t | ed − 1}, k = (ed − 1)/2s . (a) Zeigen Sie, dass or der(a k + nZ) | 2s für alle a ∈ Z mit ggT(a, n) = 1. Lösung: Es gilt e · d ≡ 1 mod ϕ(n) ⇒ ∃r ∈ Z : ed − 1 = r · ϕ(n). Da ggT(a, n) = 1 ist, gilt aϕ(n) ≡ 1 mod n ⇒ a r·ϕ(n) ≡ 1 mod n und daher ist a ed−1 ≡ 1 mod n s Daraus folgt (a k )2 ≡ 1 mod n Daher ist or der(a k + nZ) ein Teiler von 2s . (b) Sei a ∈ Z, ggT(a, n) = 1, und seien die Ordnungen von a k mod p und mod q verschieden. Zeigen Sie, dass für ein t t ∈ {0, . . . , s − 1} gilt: 1 < g g T (a2 k − 1, n) < n. Lösung: Aus (a) folgt, dass or der(a k + nZ) ∈ {2i : o ≤ i ≤ s} und daher gilt das auch für or d er(a k + pZ) und or d er(a k + qZ), denn aus (a k ) x ≡ 1 mod n und p | n folgt (a k ) x ≡ 1 mod p Bemerkung: Es kann aber ein y < x geben mit 3 (a k ) y ≡ 1 mod p Daher können or der(a k + pZ), or der(a k + qZ), und or d er(a k + nZ) verschieden sein. Beispiel:Sei n = 3 · 5 = 15. Es ist or der(2 + 15Z) = 4 und 24 ≡ 16 ≡ 1 mod 15. Es folgt 24 ≡ 1 mod 3, 24 ≡ 1 mod 5. Aber es ist or der(2 + 3Z) = 2 und or d er(2 + 5Z) = 4 t Sei or d er(a k + qZ) = 2 t < or der(a k + pZ). Dann gilt t < s und (a k )2 ≡ a2 t mod p. Daher ist ggT(a2 k − 1, n) = q t ·k ≡ 1 mod q. Aber a2 t ·k 6≡ 1 (c) (Freiwillig) Zeigen Sie, dass die Anzahl der Zahlen a ∈ {1, . . . , n − 1} mit den Eigenschaften aus (b) wenigstens (p − 1)(q − 1)/2 ist. Hinweis: vervollständigen Sie den Beweis aus dem Buch. Lösung: Nach dem chinesischen Restsatz gibt es einen Erzeuger g < n, der Z p und Zq erzeugt. Sei l = or d er(g k + pZ) > or der(g k + qZ). Aus (a) liegen beide Ordnungen in der Menge {2i : 0 ≤ i ≤ s}. Sei 0 < x < p ungerade, y ≤ q − 2 und a eine Lösung der simultanen Kongruenz a ≡ g x mod p, a ≡ g y mod q Da l Zweierpotenz ist, gilt or der(a k + pZ) = or d er(g k + pZ) > or d er(g k + qZ) Diese Lösung mod n sind paarweise verschieden, denn g ist ein Erzeuger und daher ist a für jedes x, y anders. Damit sind (p −1)(q −1)/2 zu n teilerfremden Zahlen a gefunden, für die gilt: or d er(a k + pZ) 6= or d er(a k +qZ). Falls or d er(g k +pZ) < or der(g k +qZ), so geht man genauso vor. Sei schließlich or d er(g k +pZ) = or d er(g k +qZ). Dann sei 0 < x < p ungerade, y ≤ q − 2 gerade (oder umgekehrt) und a < n eine Lösung der simultanen Kongruenz a ≡ g k mod p, a ≡ g k mod q Es folgt or der(a k + pZ) 6= or der(a k + qZ) für (p−1)(q−1) 4 + (p−1)(q−1) 4 = (p−1)(q−1) 2 Zahlen. (d) Folgen Sie, dass der in der Vorlesung vorgestellte Algorithmus Erfolgswahrscheinlichkeit ≥ 1 2 hat. Lösung: Es gibt n − (p − 1)(q − 1) Zahlen, die p oder q als gemeinsamer Teiler mit n haben. Wird eine von denen zufällig gewählt, so wird ein echter Teiler von n gefunden. Alle anderen (p − 1)(q − 1) Zahlen sind teilerfremd zu n. Aus (b) und (c) hat der Algorithmus mit wenigstens (p − 1)(q − 1)/2 Zahlen Erfolg. Somit ist die Erfolgswahrscheinlichkeit ≥ 1/2. 4