Technische Universität Darmstadt Fachgebiet Theoretische Informatik Prof. Johannes Buchmann Thomas Wunderer Einführung in die Kryptographie WS 2016/ 2017 1. Lösungsblatt — 21.10.2016 Ankündigungen Die aktuellen Übungsblätter werden wöchentlich jeweils freitags auf der Homepage veröffentlicht, die zugehörigen Musterlösungen jeweils eine Woche später. Auf den Übungsblättern finden sich P-Aufgaben (Präsenz-Aufgaben) und H-Aufgaben (Hausaufgaben). Die PAufgaben werden in der Übung besprochen, die H-Aufgaben dienen als zusätzliche Übung zu Hause (Hausaufgaben können nicht zur Korrektur abgegeben werden). Bitte bringen Sie die Übungsblätter (ausgedruckt) in die Übungen mit, es werden keine ausgedruckten Exemplare bereit gestellt! Bitte werfen Sie regelmäßig einen Blick auf die Homepage, auf der sich die aktuellen Übungsblätter und Lösungen, sowie weitere Ankündigungen finden: https://www.cdc.informatik.tu-darmstadt.de/cdc/studium-und-lehre/lehre/ ws-16-17/iv-einfuehrung-in-die-kryptographie/ P1 Schutzziele (a) Nennen und beschreiben Sie mindestens vier Schutzziele, die man mit Kryptographie erreichen kann. Wie kann man sie erreichen? Lösung: • 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. Lösung: 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. P2 Teilbarkeit Seien a, b, c ganze Zahlen. Man schreibt für die Aussage “ a teilt b” kurz a | b. Beweisen Sie die folgenden Implikationen. Verwenden Sie die Definition: a | b genau dann wenn es ein k ∈ Z gibt, so dass b = ak ist. (a) a | b und b | c =⇒ a2 | bc . Lösung: a | b und b | c bedeutet es gibt k, l ∈ Z, so daß b = ak und c = bl = akl ist. Somit ist auch bc = a2 k2 l , also gilt a2 | bc . (b) |a| = 6 |b| =⇒ a - b oder b - a. Lösung: Wir beweisen die Kontraposition: a | b und b | a =⇒ |a| = |b|. Wir nehmen also an es gilt a | b und b | a. Dann gibt es k, l ∈ Z, so daß b = ak und a = bl ist. Hierraus folgt dass b = bkl , also kl = 1 gilt. Dies wiederum bedeutet dass k, l ∈ {±1}, da k und l ganze Zahlen sind. 1 P3 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 Lösung: 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. 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 Lösung: 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. P4 Erweiterter Euklidischer Algorithmus Seien a = 38 und b = 21. Berechnen Sie g g T (a, b) mit Hilfe des erweiterten Euklidischen Algorithmus und stellen Sie g g T (a, b) als ganzzahlige Linearkombination von a und b dar. Lösung: Die Schritte des erweiterten Euklidischen Algorithmus sind: k 0 1 2 3 4 5 rk qk 38 - 21 1 17 1 4 4 1 4 0 1 0 0 1 1 −1 −1 2 5 −9 (−1)k x k (−1)k+1 yk Also gilt g g T (a, b) = 1 und 1 = 5 · 38 − 9 · 21. P5 Euklidischer Algorithmus 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? Lösung: 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, dass 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 q k = 1. H1 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. 2 (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. Lösung: 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. Lösung: Es gilt ggT(93, 42) = 3 = 5 · 93 − 11 · 42 3