Effizient und signifikant
Effiziente Laufzeit und signifikante Erfolgswahrscheinlichkeit eines AlgorithmusAkann man quantitativ oder qualitativ angeben.
Quantitativ: F ¨ur eine speziell vorgelegte Situation, z.B.
effizient=Laufzeit≤240Bitops, signifikant=Erfolgswahr- scheinlichkeit≥2−40...
Qualitativ: Gemessen in der Bitl ¨angekder Eingabe vonA.
Dann effizient=Laufzeit polynomiell ink, signifikant= Erfolgswahrscheinlichkeit nicht vernachl ¨assigbar ink.
Wenn man in der Kryptographie sagt, daß es keinen inkeffizienten AngreiferAmit signifikanter Erfolgswahrscheinlichkeit gibt, dann nennt mankh ¨aufig Sicherheitsparameter.
3 31. Oktober 2008
Polynomiell und vernachl ¨assigbar
Eine Funktiong :R≥0→Rheißt polynomiell (ink), wenn es ein PolynomP∈R≥0[x]undk0∈R≥0gibt, so daß|g(k)| ≤P(k)f ¨ur alle k≥k0.
Eine Funktiong :R≥0→Rheißt vernachl ¨assigbar (ink), wenn es f ¨ur jedes PolynomQ∈R≥0[x]eink0∈R≥0gibt, so daß|g(k)| ≤1/Q(k)f ¨ur allek≥k0.
Integrit ¨at und Authentizit ¨at
Werden nicht durch Verschl ¨usselung bereitgestellt!
•Integrit ¨at Problem bei Verschl ¨usselung von nicht redundanten Daten (komprimierte Dateien, geheime Schl ¨ussel).
Idee: Geeignete kryptographische Pr ¨ufsummen mitschicken.
Davon gibt es zwei Typen:
•Manipulation Detection Codes (MDC), Hashfunktionen ohne Schl ¨ussel. Liefert Fingerprint oder Message Digest.
•Message Authentication Codes (MAC), Hashfunktionen mit Schl ¨ussel.
Hashfunktionen haben vielfache Verwendung (bei Verschl ¨usselung, Unterschriften, Pseudozufallszahlen, W ¨orterb ¨uchern ...)
1 31. Oktober 2008
Sicherheitsmerkmale von Hash Fnktn
SeienX,Y Mengen und f : X→Y. Bildwerte f (x)sollen mit einem Algorithmus effizient berechenbar sein.
Aufgaben:
1. (Urbild berechnen) Zuy∈Y einx∈X mit f (x) = ybestimmen.
2. (Zweites Urbild berechnen) Zux∈X einx′∈Xmitx′6= xund f (x) = f (x′)bestimmen.
3. (Kollision finden)x,x′∈X mitx6= x′und f (x) = f (x′)bestimmen.
Def: Eine Funktion heißt Einwegfunktion, wenn es keinen effizienten Algorithmus gibt, der Aufgabe 1 mit signifikanter Wahrscheinlichkeit l ¨ost.
Def: Eine Funktion heißt schwach kollisionsresistent
(kollisionsresistent), wenn es keinen effizienten Algorithmus gibt, der Aufgabe 2 (Aufgabe 3) mit signifikanter Wahrscheinlichkeit l ¨ost.
Zwei Anwendungen
1. Paßworte:
•In der Paßwortdatei sind nur die Hashwerte der Paßw ¨orter gespeichert.
•Beim Einloggen wird der Hashwert des eingegeben Paßworts berechnet und mit dem gespeicherten verglichen.
•Paßwortdatei soll nicht unbedingt lesegesch ¨utzt sein⇒ Hashfunktion soll Einwegfunktion sein.
•Aber: Dictionary Angriffe (m ¨ogliche Paßworte ausprobieren und Hashwerte vergleichen).
2. Unterschriften:
•Nicht das Dokument, sondern nur den Hashwert unterschreiben.
•Angreifer soll kein zweites Dokument mit dem gleichen Hashwert berechnen k ¨onnen⇒Hashfunktion soll kollisionsresistent sein.
7 31. Oktober 2008
Zufallsorakelmodell
Auch Random Oracle Model (RO). Ist theoretische Herangehensweise.
Hashfunktionen werden idealisiert als zuf ¨allige Funktionen modelliert.
•Erm ¨oglicht und vereinfacht Untersuchungen und
Sicherheitsbeweise kryptographischer Verfahren, welche Hashfunktionen verwenden.
F ¨ur in der Praxis verwendete Hashfunktionen kann man die Einwegeigenschaft oder die Kollisionsresistenz nicht beweisen.
•Hashfunktionen im RO haben diese Eigenschaften.
Man kann eine zuf ¨allige (Hash)Funktion nicht effizient als ganzes beschreiben.
•Daher Realisierung/Simulierung durch ein Orakel.
8 31. Oktober 2008
Zur ¨ uck zu Einweg- und
kollisionsresisten Funktionen
Um von Einweg- und kollisionsresistenten Funktionen im qualitativen Sinn sprechen zu k ¨onnen, betrachtet man eine Familie von
Funktionen fk: Xk→Ykundk→∞.
Es soll einen AlgorithmusAgeben, welcher Bildwerte fk(x)nach Eingabe vonk,xeffizient berechnet.
Auf der anderen Seite soll es keinen AlgorithmusBgeben, der Urbilder oder Kollisionen mit signifikanter Wahrscheinlichkeit unter Eingabe vonkf ¨ur signifikant vieleybzw.x,x′effizient berechnen kann.
Hieraus folgen beispielsweise Gr ¨oßenbedingungen anXkundYkin Abh ¨angigkeit vonk.
5 31. Oktober 2008
Hash- und Kompressionsfunktionen
Def: SeienX,Y,ZMengen mit#Z<#Y <∞und#X =∞. Eine Hashfunktion ist eine Funktionh : X→Z.
Eine Kompressionsfunktion ist eine Funktionh : Y→Z.
MeistensX ={0,1}∗,Y ={0,1}m,Z ={0,1}nmitm>n.
Sind nicht injektiv!
Wieder Forderung:
Bildwerte von Hash- und Kompressionsfunktionen sollen effizient durch Algorithmen nach Eingabe der Argumente berechnet werden k ¨onnen.
Im folgenden verstehen wir unter Hashfunktionen auch Kompressionsfunktionen.
6 31. Oktober 2008
Angriffe im Zufallsorakelmodell
Schreiben = 2k.
•Der Beitrag(1−1/n)s/nist vernachl ¨assigbar ink, unabh ¨angig vons.
•F ¨ur einen inkpolynomiellen Algorithmus mußspolynomiell sein.
Wegen(1−1/n)s≥1−s/nist1−(1−1/n)s≤s/n. Dies ist ebenfalls vernachl ¨assigbar ink.
•Damit ist die Erfolgswahrscheinlichkeit vernachl ¨assigbar, wenns nur polynomiell ist.
•Umgekehrt sind ungef ¨ahr2kOrakelanfragen erforderlich, um eine konstante Erfolgswahrscheinlichkeit zu haben.
Folgerung: Eine Hashfunktion im Zufallsorakelmodell ist eine Einwegfunktion und schwach kollisionsresistent.
11 31. Oktober 2008
Geburtstagsparadoxon
Thm: W ¨ahlen wir ausn≥216Elementenk≥1.18√
nzuf ¨allig mit Zur ¨ucklegen aus, so haben wir mit Wahrscheinlichkeit>1/2 mindestens ein Element mindestens zweimal ausgew ¨ahlt.
Bew: SeiXidas Ereignis, daß dasi-te gew ¨ahlte Element nicht mit einem der vorherigen ¨ubereinstimmt. Dann gilt
Pr(Xi|X1, . . . ,Xi−1) = 1−(i−1)/nundPr(X1, . . . ,Xk) =∏ki=1(1−(i−1)/n).
Aus1 + x≤exfolgt∏ki=1(1−(i−1)/n)≤∏ki=1e−(i−1)/n≤e−k(k−1)/(2n). F ¨ur das angegebenenundkgilte−k(k−1)/(2n)<1/2. Somit erhalten wir eine Doppelauswahl mit Wahrscheinlichkeit>1/2.
Auf der anderen Seite ergibt sich aus∏ki=1(1−(i−1)/n)
≥(1−k/n)k≥1−k2/ndie obere Schrankek2/nf ¨ur die Wahrscheinlichkeit einer Doppelauswahl.
Hashsimulation durch Orakel
Bei einer Anfrage nach dem Hashwert vonxgeht das Orakel wie folgt vor: Das Orakel ¨uberp ¨uft, obh(x)schon einmal erfragt und berechnet wurde, wenn
•ja, dann wird dieser Wert zur ¨uckgegeben.
•nein, dann wird ein zuf ¨alliger Wert zur ¨uckgegeben und alsh(x) gespeichert.
Insofern wird wirklich eine zuf ¨allige Funktionh : X→Zdefiniert.
Eine Orakelanfrage z ¨ahlt in der Laufzeit eines Algorithmus als ein Schritt (konstante Zeit). Die Anzahl der Orakelanfragen wird
¨ublicherweise angegeben und sollte polynomiell sein.
9 31. Oktober 2008
Angriffe im Zufallsorakelmodell
Seih : X→Zmit#Z = nHashfunktion.
Angriff auf Einweg-Eigenschaft vonh:
•Angreifer berechnetsHashwerte durch Anfragen an das Orakel.
•Mit Wahrscheinlichkeit(1−1/n)sist Zielwertynicht darunter.
•Mit Wahrscheinlichkeit(1−(1−1/n)s) + (1−1/n)s/nkann er das richtige Urbildxraten.
Angriff auf die schwache Kollisonsresistenz vonh:
•Ahnlich wie bei der Einweg-Eigenschaft.¨
Aufgrund des Zufallsorakelmodells gibt es auch keine Strategien, die eine bessere Erfolgswahrscheinlichkeit haben w ¨urden.
Floyd’s Algorithmus
Daraus ergibt sich folgendes Vorgehen:
•Berechne(x1,x2),(x2,x4), . . .bisxi= x2i. Setzeδ′←i.
•Berechne(x1,x1+δ′),(x2,x2+δ′), . . . bisxi= xi+δ′. Setzeα′←i.
•Dannxα′−16= xα′−1+δ′undxα′= xα′+δ′, alsoh(xα′−1) = h(xα′−1+δ′).
Sein = #Z.
Im Zufallsorakelmodell erfolgt eine Kollision nach1.18√
nvielen Hashwertenximit Wahrscheinlichkeit≥1/2. In diesem Fall daherα+δ≤1.18√
n.
Anzahl der Orakelaufrufe:3δ′+ 2α′≤3(α+δ−1) + 2α= O(√n).
Speicheraufwand:O(1).
15 31. Oktober 2008
Folgerung
Seih : X→Zeine Hashfunktion mit#Z = n = 2k.
Im Zufallsorakelmodell kann man also eine Kollision nach ca.s =√ n Anfragen an das Hashorakel mit guter Wahrscheinlichkeit finden.
Auf der anderen Seite ist diese Wahrscheinlichkeit durchs2/nnach oben beschr ¨ankt. Benutzt man weniger Orakelanfragen, nimmt die Wahrscheinlichkeit einer Kollision z ¨ugig (quadratisch) ab.
Ein inkpolynomieller Angreifer kann folglich auf eine Kollision nur mit vernachl ¨assigbarer Wahrscheinlichkeit poly(k)/2khoffen. Seine Erfolgswahrscheinlichkeit ist damit insgesamt ebenfalls
vernachl ¨assigbar.
16 31. Oktober 2008
Angriffe im Zufallsorakelmodell
Angriff auf die Kollisionsresistenz vonh:
•Angreifer berechnets≥1.18√
nHashwerte durch Anfragen an das Orakel.
•Befindet sich unter den Hashwerten eine Kollision, so wird diese ausgegeben.
Nach dem Geburtstagsparadoxon ist die Wahrscheinlichkeit hierf ¨ur>1/2. Speicherbedarf ca.√
n.
Zum Speichern der Hashwerte eine Tabelle anlegen und nach den erstenlog2(√
n)Bits der Hashwerte indizieren. Beim Suchen direkt im entsprechenden Tabellenfeld nachschauen, ob bereits Hashwert definiert bzw. das zugeh ¨origexeingetragen wurde.
⇒Hash Sort
13 31. Oktober 2008
Floyd’s Algorithmus
Speicherbedarf sehr groß. K ¨onnen auch noch besser vorgehen:
Floyd’s Algorithmus zum Finden von Zykeln.
h : X→ZHashfunktion.
AnnahmeZ⊆X,x0∈X\Z.
Definierexi+1= h(xi).
•Es gibt minimaleα<βmitxα= xβundxα−16= xβ−1. Dannxα+i6= xβ+i f ¨ur allei<0undxα+i= xβ+if ¨ur allei≥0.
•Daher Zykell ¨angeδ=β−α.
•F ¨uri≥1giltxi= x2i⇔i≥αund2i≡i modδbzw.i≡0 modδ.
⇒Das minimaleimitxi= x2ierf ¨ullti≤α+δ−1.
⇒Das minimaleimitxi= xi+rδf ¨urr≥1erf ¨ullti =α.
14 31. Oktober 2008
Folgerung
Damit sind Hashfunktionen im Zufallsorakelmodell auch kollisionsresistent, wenn gleich der Aufwand zum Finden einer Kollision wesentlich geringer ist als der, Urbilder zu berechnen.
Im Zufallsorakelmodell ergibt sich zusammenfassend:
•kBit Sicherheit bez ¨uglich der Einweg-Eigenschaft.
•Nurk/2Bit Sicherheit bez ¨uglich Kollisionsresistenz.
Von einer
”guten“ Hashfunktion fordert man daher im Standardmodell (d.h. nicht im Zufallsorakelmodell), daß Urbilder und Kollisionen nur mit Aufwand ungef ¨ahr2kbzw.2k/2berechnet werden k ¨onnen sollen.
In der Praxis fordert man zur Zeitk≥160.
17 31. Oktober 2008