Übung 11 - CDC - Technische Universität Darmstadt

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