Hashfunktionen SHA-1 (Secure Hash Algorithm)
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
SHA-1 im Überblick Kompressionsfunktion Gegen Padding-Attacken Zerlegen in 512-bit Blöcke Kompressionsfunktion macht 512+160 zu 160 Bits 160-bit Buffer initialisiert mit “magic values”
Gängige Hashfunktionen L x 512 Bits Gegen Padding-Attacken Nachricht 1000…000 Länge padding (1-512 Bits) 64 Bits 512 Bits 512 Bits 512 Bits 512 Bits Y1 Y2 … Yq … YL KSHA KSHA … KSHA … KSHA IV Kompressionsfunktion macht 512+160 zu 160 Bits Hashwert 160-bit Buffer initialisiert mit “magic values” 160 Bits
SHA-1 Kompressionsfunktion Aktueller Buffer (5x32=160 Bits) Aktueller Block Vier Runden a 20 Schritte Eine Runde im Detail Addition modulo 232
SHA-1 Kompressionsfunktion Buffer Aktueller Buffer (5x32=160 Bits) Yq (512 Bits) Eine Runde im Detail Vier Runden a 20 Schritte + + + + + Addition modulo 232
Ein Schritt SHA-1 (4 Runden a 20 Schritte) B C D + Funktion in Runde (BC)(BD) 0..19 BCD 20..39 (BC)(BD)(CD) 40..59 BCD 60..79 ft + zykl. Linksshift um 5 Bits Block Yq wird in 32-Bit-Blöcke Wt zerlegt W0..15= 16x32 Bit von Yq W16..79: Wt=Wt-16Wt-14Wt-8Wt-3 Wt + zykl. Linksshift um 30 Bits Rundenkonstante (je 20 Schritte gleich) Kt + A E B C D
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
Birthday Paradox (Geburtstagsparadoxon) Wie groß ist die Wahrscheinlichkeit, dass von 23 Personen in einem Raum zumindest 2 am selben Tag Geburtstag haben? > 50% Wie viele Hashwerte muss man berechnen, um mit Wahrscheinlichkeit >50% eine Kollision zu entdecken? Bei n verschiedenen möglichen Hashwerten: