• Keine Ergebnisse gefunden

Floyd’s Algorithmus

N/A
N/A
Protected

Academic year: 2022

Aktie "Floyd’s Algorithmus"

Copied!
4
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Folgerung

Seih:X→Zeine Hashfunktion mit#Z= 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 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.

3 4. Mai 2004

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.

4 4. Mai 2004

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.

Berechnexi+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⇔i=rδ≥α.

F ¨urxα1giltxα16=xα1+rδundxα=xα+rδ.

1 4. Mai 2004

Floyd’s Algorithmus

Daraus ergibt sich folgendes Vorgehen:

•Berechne(x1,x2),(x2,x4), . . . bisxi=x2i. Setzeδ0←i.

•Berechne(x0,xδ0),(x1,xδ0+1), . . . bisxi=xi+δ0.

•Dannxi16=xi+δ01undh(xi1) =h(xi+δ01).

Im Zufallsorakelmodell erfolgt eine Kollision nach1.18√

nvielen Hashwertenximit Wahrscheinlichkeit≥1/2.

Folglichα,δ≤1.18√

n. Außerdemδ0≤2αwegen der Minimalit ¨at von δ0=rδ≥α. Daher ergeben sich ungef ¨ahr3.54√

nOrakelaufrufe und konstanter Speicherbedarf.

2 4. Mai 2004

(2)

Konstruktion von Hashfunktionen

Neben Einwegeigenschaft und Kollisionsresistenz sollen Hashwerte von langen Nachrichten effizient ohne großen Speicheraufwand berechnet werden k ¨onnen (Magnetband, ...).

Allgemeines Prinzip: Iterierung.

Nachricht mit Bitstring0d oder10d1und Nachrichtenl ¨ange padden, dann in geeignete Bl ¨ockemiaufteilen.

Bei der Berechnung des Hashwerts eine Zustandsvariablehi

mitf ¨uhren. Erster Zustand isth0=IV, letzter Zustandhnist Hashwert.

In jedem Schritt eine Kompressionsfunktion aufmiundhianwenden, lieferthi+1.

Ahnlich wie im CBC Mode f ¨ur Blockchiffren.¨

7 4. Mai 2004

Davies-Meyer Kompressionsfunktion

Man benutzt einen Blockchiffre, um eine Kompressionsfunktion zu erhalten.

BlockchiffreE:{0,1}k× {0,1}b→ {0,1}bmit Schl ¨ussell ¨angekund Blockl ¨angeb.

Liefert:

Kompressionsfunktion f :{0,1}k+b→ {0,1}b mit f(K||m) =E(K,m)m.

Ist nicht sehr effizient (E bietet zuviel Funktionalit ¨at). Man verwendet daher meist andere Kompressionsfunktionen.

Ansonsten gibt es noch andere Varianten. Man kann auch die Blockl ¨ange verdoppeln etc.

8 4. Mai 2004

Vergleich der Sicherheitseigenschaften

Die folgenden zwei Reduktionen sind im Standardmodell g ¨ultig.

Seih:X→Zeine Hashfunktion.

K ¨onnen wir zweite Urbilder berechnen, so k ¨onnen wir Kollisionen berechnen:

•W ¨ahlex∈X zuf ¨allig.

•Berechne ein zweites Urbildx06=xmith(x0) =h(x).

•Ausgabe vonx,x0.

Resistenz gegen Kollisionen impliziert also Resistenz gegen schwache Kollisionen.

5 4. Mai 2004

Vergleich der Sicherheitseigenschaften

Seih:X→Y eine Kompressionsfunktion mit#X≥2#Y.

K ¨onnen wir Urbilder berechnen, so k ¨onnen wir Kollisionen berechnen:

•W ¨ahlex∈X zuf ¨allig.

•Berechne ein Urbildx0vonh(x).

•Ausgabe vonx,x0, wennx6=x0. Sonst Fehler.

