Ruhr Universitt Bochum Fakultt fr Mathematik Informationssicherheit und
Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Wie sicher sind Hashfunktionen? Magnus Daum Lehrstuhl für Kryptologie und IT-Sicherheit Fakultät für Mathematik 19. 08. 2004 Ruhr-Universität Bochum Magnus Daum - Wie sicher sind Hashfunktionen?
Überblick Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Kryptographische Hashfunktionen • Designprinzipien und allgemeine Attacken – Geburtstagsattacke • Konkrete Beispiele – Hashfunktionen der MD 4 -Familie – Spezielle Attacken • Dobbertins Attacke auf MD 4, MD 5, RIPEMD • Chabaud/Joux Attacke auf SHA-0 – „Breaking News“ • Zusammenfassung und Ausblick 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 2
Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Kryptographische Hashfunktionen 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 3
Was ist eine Hashfunktion? Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • to hash (engl. ) = (zer)hacken, klein schneiden • Hashfunktion: – Komprimiert Information beliebiger Länge auf einen Wert fester Länge („Fingerabdruck“) – Effizient berechenbar • Kryptographische Anwendung: Sicherung von Integrität/Authenzität, z. B. – Digitale Signaturen – Speicherung von Passwörtern –… 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 4
Anforderungen an kryptographische Hashfunktionen Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • preimage-resistance: „Gegeben Y, finde X mit h(X)=Y“ ist praktisch schwierig • 2 nd-preimage-resistance: „Gegeben X, finde X‘ X mit h(X‘)=h(X)“ ist praktisch schwierig • collision-resistance: „Finde X‘ X mit h(X‘)=h(X)“ ist praktisch schwierig 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 5
Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Allgemeine Attacken und Designprinzipien 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 6
Geburtstagsattacke Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • „Geburtstagsparadoxon“: Die Wahrscheinlichkeit, dass in einer Gruppe von mindestens 23 Personen zwei Personen am gleichen Tag Geburtstag haben, ist größer als ½. • „Verallgemeinertes Geburtstagsparadoxon“: Die Wahrscheinlichkeit, dass beim Ziehen von Objekten aus einer Menge von t Objekten (mit Zurücklegen) ein Objekt zweimal gezogen wird, ist größer als ½. 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 7
Geburtstagsattacke Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Angriff auf die Kollisionsresistenz • Länge des Hashwertes: n Bits è 2 n verschiedene Hashwerte möglich è Erzeugen von Hashwerten zu ca. 2 n/2 verschiedenen Nachrichten liefert mit hoher Wahrscheinlichkeit eine Kollision 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 8
Geburtstagsattacke Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • praktisch relevant? Ja! • Yuval (1979): – Nimm 2 Nachrichten (eine harmlose und eine betrügerische) und erzeuge 2 n/2 inhaltlich gleiche Variationen von jeder, z. B. durch • Einfügen zusätzlicher Leer- bzw. Satzzeichen • Verwendung synonymer Ausdrücke • … – Dann auch Kollision zwischen einer harmlosen und einer betrügerischen Nachricht wahrscheinlich 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 9
Geburtstagsattacke Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Abhilfe: – Wähle die Hashwertlänge so groß, dass Attacke zu aufwendig ist – Heutzutage mindestens n=160, besser größer • Einige ältere Funktionen (z. B. MD 5) liefern allerdings nur Hashwerte einer Länge von 128 Bits 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 10
Allgemeiner Aufbau einer Hashfunktion Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Iterierte Kompressionsfunktionen Nachricht Zwischenhashwert Kollisionsresistenz der Kompressionsfunktion 19. 08. 2004 Hashwert Kollisionsresistenz der Hashfunktion Magnus Daum - Wie sicher sind Hashfunktionen? 11
Allgemeine Designprinzipien Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Reduktion auf Kompressionsfunktionen • Genügend große Hashwertlänge (gegen die Geburtstagsattacke) • Verwendung von Feedback (um partielle Umkehrbarkeit zu verhindern) 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 12
Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Konkrete Beispiele 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 13
Ruhr. Universität Bochum Konkrete Beispiele Fakultät für Mathematik Informationssicherheit und Kryptologie • Für die praktische Anwendung interessant: – Hashfunktionen, die auf Blockchiffren basieren • Matyas-Meyer-Oseas, Davies-Meyer, Miyaguchi-Preneel • MDC-2, MDC-4 – „speziell konstruierte“ Hashfunktionen: • • • 19. 08. 2004 MD 4, MD 5 RIPEMD, RIPEMD-{128, 160, 256, 320} SHA-{0, 1, 224, 256, 384, 512} Tiger Whirlpool MD 4 -Familie Magnus Daum - Wie sicher sind Hashfunktionen? 14
Ruhr. Universität Bochum Überblick MD 4 -Familie Fakultät für Mathematik Informationssicherheit und Kryptologie Ext. MD 4 SHA-0 (Rivest ‚‘ 90) (NIST, ’ 93) Chabaud/Joux ‚’ 98 Dobbertin ‚’ 95/96 RIPEMD MD 5 (RIPE ‘ 88 -‘ 92) (Rivest ‚‘ 92) RIPEMD-128 RIPEMD-160 RIPEMD-256 RIPEMD-320 (Dobbertin, Bosselaers, Preneel ‘ 96) 19. 08. 2004 SHA-1 (NIST, ’ 95) SHA-224 SHA-256 SHA-384 SHA-512 (NIST, ’ 02/04) Magnus Daum - Wie sicher sind Hashfunktionen? 15
Struktur der Kompressionsfunktionen der MD 4 -Familie: Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie IV / Zw. -Hashwert Schrittoperation Nachrichtenblock Nachrichtenexpansion 19. 08. 2004 Ausgabe Magnus Daum - Wie sicher sind Hashfunktionen? 16
Expansionsabbildungen Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie SHA MD / RIPEMD • rundenweise Permutationen der Mi • rekursive Definition mit den Mi als Anfangswerten z. B. SHA-1: 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 17
Schrittoperationen Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie MD 5: SHA-0/1: • Nur 1 Register pro Schritt neu berechnet • Mischung von verschiedenartigen Operationen 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 18
Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Dobbertins Attacken auf MD 4, MD 5 und RIPEMD 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 19
Prinzipieller Aufbau Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Idee: Beschreibe gesamte Kompressionsfunktion durch ein großes Gleichungssystem • Variablen: – Nachrichtenwörter – Registerinhalte • Gleichungen: – Schrittoperation – Nachrichtenexpansion – Kollision 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 20
Prinzipieller Aufbau Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Art des Gleichungssystems: – Gleichungssystem ist stark unterbestimmt è Viele Wahlfreiheiten è Stark eingeschränkte Spezialfälle betrachten, um das System zu vereinfachen (Unterdrückung des Lawineneffektes) – Gleichungen sind nicht linear, sondern enthalten gemischt F 2 -lineare und „modulo 232“ Operationen è Sind algebraisch schwer zu bearbeiten è Spezielle Methoden zur Lösung notwendig 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 21
Ruhr. Universität Bochum Beispiel MD 5 Fakultät für Mathematik Informationssicherheit und Kryptologie • Gesucht: mit • Nachrichtenexpansion durch rundenweise Permutation in MD 5: – jedes Mi geht an genau vier Stellen in die Berechnung ein – Wähle etwa speziell 15=1 und alle anderen i=0 è Berechnungen für und unterscheiden sich nur in 4 Schritten 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 22
Attacke auf MD 5 Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie i=0 15 0 • Berechnungen laufen parallel bis zum ersten Auftreten von i 0 • weitere spezielle Einschränkung: Fordere innere Kollisionen (► weitere parallel ablaufende Berechnungen) 15 0 i=0 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 23
Attacke auf MD 5 Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie i=0 15 0 i=0 19. 08. 2004 Ablauf der Attacke: • wählen • 2 innere Kollisionen finden • Innere Kollisionen „verbinden“ • IV und erste Kollision „verbinden“ ► Gleichungssysteme aufstellen Magnus Daum - Wie sicher sind Hashfunktionen? 24
Herleitung der Gleichungssysteme Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • am Bsp. der Schrittoperation von SHA-1: • Kt: Konstanten • Wt: Nachrichtenblöcke • f bitweise definierte Boolesche Funktion f 2{MAJ, ITE, XOR} Rt: neuer Inhalt von Register A nach Schritt t 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 25
Herleitung der Gleichungssysteme Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • für jeden Schritt zwei Gleichungen: • innere Kollision nach Schritt t: • Nachrichtenexpansion: 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 26
Lösung solcher Gleichungssysteme Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Einschränkung auf Spezialfälle • Gleichungsumformungen • Spezielle Algorithmen: – Bildung von „Lösungsbäumen“ – Algorithmen basierend auf der Theorie der Ordered Binary Decision Diagrams (OBDD) 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 27
Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Chabaud/Joux Attacke auf SHA-0 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 28
Attacke auf SHA-0 Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Chabaud/Joux (Crypto ’ 98): Kollisionen für SHA-0 können mit einem Aufwand von 261 gefunden werden • Prinzip: – Linearisierung der Kompressionsfunktion – Differentialattacke 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 29
Aufbau der Attacke Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Ist in drei Teile gegliedert: – Linearisierung der gesamten Kompressionsfunktion – Finden eines Differenzschemas in der linearisierten Funktion, das zu einer Kollision führt – Finden konkreter Registerinhalte, die zu dem obigen Differenzschema passen, d. h. die auch in den nichtlinearen Bestandteilen das entsprechende Differenzverhalten haben 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 30
Linearisierung der Kompressionsfunktion Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • 3 nichtlineare Bestandteile in SHA-0: – Addition modulo 232 – – • Können durch bitweises © (linear) approximiert werden 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 31
Finden einer Kollision in der linearisierten Funktion M Lineare Nachrichtenexpansion 512 bits 19. 08. 2004 W Linearisierte Schrittoperationen Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Registerinhalte 32 R bits 160 R bits Codewörter kleinen Gewichts gesucht (für den 3. Schritt) Kollision: letzte 160 Bits =0 Magnus Daum - Wie sicher sind Hashfunktionen? 32
Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie „Breaking News“ 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 33
Breaking News I Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Biham/Chen (Crypto ’ 04, eprint 2004/146): – Basierend auf der Chabaud/Joux-Attacke – „Neutral bits“-Methode – SHA-0: • Konkrete Kollisionen für auf 65 bzw. 82 Runden • Beinahe-Kollision (bis auf 18 Bits) für „echtes“ 80 Runden SHA-0 – SHA-1: • Eprint: Kollision für 36 Runden, zahlreiche Kollisionen für 34 Runden (darunter auch welche mit sinnvollen Texten) • Crypto‘ 04 Rump Session (17. 8. 2004): Kollision für 43 Runden 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 34
Breaking News II Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Joux/Carribault/Lemuet/Jalby (12. 08. 2004 bzw. Crypto‘ 04 Rump Session): – Konkrete Kollision für SHA-0 gefunden – Verwenden u. a. „neutral bits“-Technik von Biham/Chen – Komplexität 2^51 – 80000 CPUh auf TERA NOVA (Bull SA) 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 35
Breaking News III Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Wang/Feng/Lai/Yu (Crypto‘ 04 Rump Session, 17. 8. 2004): – Konkrete Kollision gefunden für • • RIPEMD (Komplexität nicht angegeben) HAVAL-128 in 26 HAVAL-computations MD 4 „with hand calculation“ (4 -64 Schritte) MD 5: in ca. 1 Stunde für beliebige IVs – angeblich SHA-0 in ca. 240 möglich – ebenfalls eine Differentialattacke 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 36
Ruhr. Universität Bochum Überblick MD 4 -Familie Fakultät für Mathematik Informationssicherheit und Kryptologie Joux‚ August 2004 Ext. MD 4 SHA-0 (Rivest ‚‘ 90) (NIST, ’ 93) Wang‚ August 2004 RIPEMD MD 5 (RIPE ‘ 88 -‘ 92) (Rivest ‚‘ 92) RIPEMD-128 RIPEMD-160 RIPEMD-256 RIPEMD-320 (Dobbertin, Bosselaers, Preneel ‘ 96) 19. 08. 2004 ? SHA-1 ? (NIST, ’ 95) SHA-224 SHA-256 SHA-384 SHA-512 (NIST, ’ 02/04) Magnus Daum - Wie sicher sind Hashfunktionen? 37
Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Zusammenfassung und Ausblick 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 38
Zusammenfassung und Ausblick Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie „Wie sicher sind Hashfunktionen? “ – Abschließende, exakte Antwort nicht möglich – Maßnahmen/Designprinzipien um konkrete Gefahren/Attacken zu vermeiden – Allgemeine Sicherheit nicht zu garantieren – Sicherheit konkreter Funktionen hängt sehr stark von Details ab – Wettlauf zwischen Designern und Analysten – Nach aktuellem Kenntnisstand heutzutage sicher: • RIPEMD-{160, 256, 320} • SHA-{1, 224, 256, 384, 512} 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 39
Ruhr. Universität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Vielen Dank! Fragen? ? ? 19. 08. 2004 Magnus Daum - Wie sicher sind Hashfunktionen? 40
- Slides: 40