TU Ilmenau, Fakultät für Informatik und Automatisierung FG Komplexitätstheorie und Effiziente Algorithmen Univ.-Prof. Dr. M. Dietzfelbinger, M. Sc Stefan Walzer https://www.tu-ilmenau.de/iti/lehre/lehre-ws-20162017/kg/ Kryptographie Übung 7 Besprechung am 30. Januar 2016 Aufgabe 1 (Wiederverwendung von Primzahlen bei RSA) Es seien (n, e1 ) und (n, e2 ) zwei öffentliche Schlüssel des RSA-Kryptosystems mit ggT(e1 , e2 ) = 1. Weiter sei x ∈ Zn ein beliebiger Klartext. Zeigen Sie, wie man aus den Chiffretexten y1 := xe1 mod n y2 := xe2 mod n und von x und nur unter Kenntnis von (n, e1 ) und (n, e2 ) den Klartext x effizient berechnen kann. Bemerkung. Folgendes ist also keine gute Idee: Eine Firma hat einen geheimen Modulus n = p · q und wählt für die verschiedenen Mitarbeiter m1 , . . . , mk verschiedene Paare (e1 , d1 ), . . . , (ek , dk ) von öffentlichen und privaten Exponenten mit ei · di ≡ 1 mod ϕ(n) für alle 1 ≤ i ≤ k. Falls ei und ej teilerfremd sind und eine Nachricht x verschlüsselt an zwei Mitarbeiter mi und mj geschickt wird, könnte ein Angreifer, der xei und xej abgehört hat, nämlich den Klartext x effizient berechnen. Aufgabe 2 (Wiederverwendung von Exponenten bei ElGamal) Alice und Bob verschlüsseln ihre Kommunikation mit dem ElGamal Kryptosystem mit zugrundeliegender Gruppe (G, ◦). Der öffentliche Schlüssel von Bob sei (G, g, B). Alice schickt Bob zwei Nachrichten x1 , x2 ∈ G und verwendet (aus Faulheit) bei der Verschlüsselung beide Male dieselbe zufällig gewählte Zahl a ∈ {2, . . . , |G|−2}. Sie fangen die beiden Geheimtexte yi = (g a , B a ◦ xi ) für i = 1, 2 ab. Nehmen Sie an, dass Sie aus irgendeinem Grund den Klartext x1 kennen. Zeigen Sie, dass Sie den Klartext x2 effizient bestimmen können. Aufgabe 3 (Pohlig-Hellmann-Verfahren) Sei n ∈ N mit Primfaktorzerlegung n = p1 · p2 · . . . · pr gegeben. Sei ferner Qi := i Q pj für 0 ≤ j < r. j=1 (a) Jede Zahl 0 ≤ a < n lässt sich eindeutig darstellen als a = 0 ≤ ai < pi für alle 1 ≤ i ≤ r gilt. Warum? Pr i=1 ai · Qi−1 mit Zahlen a1 , . . . , ar wobei (b) Sei (G, ◦) eine zyklische Gruppe mit Erzeuger g ∈ G und Gruppenordnung |G| = n. Sei y ∈ G beliebig; Ziel ist es logg (y) zu berechnen, also dasjenige a ∈ {0, . . . , n − 1} mit g a = y. Nach (a) gibt es eine Darstellung von a mittels a1 , . . . , ar . Wir werden diese Zahlen ai der Reihe nach bestimmen. Zeigen Sie zunächst: a· n Q1 Schlussfolgern Sie, dass die Gleichung: ≡ a1 pn1 n (mod n) n y Q1 = (g p1 )b genau die Lösung b = a1 hat für 0 ≤ b < p1 . 2 Kryptographie Übung 7 (c) In der Situation von (b) seien nun schon a1 , . . . , ak bekannt für k < r. Zeigen Sie: (a − k X ai Qi−1 ) · n Qk+1 n ≡ ak+1 pk+1 (mod n). i=1 Schlussfolgern Sie, dass die Gleichung: y·g − k P ai Qi−1 Qn k+1 i=1 n = (g pk+1 )b genau die Lösung b = ak+1 hat für 0 ≤ b < pk+1 . (d) Beschreiben Sie den Algorithmus zur Berechnung des diskreten Logarithmus einer beliebigen Zahl y ∈ G, der sich aus den vorherigen beiden Teilaufgaben ergibt. Die Laufzeit soll dabei O(p1 + p2 + . . . + pr ) betragen. Begründen Sie, dass die Gruppenordnung der Gruppe G im ElGamal Verfahren einen möglichst großen Primteiler besitzen sollte. (e) Benutzen Sie Ihr Verfahren um log3 (2) in der Gruppe Z∗101 zu berechnen, also dasjenige a ∈ {0, . . . , 99} mit 3a ≡ 2 (mod 101). Verallgemeinerter Chinesischer Restsatz (Nicht beweisen!) Seien n1 , . . . , nr ∈ N \ {0} paarweise teilerfremd. Ihr Produkt sei n = n1 · . . . · nr . Die Abbildung Φ : Zn → Zn1 × . . . × Znr , x 7→ Φ(x) := (x mod n1 , . . . , x mod nr ) ist bijektiv. Weiterhin: Wenn Φ(x) = (x1 , . . . , xr ) und Φ(y) = (y1 , . . . , yr ), dann gilt (a) Φ(x +n y) = (x1 +n1 y1 , . . . , xr +nr yr ), (b) Φ(x ·n y) = (x1 ·n1 y1 , . . . , xr ·nr yr ), (c) Φ(1) = (1, . . . , 1). Mit anderen Worten: Die Gruppe (Zn , +) ist isomorph zu dem direkten Produkt der Gruppen (Zn1 , +), . . . , (Znr , +). Φ ist der (einzige) Isomorphismus der (c) erfüllt. Bemerkung: Für folgende Aufgabe wird in der Übung vermutlich keine Zeit sein. Aufgabe 4 (Quadratwurzeln der 1) Seien n1 , . . . , nr ∈ N \ {0} paarweise teilerfremd und n = n1 · . . . · nr . (a) Finden Sie ein Verfahren, um aus einem gegebenen Tupel (x1 , . . . , xr ) ∈ Zn1 × · · · × Znr ein x ∈ Zn mit Φ(x) = (x1 , . . . , xr ) zu bestimmen. Hinweis: Bestimmen Sie zunächst ei ∈ Zn mit Φ(ei ) = (0, 0, . . . , 0, 1, 0, . . . , 0). ↑ Stelle i (b) Eine Zahl x ∈ Zn heißt Quadratwurzel der 1, wenn x2 ≡ 1 (mod n). Zeigen Sie: In Zn gibt es (mindestens) 2r Quadratwurzeln der 1. (c) Bestimmen Sie alle 8 Quadratwurzeln der 1 Modulo 231.