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.
3 1. November 2007
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.
4 1. November 2007
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.
1 1. November 2007
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.
2 1. November 2007
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.
Dann auchxα+i= xβ+if ¨ur allei, damit Zykell ¨angeδ=β−α. Alsoxi+δ= xif ¨uri≥αundxi= x2i⇔2i = i + rδ≥2α⇔i = rδ≥α. F ¨urxα−1giltxα−16= xα−1+rδundxα= xα+rδ.
Das minimaleimitxi= x2ierf ¨ullti≤α+δ/2 + 1.
Das minimaleimitxi= xi+rδerf ¨ullti =α.
7 1. November 2007
Floyd’s Algorithmus
Daraus ergibt sich folgendes Vorgehen:
•Berechne(x1,x2),(x2,x4), . . .bisxi= x2i. Setzeδ′←i.
•Berechne(x0,xδ′),(x1,xδ′+1), . . . bisxi= xi+δ′.
•Dannxi−16= xi+δ′−1undxi= xi+δ′, alsoh(xi−1) = h(xi+δ′−1).
Sein = #Z.
Im Zufallsorakelmodell erfolgt eine Kollision nach1.18√
nvielen Hashwertenximit Wahrscheinlichkeit≥1/2.
Folglichα+δ≤1.18√
n. Außerdemδ′≤α+δ/2 + 1wegen der Minimalit ¨at vonδ′. Daher ergeben sich ungef ¨ahr3δ′+ 2α= O(√
n) Orakelaufrufe und konstanter Speicherbedarf.
8 1. November 2007
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.
5 1. November 2007
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
6 1. November 2007
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.
9 1. November 2007
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.
10 1. November 2007