Universität Karlsruhe (TH) Lösungen zu Übungsblatt 1 Institut für Kryptographie und Sicherheit Willi Geiselmann (Vorlesung) Matthias Gabel (Übung) Public Key Kryptographie für Informationswirte Wintersemester 2009/2010 Übung vom 30. 10. 2009, SR 236, Geb. 50.34 Aufgabe 1: Gruppen Diese Aufgabe dient als Wiederholung einiger Mathematikkenntnisse aus dem Grundstudium. (a) Definiere den Begriff Gruppe. (b) Handelt es sich hier um Gruppen? · (R, ·) · (R+ , ·) · (R \ 0, ·) · (Z∗4 , ·) = ({1, 2, 3}, ·) · (Z∗5 , ·) = ({1, 2, 3, 4}, ·) (c) Eine Gruppe (G, ·) heißt kommutativ (oder abelsch), falls gilt ∀g, h ∈ G : g · h = h · g. Welche der obigen Gruppen sind kommutativ? (d) Eine Gruppe (G, ·) heißt zyklisch, wenn es ein primitives Element g ∈ G gibt, d.h. hgi := {g 0 , g ±1 , g ±2 , . . .} = G. Welche der obigen Gruppen sind zyklisch? (e) Zeige: Jede zyklische Gruppe ist kommutativ. Lösung zu Aufgabe 1: (a) Es Sei G eine Menge und · eine Funktion, die zwei Elementen aus G etwas zuordnet. (G, ·) heißt Gruppe :⇔ 1. Abgeschlossenheit: ∀g, h ∈ G : g · h ∈ G ∧ 2. Assoziativität: ∀g, h, i ∈ G : (g · h) · i = g · (h · i) ∧ 3. Neutrales Element: ∃e ∈ G : ∀g ∈ G : e · g = g · e = g ∧ 4. Inverses Element: ∀g ∈ G : ∃h ∈ G : h · g = g · h = e (b) · (R, ·) ist keine Gruppe, da 4. nicht erfüllt ist (0 ist nicht invertierbar). · (R+ , ·) ist eine Gruppe. · (R \ {0}, ·) ist eine Gruppe. · (Z∗4 , ·) ist keine Gruppe, da 2 nicht invertierbar ist (somit ist wiederrum 4. verletzt). · (Z∗5 , ·) ist eine Gruppe. (c) Alle der drei obigen Gruppen sind kommutativ. (d) Nur (Z∗5 , ·) ist zyklisch und wird von 2 oder 3 erzeugt. (e) Seien g ein Erzeuger von G und g1 , g2 zwei beliebige Elemente aus G. Dann existieren ganze Zahlen e1 , e2 , sodass g1 = g e1 und g2 = g e2 . Somit folgt mit Hilfe des Assoziativgesetzes g1 · g2 = g e1 · g e2 = g e1 +e2 = g e2 +e1 = g e2 · g e1 = g2 · g1 . Also ist G kommutativ. Aufgabe 2: Diskrete Logarithmen Es sei p eine Primzahl und Zp = Z/pZ = {0, 1, . . . , p − 1} der Körper der ganzen Zahlen modulo p. Es werden also alle Kongruenzen modulo p ausgewertet. Zum Beispiel ist 42 ≡ 25 ≡ 8 mod 17. (a) Finde in der multiplikativen Gruppe Z∗17 des Körpers Z17 ein primitives Element g, d.h. g i 6≡ 1 für i = 1, . . . , 15 und g 16 ≡ 1. (b) Betrachte nun 3 als primitives Element von Z∗17 . Berechne in Z∗17 den diskreten Logarithmus log3 14 von 14 zur Basis 3, d.h. ein x ∈ {1, . . . , 16} mit 3x ≡ 14 mod 17. Lösung zu Aufgabe 2: Alle Berechnungen werden modulo 17 ausgeführt: (a) Teste, ob 2 primitives Element ist: i 2i 1 2 2 4 3 8 4 16 5 15 6 13 7 9 8 1 (9) (2) (10) (4) (11) (8) (12) (16) (13) (15) (14) (13) (15) (9) (16) (1) 2 ist also nicht primitiv (29 ≡ 21 ≡ 2), die von 2 erzeugte Untergruppe hat nur die Ordnung 8|16. Diskrete Logarithmen sind in dieser Untergruppe entweder nicht eindeutig (36 ≡ 314 ≡ 13) oder nicht bestimmt (log2 7). Teste, ob 3 primitives Element ist: i 3i 1 3 2 9 3 10 4 13 5 5 6 15 7 11 8 16 9 14 10 8 11 7 12 4 13 12 14 2 15 6 16 1 3 ist also primitives Element, da die von 3 erzeugte Untergruppe ganz Z17 ist. (b) In obiger Tabelle läßt sich log3 14 ≡ 9 mod 17 ablesen. Es gilt 39 ≡ 14 mod 17. Aufgabe 3: Erweiterter Euklidischer Algorithmus Der nachstehend angegebene erweiterte Euklidische Algorithmus erlaubt es, zu gegebenen ganzen Zahlen a, b ∈ Z nicht nur deren größten gemeinsamen Teiler g zu berechnen, sondern auch ganze Zahlen u, v ∈ Z mit u · a + v · b = g anzugeben: Eingabe: (a, b) ∈ Z2 Ausgabe:(u, v, g) ∈ Z3 mit u · a + v · b = g = ggT(a, b) (g, u, v, g 0 , u0 , v 0 ) ← (a, 1, 0, b, 0, 1) while g 0 6= 0: q ← g div g 0 (g, u, v, g 0 , u0 , v 0 ) ← (g 0 , u0 , v 0 , g − q · g 0 , u − q · u0 , v − q · v 0 ) return(u, v, g) (a) Schreibe 5 als Linearkombination von 35 und 45. (b) Berechne das multiplikative Inverse 41−1 von 41 im Körper Z101 = Z/101Z. Lösung zu Aufgabe 3: (a) Wende zuerste 45 = 1 · 35 = 3 · 10 = 2 · den 35 10 5 Euklidischen Algorithmus zur Berechnung des ggTs an: + 10 + 5 + 0 Setze dann den ggT 5 schrittweise zusammen: 5 = 1 · 35 − 3 · 10 = 1 · 35 − 3 · (45 − 1 · 35) = −3 · 45 + 4 · 35 (b) Berechne 101 = 41 = 19 = 3 = zunächst ggT(41,101): 2 · 41 + 19 2 · 19 + 3 6 · 3 + 1 3 · 1 + 0 Setze dann wie in (a) den ggT 1 schrittweise zusammen: 1 = 1 · 19 − 6 · 3 = 1 · 19 − 6 · (41 − 2 · 19) = 13 · 19 − 6 · 41 = 13 · (101 − 2 · 41) − 6 · 41 = 13 · 101 − 32 · 41 Reduziere nun die Gleichung 1 = 13 · 101 − 32 · 41 modulo 101: 1 ≡ 0 − 32 · 41 ≡ 69 · 41 mod 101 ⇒ 69 ≡ 41−1 mod 101 Damit ist 69 das multiplikative Inverse von 41 in Z101 .