SeiC={h1({h(x)})|x∈X}. Die (mittlere) Erfolgswahrscheinlichkeit ist P= (1/#X)

xX

(#h1({h(x)})−1)/#h1({h(x)})

= (1/#X)

cC

xc

(#c−1)/#c= (1/#X)

cC

(#c−1)

≥(#X−#Y)/#X≥(#X−#X/2)/#X≥1/2.

Resistenz gegen Kollisionen impliziert also die Einweg-Eigenschaft.

6 4. Mai 2004

(3)

Effiziente Hashfunktionen

MD5 (Message Digest 5):

•Von Ron Rivest, 1992. Recht weit verbreitet.

•128 Bit Hashwerte, daher nicht sehr sicher.

•Dar ¨uberhinaus wurden Kollisionen der drunterliegenden Kompressionsfunktion gefunden ...

SHA-1 (Secure Hash Algorithm):

•Von der NSA.

•160 Bit Hashwerte (interne Blockgr ¨oße 512 Bit).

•Am weitesten verbreitete Hashfunktion.

•Im ISO/IEC 10118-3 und FIPS180-1 standardisiert.

11 4. Mai 2004

Effiziente Hashfunktionen

RIPEMD-160:

•Europ ¨aisches Design (K. U. Leven und BSI).

•160 Bit Hashwerte (interne Blockgr ¨oße 512 Bit).

•Im ISO/IEC 10118-3 standardisiert.

SHA-256, SHA-384, SHA-512:

•Im FIPS180-2.

•256, 384 und 512 Bit Hashwerte.

•Recht neu (2001).

12 4. Mai 2004

Merkle-Damgard Konstruktion

Hashfunktionh:{0,1}→ {0,1}naus Kompressionsfunktion bauen.

Sei f :{0,1}m→ {0,1}neine Kompressionsfunktion undr=m−n≥2.

Der Hashwert vonx∈ {0,1} wird dann wie folgt ausgerechnet:

•xhinten mit Nullen und der Bitl ¨ange vonxbin ¨ar geschrieben padden und insBl ¨ockexi∈ {0,1}rmit0≤i≤s−1aufteilen.

•h0=IV f ¨ur einen festen Initialwert.

•hi+1=f(hi||xi)f ¨ur0≤i≤s−1.

•Der Hashwert isths.

Sollte das Padding mehrere Bl ¨ocke beanspruchen, so f ¨ugen wir ein weiteres Padding an, welches die Anzahl der im vorhergehenden Padding verwendeten Bl ¨ocke enth ¨alt usw., bis das letzte Padding in einen Block paßt. Es existieren hier auch andere Varianten.

9 4. Mai 2004

Merkle-Damgard Konstruktion

Thm: F ¨ur eine kollisionsresistente Kompressionsfunktion f ist auch die durch die Merkle-Damgard erhaltene Hashfunktionh

kollisionsresistent.

Bew: Seih(x) =h(x0)mitx6=x0. Definierexi,x0i,s,s0,hi,h0iwie in der Konstruktion. Wir k ¨onnens≤s0annehmen. Es gilths=h0s0. Gilt (hsj,xsj) = (h0s0j,x0s0j)f ¨ur alle1≤ j≤s, so folgts=s0wegen dem Padding und dannx=x0im Widerspruch zur Annahme. Sei also j minimal mit1≤ j≤sund(hsj,xsj)6= (h0s0j,x0s0j). Dann gilt hsj+1=h0s0j+1und eine Kollision ist gefunden.

10 4. Mai 2004

(4)

SHA-1

•F ¨urt←0, . . . ,79:

y←ROTL5(A) +ft(B,C,D) +E+Wt+Kt. E←D,D←C,C←ROTL30(B).

B←A,A←y.

•H0←H0+A,. . .,H4←H4+E.

•AusgabeH0||. . .||H4. SHA-1:

•Eingabex∈ {0,1}.

•x←SHA-1 Padding(x).

•Schreibex=M1||. . .||MnmitMi∈ {0,1}512.

•H←67452301 EFCDAB89 98BADCFE 10325476 C3D2E1F0.

•F ¨uri←1, . . . ,n:H←f(Mi,H).

•Ausgabe vonH.

15 4. Mai 2004

SHA-1

Eingabexmuß Bitl ¨ange|x| ≤264−1haben.

SHA-1 Padding:

•Eingabex. Setzed←(447− |x|) mod 512.

•l←Bin ¨ardarstellung von|x|, wobei|l|= 64.

•y←x||1||0d||l. Ausgabey.

∨logisches Oder,∧logisches Und,¯·Negation.

80Funktionen:

fi(B,C,D) =





(B∧C)∨( ¯B∧D) f ¨ur0≤i≤19 B⊕C⊕D f ¨ur20≤i≤39 (B∧C)∨(B∧D)∨(C∧D) f ¨ur40≤i≤59 B⊕C⊕D f ¨ur60≤i≤79.

13 4. Mai 2004

SHA-1

80Konstanten:

Ki=





5A827999 f ¨ur0≤i≤19 6ED9EBA1 f ¨ur20≤i≤39 8F1BBCDC f ¨ur40≤i≤59 CA62C1D6 f ¨ur60≤i≤79.

ROTLx=zyklischer Shift umxBits nach Links.+Addition modulo232. Kompressionsfunktion f :{0,1}512× {0,1}160→ {0,1}160:

•EingabeM∈ {0,1}512,H∈ {0,1}160.

•SchreibeM=W0||. . .||W15mitWi∈ {0,1}32.

•SchreibeH=H0||. . .||H4mitHi∈ {0,1}32.

•F ¨urt←16, . . . ,79:Wt←ROTL1(Wt3⊕Wt8⊕Wt14⊕Wt16).

•A←H0,. . .,E←H4.

14 4. Mai 2004

Referenzen

ÄHNLICHE DOKUMENTE

Damit sind sie im theoretischen Sinne nicht kollisionsresistent, da ein trivialer Angriff existiert, der eine Kollision ausgibt.. Trotzdem können die besten bekannten Angriffe

Man beachte, dass die Umkehrbarkeit der Funktion E K weder gebraucht wird, um MACs zu berechnen, noch gebraucht wird, um Nachrichten mit einem MAC zu ¨ uberpr¨ ufen. F¨ ur die

Bestimmen Sie die Potentialfunktion φ des Vektorfeldes V im

l Anhand der Matrizen A und W läßt sich der kürzeste Pfad für zwei beliebige Knoten in O(m) ausgeben (m = Länge des Pfades). l

Damit sind Hashfunktionen im Zufallsorakelmodell auch kollisionsresistent, wenn gleich der Aufwand zum Finden einer Kollision wesentlich geringer ist als der, Urbilder zu berechnen..

• Umgekehrt sind ungef ¨ahr 2 k Orakelanfragen erforderlich, um eine konstante Erfolgswahrscheinlichkeit zu haben.. Folgerung: Eine Hashfunktion im Zufallsorakelmodell ist

Bestimmen welche der oben gegebenen Folgen mittels linearer Kongruenz- generatoren konstruiert ist.. Ferner Finden Sie die in der Vorlesung eingef¨uhrten Parameter a

Damit sind Hashfunktionen im Zufallsorakelmodell auch kollisionsresistent, wenn gleich der Aufwand zum Finden einer Kollision wesentlich geringer ist als der, Urbilder zu berechnen.