Technische Universität Darmstadt Fachgebiet Theoretische Informatik Prof. Johannes Buchmann Dr. Juliane Krämer Einführung in die Kryptographie WS 2015/ 2016 1. Lösungsblatt — 15.10.2015 Announcement Please check regularly the following website, where we publish the exercises, the solutions, and all other relevant information: https://www.cdc.informatik.tu-darmstadt.de/cdc/studium-und-lehre/lehre/ws-15-16/ iv-einfuehrung-in-die-kryptographie The exercises will be published on the website on Tuesdays. Please print them and bring them to the tutorial. The solutions to the exercises will be published online together with the exercises of the next week. A1 Schutzziele (a) Nennen und beschreiben Sie mindestens vier Schutzziele, die man mit Kryptographie erreichen kann. Wie kann man sie erreichen? Solution: • Vertraulichkeit: Information wird nur Berechtigten zugänglich gemacht, z.B. durch Verschlüsselung. • Integrität: Bei Transport und Speicherung werden Daten nicht verändert, z.B. durch Verschlüsselung und MAC. • Authentizität (ist Teil von Integrität): Herkunft ist verifizierbar, z.B. durch MAC. • Identifikation: Identität des Kommunikationspartner ist verifizierbar, z.B. durch Digitale Signaturen. • Nichtabstreitbarkeit: Integrität und Authentizität sind Dritten gegenüber nachweisbar, z.B. durch Digitale Signaturen. (b) Beschreiben Sie ein persönliches Erlebnis in dem mindestens zwei Schutzziele eine Rolle spielen. Solution: Beispiel Online Banking: • Vertraulichkeit: Meine Zugangsdaten werden nicht abgehört, • Integrität: Das Zielkonto meiner Überweisung wird nicht verändert, • Identifikation: Ich rede mit meiner Bank. A2 Faktorisierung 1. Faktorisieren Sie die Zahl 2310. Solution: 2310 = 2 · 3 · 5 · 7 · 11 2. Faktorisieren Sie die Zahl 2048. Solution: 2048 = 211 3. Bestimmen Sie die Anzahl der Teiler von 2n , n ∈ Z>0 . Solution: 2n hat nur einen Primfaktor, nämlich die 2. Dieser teilt 2n n-mal. Damit hat 2n genau 2·(n+1) Teiler, nämlich 20 , . . . , 2n und −20 , . . . , −2n . A3 Größter gemeinsamer Teiler (ggT) 1. Zeigen Sie, dass für beliebige natürliche Zahlen a, b, c gilt: g g T (a, c) = 1 ∧ b | c ⇒ g g T (a b, c) = b Solution: Es ist klar, dass b | ab und b | c gilt. Damit gilt b | g g T (a b, c), also g g T (a b, c) = x b für ein x ∈ N. Aus x b | ab folgt dann x | a und aus x b | c folgt x | c/b | c , da c/b ∈ N. Daraus folgt x | g g T (a, c) = 1, also x = 1 und g g T (ab, c) = b. 1 2. Zeigen Sie, dass für beliebige ganze Zahlen a, b, c gilt: a | c, b | c, g g T (a, b) = 1 ⇒ a b | c Solution: Da a und b teilerfremd sind, gibt es x, y ∈ Z mit 1 = a x + b y , und daher c = ac x + bc y . Aus b | c folgt a b | ac , also ab | ac x . Analog: ab | bc y . Dann teilt a b die Summe, die c ist. A4 Euklidischer Algorithmus (a) Sei a = 119, b = 427. Berechnen Sie ggT(a, b) mit Hilfe des euklidischen Algorithmus. Solution: Es gilt ggT(119, 427) = 7. (b) Sei a = 89. Für welche der drei Werte b1 = 34, b2 = 55 b3 = 56 oder b4 = 76 benötigt der Euklidische Algorithmus die geringste Laufzeit (Anzahl von Iterationen) um g g T (a, bi ) zu berechnen? Was fällt bei der längsten Laufzeit im Algorithmus auf? Solution: Der Euklidische Algorithmus benötigt zur Berechnung von g g T (89, 34) : g g T (89, 55) : g g T (89, 56) : g g T (89, 76) : 8 9 6 5 Iterationen. Man sieht, das die Zahl der Iterationen nicht notwendig mit der Größe des zweiten Operanden wächst. Die größte Zahl der Iterationen (9) wird für die Berechnung von g g T (89, 55) benötigt. In diesem Fall sind alle Quotienten qk = 1. A5 Erweiterter Euklidischer Algorithmus Seien a, b, n ganze Zahlen. Betrachten Sie die diophantische Gleichung ax + b y = n (1) "Diophantische Gleichung” bedeutet, dass wir nur ganzzahlige Lösungen suchen. (a) Zeigen Sie, dass die Gleichung (1) genau dann eine Lösung (x, y) ∈ Z2 hat, wenn ggT(a, b) ein Teiler von n ist. Solution: Ist ggT(a, b) = d . Dann gibt es r, s ∈ Z, sodass ggT(r, s) = 1 und a = r · d , b = s · d . ⇒ Sei x 0 , y0 eine Lösung. Dann ax 0 + b y0 = n = r d x 0 + sd y0 = (r x 0 + s y0 )d → d | n ⇐ Sei d | n. Dann gibt es ein t ∈ Z mit: n = t · d . Da ggT(a, b) = d → ∃ a0 , b0 ∈ Z mit: aa0 + b b0 = d . Dann gilt: t · aa0 + t · b b0 = t · d d.h. ∃x 0 = a0 t , y0 = b0 t mit ax 0 + b y0 = t · d = n. (d) Bestimmen Sie mit dem erweiterten Euklidischen Algorithmus den ggT von 93 und 42 und stellen Sie ihn als Linearkombination der beiden Zahlen dar. Solution: gcd(93, 42) = 3 = 5 · 93 − 11 · 42 2