Technische Universität Darmstadt Einführung in die Kryptographie Fachgebiet Theoretische Informatik Prof. Johannes Buchmann Thomas Wunderer WS 2016/ 2017 11. Übungsblatt — 13.01.2017 Ankündigungen Die Evaluierung zur Vorlesung und Übung findet am 18.01.2017 am Ende der Vorlesung statt. P1 Hashfunktionen und Kompressionsfunktionen 1. Was ist eine Hashfunktion? 2. Was ist eine Kompressionsfunktion? 3. Was ist eine Einwegfunktion? 4. Was ist eine Kollision? 5. Besitzen Hash- und Kompressionsfunktionen Kollisionen? Warum (nicht)? 6. Was bedeutet es wenn wir sagen, dass eine Hashfunktion schwach bzw. stark kollisionsresistent ist? 7. Welche kryptographischen Schutzziele können mit Hashfunktionen erreicht werden? P2 Hashfunktionen Sei f : R → R, x 7→ x − bxc. Dabei ist b·c die sogenannte floor function („abrunden“), die einer reellen Zahl x die größte p ganze Zahl zuordnet, die kleiner oder gleich x ist. (Beispielsweise gilt b 7c = 2.) Betrachte die Hashfunktion p h : N≥0 → N≥0 , k 7→ b10 · f ( 3k)c. 1. Was ist die Bildmenge von h, d.h. welche Funktionswerte kann h(k) annehmen? 2. Wieviele Funktionswerte von h muss man höchstens untersuchen um sicher eine Kollision zu finden? 3. Geben Sie eine Kollision von h an. P3 Hashfunktionen aus Kompressionsfunktionen Es seien die folgenden zwei Verschlüsselungsverfahren gegeben: 1. Klartext- und Schlüsseltextraum sowie Schlüsselraum seien {0, 1}4 . Die Verschlüsselungsfunktion ist XOR: (a) Ek (x) = k ⊕ x. 2. Klartext- und Schlüsseltextraum sowie Schlüsselraum seien wie in 1. Die Verschlüsselungsfunktion ist als Exponentiation bzw. Multiplikation P3 zum Modulus 17 definiert. Zu diesem Zweck identifizieren wir einen Bitstring (a3 . . . a0 ) mit der Zahl 1 + i=0 ai · 2i , um aus Klartexten und Schlüsseln ganze Zahlen zu machen. (b) Ek (x) = x k mod 17. (c) Ek (x) = x · k mod 17. 1 Auf der Grundlage dieser beiden Verschlüsselungsverfahren definieren wir jetzt die Kompressionsfunktionen (b) g1 (k||x) = g2 (k||x) = g3 (k||x) = Ek (x) ⊕ k, (c) (a) Ek (Ek (x)), (b) (c) Ek (x) ⊕ Ek (x). (a) Finden Sie Kollisionen für alle drei Kompressionsfunktionen. (b) Wir bilden die Hashfunktion h nach dem in der Vorlesung vorgestellten Verfahren aus der Kompressionsfunktion (a) (a) g4 (k||x) = Ek (x) mit Ek (x) wie oben definiert. Bestimmen Sie den Hashwert der Nachricht m = 10101101011. P4 Hashfunktionen Wir betrachten die folgenden Funktionen h1 , h2 und h3 : h1 : N → R, h1 (n) = 1000 · n n −b c . 1000 1000 Hierbei ist b·c die Floor-Funktion, die jeder reellen Zahl r die größte ganze Zahl z mit z ≤ r zuordnet. h2 : N → R, h2 (n) = 2n . Die letzte Funktion ist gegeben durch h3 : N → R, n+1 h3 (n) = h b c . 2 Hierfür sei h : N → S ⊂ R eine stark kollisionsresistente surjektive Einwegfunktion, wobei S eine endliche Menge ist. Beantworten Sie für die Funktionen h1 , h2 und h3 jeweils folgende Fragen und begründen Sie Ihre Antwort. 1. Ist die Menge der möglichen Funktionswerte der Funktion endlich? Falls ja, geben Sie diese Menge an, falls nein, begründen Sie dies. 2. Ist die Funktion eine Einwegfunktion? Falls ja, begründen Sie dies. Falls nein, geben Sie eine effizient berechenbare Funktion an, die jedem möglichen Funktionswert der Funktion ein korrektes Urbild zuordnet. 3. Ist die Funktion stark kollisionsresistent? Falls ja, begründen Sie dies. Falls nein, geben Sie eine Kollision an. Hinweis: Die Eigenschaften “starke Kollisionsresistenz” und “Einwegfunktion” wurden in der Vorlesung nur für HashFunktionen definiert. Wir übernehmen diese Definitionen hier für Funktionen, die auf N definiert sind und reelle Funktionswerte haben. Die Verwendung dieser Begriffe bedeutet also nicht, dass sämtliche hier verwendete Funktionen Hash-Funktionen sind. 2