01.03.2014 Aufrufe

Lösung 11 - CDC - Technische Universität Darmstadt

Lösung 11 - CDC - Technische Universität Darmstadt

Lösung 11 - CDC - Technische Universität Darmstadt

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

TECHNISCHE UNIVERSITÄT DARMSTADT<br />

FACHGEBIET THEORETISCHE INFORMATIK<br />

PROF. JOHANNES BUCHMANN<br />

FATEME SHIRAZI<br />

Einführung in die<br />

Kryptographie<br />

WS 2013/2014<br />

<strong>11</strong>. <strong>Lösung</strong>sblatt — 17.01.2014<br />

P1 Hashfunktionen<br />

Sei f : → , x → x − ⌊x⌋. Dabei ist ⌊·⌋ die sogenannte floor function, die einer reellen Zahl x die eindeutig bestimmte<br />

ganze Zahl z mit 0 ≤ x − z < 1 zuordnet, z.B. ⌊ 7⌋ = 2. Betrachten Sie die Hashfunktion<br />

h : {0, 1} ∗ → {0, 1} ∗ , k → ⌊10 · f (k · 3)⌋<br />

hierbei werden die Bitstrings mit den durch sie dargestellten nicht negativen ganzen Zahlen identifiziert.<br />

(a) Bestimmen Sie das Bild von h, d.h. alle Funktionswerte, die h(k) annehmen kann.<br />

<strong>Lösung</strong>. Das Bild der Funktion f liegt in jedem Fall im halboffenen Intervall [0, 1[. Somit liegen die Werte der<br />

Funktion x → 10f (x) in [0, 10[. Daraus folgt, dass die Bildmenge von h die Menge {0, 1, 2, . . . , 9} ist.<br />

(b) Wie viele Funktionswerte h(k) müssen Sie höchstens untersuchen um eine Kollision zu finden?<br />

Kollision von h an.<br />

Geben Sie eine<br />

<strong>Lösung</strong>. Da die Anzahl der Elemente von der Bildmenge 10 ist, muss bei <strong>11</strong> verschiedenen Auswertungen von h<br />

mindestens eine Kollision auftreten. Probiert man systematisch die Werte 0, 1, . . . durch und speichert die Hashwerte,<br />

so tritt erstmalig bei h(3) = h(7) = 1 eine Kollision auf.<br />

P2 EC Karten PINs<br />

Angenommen, die 4 stelligen PINs für EC Karten werden unabhängig gleichverteilt gewählt. Wie viele Personen müssen<br />

sich versammeln, damit die Wahrscheinlichkeit, dass mindestens 2 von ihnen die gleiche PIN haben, mindestens 1 ist? 2<br />

<br />

<strong>Lösung</strong>. Wir wenden das Geburtstagsparadoxon an. Es ist n = 10 4 . Wir brauchen also k ≥ (1+ 1 + 8 ∗ 10 4 ∗ ln(2))/2 ≈<br />

<strong>11</strong>8, 2. Somit müssen sich <strong>11</strong>9 Personen versammeln, damit die Wahrscheinlichkeit, dass mindestens 2 von ihnen die<br />

gleiche PIN haben, mindestens 1 ist. 2<br />

P3 Hashfunktionen aus Kompressionsfunktionen<br />

(a) Wir bilden die Hashfunktion h nach dem in der Vorlesung vorgestellten Verfahren aus der Kompressionsfunktion<br />

g : {0, 1} 8 → {0, 1} 4 , g(k||x) = k ⊕ x. Bestimmen Sie den Hashwert der Nachricht<br />

m = 1010<strong>11</strong>010<strong>11</strong>.<br />

<strong>Lösung</strong>. Wir stellen zunächst fest, dass g : {0, 1} 8 → {0, 1} 4 , und somit der Parameter r = 4 ist. Um aus m<br />

einen Bitstring zu erhalten, dessen Länge von r geteilt wird, ergänzen wir m von links mit einer Null. An diesem<br />

String wird 0000 angehängt. Die Originallänge von m ist <strong>11</strong> ∈ und hat die Binärdarstellung 10<strong>11</strong>, welche wir zu<br />

100<strong>11</strong>0<strong>11</strong> ergänzen. Wir erhalten somit den Bitstring 01010<strong>11</strong>010<strong>11</strong>0000100<strong>11</strong>0<strong>11</strong>. Wir setzen nun H 0 = 0000<br />

und bestimmen die H i nacheinander:<br />

Damit ist h(m) = 1010.<br />

i H i<br />

1 0101<br />

2 00<strong>11</strong><br />

3 1000<br />

4 1000<br />

5 0001<br />

6 1010<br />

1


(b) Ist die Hashfunktion von (a) Kollisionresistenz? Begründen Sie Ihre Antwort.<br />

<strong>Lösung</strong>. Nein, eine sichere Hashfunktion muss mindestens 160 Bit lang sein und diese Hashfunktion ist nur 4 Bit<br />

lang.<br />

H1 Konstruktion von Hashfunktionen<br />

Erläutern Sie die Konstruktion einer Hashfunktion aus einer Kompressionsfunktion für r = 1.<br />

<strong>Lösung</strong>. Wir können hier z.B. eine neue Kompressionsfunktion g ′ konstruieren mit r = 2, indem wir die Kompressionsfunktion<br />

g mit r = 1 mehrfach anwenden. Angenommen die Funktion g : {0, 1} n+1 → {0, 1} n bildet Eingaben<br />

x = (x 1 . . . x n+1 ) auf Ausgaben y = (y 1 . . . y n ) ab. Wir konstruieren eine Kompressionsfunktion g ′ : {0, 1} n+2 → {0, 1} n<br />

mit g ′ (x) = g(g(x 1 . . . x n+1 )||x n+2 ). Somit können wir auf die Konstruktion für r = 2 zurückgreifen.<br />

Es bleibt zu zeigen, dass g ′ ebenfalls kollisionsresistent ist. Angenommen es gibt x, x ′ mit x ≠ x ′ sodass g ′ (x) = g ′ (x ′ )<br />

ist. Dann ist g(g(x 1 . . . x n+1 )||x n+2 ) = g(g(x ′ 1 . . . x ′ n+1 )||x ′ n+2 ). Ist x n+2 ≠ x ′ n+2<br />

, dann haben wir eine Kollision von g bei<br />

ihrer 2. Anwendung. Ist x n+2 = x ′ n+2<br />

, dann unterscheiden wir zwei Fälle:<br />

1. Ist g(x 1 . . . x n+1 ) ≠ g(x ′ 1 . . . x ′ n+1<br />

), dann haben wir eine Kollision von g bei ihrer 2. Anwendung.<br />

2. Ist g(x 1 . . . x n+1 ) = g(x ′ 1 . . . x ′ n+1<br />

), dann haben wir eine Kollision von g bei ihrer 1. Anwendung.<br />

In allen Fällen haben wir einen Widerspruch zur Kollisionsresistenz von g. Gibt es also in g ′ eine Kollision, so muss es<br />

diese Kollision ebenfalls schon in der 1. oder 2. Anwendung von g gegeben haben. Daher ist g ′ auch kollisionsresistent.<br />

2

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!