HashfunktionenSHA-1 (Secure Hash Algorithm)
Folie 2
Gängige Hashfunktionen
MD5
128-bit Output
Seit 2004 nicht mehr stark kollisionsresistent
RIPEMD-160
160-bit Variante von MD-5
SHA-1 (Secure Hash Algorithm)
160-bit Output
NIST-Standard
Folie 4
Gängige Hashfunktionen
Nachricht 1000…000 Länge
64 Bits
L x 512 Bits
padding(1-512 Bits)
Y1 Yq YLY2
512 Bits 512 Bits 512 Bits 512 Bits
… …
KSHA KSHA KSHA KSHAIV … …
Hashwert
160 Bits
Kompressionsfunktion• macht 512+160 zu 160 Bits 160-bit Buffer
initialisiert mit “magic values”
Gegen Padding-Attacken
Folie 6
SHA-1 Kompressionsfunktion
+ + + + +
Yq (512 Bits)
Buffer Aktueller Buffer (5x32=160 Bits)
Vier R
unden a 20 Schritte
Eine Runde im Detail
Addition modulo 232
Folie 7
A EB C D
A EB C D
+
+
ft
zykl. Linksshift um 5 Bits
Wt
Kt
Ein Schritt SHA-1(4 Runden a 20 Schritte)
Rundenkonstante(je 20 Schritte gleich)
Funktion in Runde• (BC)(BD) 0..19• BCD 20..39• (BC)(BD)(CD) 40..59• BCD 60..79 Block Yq wird in 32-Bit-Blöcke Wt
zerlegt• W0..15= 16x32 Bit von Yq
• W16..79: Wt=Wt-16Wt-14Wt-8Wt-3
+
+zykl. Linksshift um 30 Bits
Folie 8
Eigenschaften
Jedes Outputbit hängt von jedem Inputbit ab
wichtig für Kollisionsresistenz
Urbild in 2160 Versuchen brute-force
Kollision in 280 Versuchen (birthday attack)
Schwächen bei der Kollisionsresistenz zeichnen sich ab
Kollisionen für SHA-1 mit weniger Runden
Folie 9
Birthday Paradox (Geburtstagsparadoxon)
Wie groß ist die Wahrscheinlichkeit, dass von 23 Personen in einem Raum zumindest 2 am selben Tag Geburtstag haben?
n18.1
Wie viele Hashwerte muss man berechnen, um mit Wahrscheinlichkeit >50% eine Kollision zu entdecken?
Bei n verschiedenen möglichen Hashwerten:
> 50%