ETH Zürich, D-INFK HS 2016, 18. Januar 2017 Prof. Ueli Maurer Daniel Tschudi Diskrete Mathematik Lösung 9 9.1 Gruppenhomomorphismen Sei g ∈ G beliebig, wir zeigen direkt: d G3 G2 d G1 = ψ(eG ) ◦ ψ(g) ◦ ψ(g) ψ(eG ) = ψ(eG ) ◦ eH = ψ(eG ) ◦ ψ(g) ◦ ψ(g) ψ G.H. 9.2 G2 G3 = d = ψ(g) ◦ ψ(g) d = eH ψ(eG ∗ g) ◦ ψ(g) 2 3 3 2 Ordnung und Untergruppen a) Durch Ausprobieren findet wir: Element Ordnung 0 1 1 6 4 3 5 6 b) Wenn H1 ⊆ H2 oder H2 ⊆ H1 , dann ist H1 ∪ H2 = H1 oder H1 ∪ H2 = H2 und somit eine Untergruppe von G. Zu zeigen bleibt daher die Umkehrung. Nehmen wir an, dass die Ummkehrung nicht gilt, d.h. es gibt ein a ∈ H1 \H2 und ein b ∈ H2 \H1 . Da nach Annahme H1 ∪ H2 eine Gruppe bezüglich der Gruppenoperation ? bildet, gilt wegen Abgeschlossenheit: c = a ? b ∈ H1 ∪ H2 . Das Element c kann aber nicht in H1 liegen, da sonst b = b a ? c ∈ H1 wäre. Analog dazu ist c 6∈ H2 , da sonst a = c ? bb ∈ H2 wäre. Somit ist c 6∈ H1 ∪ H2 und daher H1 ∪ H2 nicht abgeschlossen. 9.3 Die Gruppe Z∗m a) Die Ordnung der Gruppe hZ∗36 ; i ist ϕ(36). Mit Lemma 5.12 folgt ϕ(36) = (2 − 1) · 22−1 · (3 − 1) · 32−1 = 2 · 2 · 3 = 12. Die Gruppe besteht aus allen Zahlen in Z36 , die teilerfremd zu 36 sind. Somit gilt Z∗36 = {1, 5, 7, 11, 13, 17, 19, 23, 25, 29, 31, 35}. b) Aus dem Satz von Lagrange folgt, dass für ein a ∈ Z∗11 gilt ord(a) ∈ {1, 2, 5, 10}. Falls a ein Generator von Z∗11 ist, hat a die Ordnung 10 = ϕ(11). Dies ist genau dann der Fall, wenn a2 6= 1 und a5 6= 1 gilt. Durch Ausprobieren finden wir, dass 2 ein Generator ist. Die restlichen Generatoren kann man analog finden. Alternativ verwendet man folgendes Lemma. Lemma 1. Sei g ein Generator von Z∗m , dann ist die Menge der Generatoren von Z∗m genau A = {g i | 1 ≤ i < ϕ(m) ∧ gcd(i, ϕ(m)) = 1} Beweis: Sei h ein Generator von Z∗m . Da g ein Generator ist, gibt es ein 1 ≤ i < ϕ(m) mit h = g i . Sei d = ggT(i, ϕ(m)), dann gilt h ϕ(m) d = (g i ) ϕ(m) d i = g ϕ(m) d = 1. Da aber h ein Generator ist, muss d = 1 sein. Somit ist jeder Generator in A. Sei umgekehrt h ∈ A, dann gibt es ein 1 ≤ i < ϕ(m) mit h = g i und ggT(i, ϕ(m)) = 1. Es gilt 1 = hord(h) = g i·ord(h) . Da g ein Generator ist, muss i · ord(h) ein Vielfaches von ϕ(m) sein. Da ggT(i, ϕ(m)) = 1, muss also auch ord(h) ein Vielfaches von ϕ(m) sein. Somit ist h auch ein Generator. Nach dem Lemma sind daher genau 2, 6, 7, 8 Generatoren von Z∗11 . c) Das Ziel ist einen Isomorphismus ϕ : Z∗15 → Z∗20 zu konstruieren. Wir beginnen mit folgendem Lemma. Lemma 1. Seien n und m teilerfremde Zahlen. Die Abbildung f : Znm → Zn × Zm mit f (x) = (Rn (x), Rm (x)) ist eine Bijektion. Beweis: Gemäss Lemma 4.17 gilt für x ∈ Znm , dass x ≡n Rn (x) und x ≡m Rm (x). Aus Theorem 4.20 (Chinesischer Restsatz) folgt, dass es für (a, b) ∈ Zn × Zm genau ein x ∈ Znm gibt mit x ≡n a und x ≡m b. Also ist f eine Bijektion. Weiter gilt folgendes Lemma Lemma 2. Seien n und m ganze Zahlen. Für a ∈ Z gilt ggT(a, nm) = 1 =⇒ ggT(a, n) = 1 ∧ ggT(a, m) = 1 Beweis: Seien ggT(a, n) = d, ggT(a, m) = e, dann gilt d | n und e | m. Damit aber auch d | nm und e | nm. In anderen Worten sind e und d gemeinsame Teiler von a und nm. Da aber ggT(a, nm) = 1, gilt also d = e = 1. Damit können wir zeigen, dass es für teilerfremde n, m einen Isomorphismus zwischen Z∗nm und Z∗n × Z∗m gibt. Lemma 3. Seien n und m teilerfremde Zahlen. Die Abbildung f : Z∗nm → Z∗n × Z∗m mit f (x) = (Rn (x), Rm (x)) ist ein Isomorphismus. Beweis: Wir zeigen zuerst, dass f wohldefiniert ist, d.h. dass f (x) ∈ Z∗n × Z∗m für alle x ∈ Z∗nm gilt. Sei x ∈ Z∗nm , dann ist ggT(x, nm) = 1. Mit Lemma 2. folgt ggT(x, n) = 1 und ggT(x, m) = 1. Nach Lemma 4.2 gilt somit ggT(Rn (x), n) = 1 und ggT(Rm (x), m) = 1. Daraus folgt f (x) ∈ Z∗n × Z∗m . Nun zeigen wir, dass f bijektiv ist. Nach Lemma Lemma 1., ist f injektiv und damit |f (Z∗nm )| = |Z∗nm |. Aus der Wohldefiniertheit folgt f (Z∗nm ) ⊆ Z∗n × Z∗m . Da nach Lemma 5.12 |Z∗nm | = |Z∗n × Z∗m |, folgt f (Z∗nm ) = Z∗n × Z∗m . Also ist f auch surjektiv. Es verbleibt zu zeigen, dass f ein Homomorphismus ist. Seien a, b ∈ Z∗nm , dann gilt mit Lemma 4.18 Lem 4.18 f (a b) = (Rn (a b), Rm (a b)) = Rn (Rn (a)Rn (b)), Rm (Rm (a)Rm (b)) = f (a) f (b). Aus Lemma 3. folgt Z∗15 ' Z∗3 × Z∗5 und Z∗20 ' Z∗4 × Z∗5 . Insbesondere gibt es einen Isomorphismus α : Z∗15 → Z∗3 × Z∗5 mit α(a) = (R3 (a), R5 (a)) und einen Isomorphismus ist γ : Z∗4 × Z∗5 → Z∗20 mit γ −1 (b) = (R4 (b), R5 (b)). Wir müssen also noch einen Isomorphismus zwischen Z∗3 × Z∗5 und Z∗4 × Z∗5 finden. Lemma 4. Die Abbildung g : Z∗3 → Z∗4 mit g(1) = 1 und g(2) = 3 ist ein Isomorphismus. Beweis: Beide Gruppen haben Ordnung 2. Wir bemerken, dass die Abbildung g daher bijektiv ist. Es gilt g(1 1) = 1 = g(1) g(1), g(2 1) = 3 = g(2) g(1), g(1 2) = 3 = g(1) g(2) und g(2 2) = 1 = g(2) g(2). Die Abbildung ist also auch ein Homomorphismus. Mit Lemma 4. folgt, dass β : Z∗3 × Z∗5 → Z∗4 × Z∗5 mit β (a, b) = g(a), b ein Isomorphismus ist. Es gilt also Z∗15 ' Z∗3 × Z∗5 ' Z∗4 × Z∗5 ' Z∗20 . Wir können den Isomorphismus ϕ : Z∗15 → Z∗20 als die Komposition der Isomorphismen α, β, γ schreiben, d.h. ϕ = γ ◦ β ◦ α. Es gilt zum Beispiel ϕ(11) = γ(β(α(11))) = γ(β((2, 1))) = γ((3, 1)) = 11. Alternativ kann man auch einen Isomorphismus ψ durch Ausprobieren finden. Dann muss man aber (mühsam) zeigen, dass φ tatsächlich ein Isomorphismus ist. 9.4 Diffie-Hellman Revisited a) Sei g ∈ hZn ; ⊕i der Erzeuger, den Alice und Bob als Basis verwenden. Für von Alice beziehungsweise Bob zufällig gewählte xA , xB ∈ {0, . . . , n − 1} werden Rn (g · xA ) beziehungsweise Rn (g ·xB ) gesendet. Der gemeinsame Schlüssel, den beide am Ende berechnen, ist kAB = Rn (g · xA · xB ). Nach Beispiel 5.26 gilt dann ggT(g, n) = 1. Daher kann Eve nach Abschnitt 4.5.3 mit dem erweiterten euklidischen Algorithmus effizient ein a ∈ Zn berechnen, so dass Rn (a · g) = 1. Damit kann sie dann aus Rn (g · xA ) und Rn (g · xB ) unter Verwendung von Lemma 4.18 wie folgt auch kAB berechnen: kAB = Rn (g · xA · xB ) = Rn (g · xA · (ag) · xB ) = Rn (Rn (g · xA ) · Rn (a · g · xB )) = Rn (Rn (g · xA ) · Rn (Rn (a) · Rn (g · xB ))) b) Nein, Bobs Folgerung ist nicht richtig. Auch wenn zwei Gruppen die gleiche Struktur haben, lässt sich eine bestimmte Operation in einer Gruppe möglicherweise effizienter berechnen als in der anderen. Es ist auch nicht unbedingt möglich, zuerst den Isomorphismus anzuwenden, dann das Problem in der Gruppe hZn ; ⊕i zu lösen und danach das Inverse des Isomomorphismus anzuwenden, um eine Lösung für das ursprüngliche Problem zu erhalten. Es existiert zwar ein Isomorphismus zwischen diesen Gruppen und das beschriebene Vorgehen liefert eine korrekte Lösung, jedoch ist nicht klar, ob man diesen Isomorphismus und dessen Inverses effizient berechnen kann. Betrachte zum Beispiel eine Gruppe G = hgi von Ordnung n. Ein Isomorphismus von G nach hZn ; ⊕i ist φ : G → Zn , g i 7→ i. Die Berechnung von φ entspricht also gerade dem Lösen des diskreten Logarithmus-Problems. 9.5 RSA-Attacke Sind n1 , n2 und n3 nicht paarweise teilerfremd, kann der Angreifer durch Berechnen der grössten gemeinsamen Teiler einen nichttrivialen Faktor eines der ni finden. Dann kann er also dieses ni faktorisieren und analog zur Schlüsselerzeugung den zugehörigen privaten Schlüssel berechnen und damit ci entschlüsseln. Nehmen wir nun an, n1 , n2 und n3 sind paarweise teilerfremd. Mit dem chinesischen Restsatz kann der Angreifer dann folgendes System von Kongruenzen modulo N := n1 · n2 · n3 effizient lösen: x ≡ c1 (mod n1 ) x ≡ c2 (mod n2 ) x ≡ c3 (mod n3 ) Da ci ≡ m3 (mod ni ) gilt, erfüllt m3 diese Kongruenzen. Weil m < ni für i ∈ {1, 2, 3}, ist m3 < n1 · n2 · n3 = N . Nach dem chinesischen Restsatz gibt es genau eine Lösung x dieser Kongruenzen mit 0 ≤ x < N . Daher führt die Berechnung gemäss des chinesischen Restsatzes zu x = m3 . Um m zu erhalten, muss also nur die Kubikwurzel von x in Z berechnet werden, was effizient möglich ist. Hinweis: Diese Attacke ist natürlich auch für e > 3 möglich, jedoch ist es für sehr grosse e unwahrscheinlich, dass ein Angreifer e verschiedene Chiffrate der gleichen Nachricht erhält. 9.6 Elementare Eigenschaften von Ringen a) Es gilt (−a)b + ab Distrib. = (−a + a)b Def. Inverse = 0b Lemma 5.17 (i) = 0. (1 Punkt) Das heisst, (−a)b ist bezüglich + ein Inverses von ab. Per Definition ist −(ab) bezüglich + ein Inverses von ab. Nach Lemma 5.2 gilt also (−a)b = −(ab). (1 Punkt) b) Per Definition ist ab ein Inverses von −ab, d.h. −(−ab) = ab. Wir bemerken, dass analog zu a) auch a(−b) = −(ab) gilt, da a(−b) + ab Distrib. = a(−b + b) Def. Inverse = a0 (1 Punkt) Lemma 5.17 (i) = 0. (1 Punkt) Damit folgt a) (−a)(−b) = −(a(−b)) a) Bem. = −(−ab) Def. Inverse = ab. (1 Punkt) Man kann die Aussage auch ohne die Bemerkung a(−b) = −(ab) beweisen, da a) Distrib. (−a)(−b) + (−ab) = (−a)(−b) + (−a)b = (−a)(−b + b) Def. Inverse = (−a)0 Lemma 5.17 (i) = 0. c) Wir zeigen die Implikation indirekt, d.h. wir zeigen: Gilt 1 = 0, so enthält R nur ein Element. Wir nehmen also an, es gilt 1 = 0. Sei nun a ∈ R. Dann gilt a=a·1=a·0 Lemma 5.17 (i) Es gilt also a = 0 für alle a ∈ R, d.h R = {0}. = 0. (2 Punkte)