RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Angriffe auf Hashfunktionen mit Hilfe spezialisierter Lösungsalgorithmen Magnus Daum Lehrstuhl für Informationssicherheit und Kryptologie Fakultät für Mathematik Horst Görtz Institut Hashfunktionen RuhrUniversität Bochum 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.07.2004 MD4, MD5 RIPEMD-{128,160,256,320} SHA-{1,224,256,384,512} Tiger Whirlpool 2 Hashfunktionen der MD4-Familie RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Ext. MD4 MD4 SHA-0 (Rivest ‚‘90) (Rivest ‚‘90) (NIST, ’93) Dobbertin ‚’95/96 RIPEMD (RIPE ‘88-‘92) RIPEMD-128 RIPEMD-160 RIPEMD-256 RIPEMD-320 (Dobbertin, Bosselaers, Preneel ‘96) 19.07.2004 MD5 (Rivest ‚‘92) SHA-1 (NIST, ’95) SHA-224 SHA-256 SHA-384 SHA-512 (NIST, ’02/04) 3 Struktur der Hashfunktionen RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Iterierte Kompressionsfunktionen Kollisionsresistenz der Kompressionsfunktion 19.07.2004 Kollisionsresistenz der Hashfunktion 4 Struktur der Kompressionsfunktion RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Nachrichtenexpansion 19.07.2004 5 RuhrUniversität Bochum Expansionsabbildungen 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.07.2004 6 RuhrUniversität Bochum Schrittoperationen Fakultät für Mathematik Informationssicherheit und Kryptologie MD5: 19.07.2004 SHA-0/1: 7 Überblick RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Beschreibung der Hashfunktionen der MD4-Familie • Dobbertins Attacken auf MD4,MD5,RIPEMD – Prinzipien – Innere Kollisionen – Gleichungssysteme • Algorithmen zum Lösen solcher Systeme – Dobbertins ursprüngliche Methode – Weiterentwicklungen – Anwendungsbeispiele 19.07.2004 8 RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Dobbertins Attacke 19.07.2004 9 RuhrUniversität Bochum Prinzipieller Aufbau Fakultät für Mathematik Informationssicherheit und Kryptologie f f h M h M • Gesucht: Nachrichten M; M • Beschreibe gesamte Kompressionsfunktion durch ein großes Gleichungssystem • Variablen: g – Nachrichtenblöcke Wi ; W i g) (durch Expansion der Mi; M i f – Registerinhalte Ri ; R i – Hilfsvariablen (z.B. Differenzen der obigen) • Gleichungen: – Schrittoperation – Nachrichtenexpansion 19.07.2004 – Kollision 10 Prinzipieller Aufbau RuhrUniversitä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 F2-lineare und „modulo 232“ Operationen Sind algebraisch schwer zu bearbeiten Spezielle Methoden zur Lösung notwendig 19.07.2004 11 Beispiel MD5 RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie f M M • Nachrichtenexpansion durch rundenweise Permutation in MD5: – jedes Mi geht an genau vier Stellen in die Berechnung ein – Wähle etwa speziell 13=1 und alle anderen i=0 f unterscheiden sich Berechnungen für M und M nur in 4 Schritten 19.07.2004 12 Attacke auf MD5 RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Berechnungen laufen parallel bis zum ersten Auftreten von i 0 • weitere spezielle Einschränkung: Fordere innere Kollisionen (► weitere parallel ablaufende Berechnungen) 19.07.2004 13 Attacke auf MD5 RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Ablauf der Attacke: • wählen • 2 innere Kollisionen finden • Innere Kollisionen „verbinden“ • IV und erste Kollision „verbinden“ ► Gleichungssysteme aufstellen 19.07.2004 14 Herleitung der Gleichungssysteme RuhrUniversitä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 f2{MAJ,ITE,XOR} Rt: neuer Inhalt von Register A nach Schritt t 19.07.2004 15 Herleitung der Gleichungssysteme RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • für jeden Schritt zwei Gleichungen: • innere Kollision nach Schritt t: f Ri R i t ¡ ; : : : ; t i f "i Ri ¡ R i t ¡ ; : : : ; t i 19.07.2004 16 Überblick Situation SHA-1 RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie IV • In den t=0-Bereichen: 1 2 t=0 14 steps 17 18 t=0 11 steps 30 t=0 Output 19.07.2004 44 g f Wt W t Rt Rt im gesamten Bereich ► beide Gleichungen identisch • Gleichungen im letzten Bereich können komplett ignoriert werden ► diese Bereiche maximieren (bei der Wahl von ) 17 Herleitung der Gleichungssysteme RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • für die t0 Bereiche Gleichungen vereinfachen durch Differenzbildung: ► Elimination der Wt 19.07.2004 18 Überblick Gleichungssystem für SHA-1 IV RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie 1 2 t=0 14 steps 17 18 t=0 11 steps 30 t=0 Output 19.07.2004 44 19 RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Lösungsalgorithmen 19.07.2004 20 Lösungsalgorithmen RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Gleichungen verwenden gemischt verschiedenartige Operationen: – Addition/Subtraktion modulo 2n – bitweise definierte Funktionen – Bitrotationen / Bitshifts • zwei Arten von Hilfsmitteln: – zur Transformation solcher Gleichungen – zur Bestimmung/Darstellung der Lösungsmenge 19.07.2004 21 Hilfsmittel zur Transformation RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie 19.07.2004 22 Algorithmen zur Bestimmung/ Darstellung der Lösungsmenge RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Naive Möglichkeit: vollständige Suche • Dobbertins Methode aus der MD4/MD5Attacke: – Lösung „von rechts nach links“ – Grundlegende Idee: Lösungen für die unteren k Bit der Gleichung sind immer Verlängerungen von Lösungen der niederwertigen k-1 Bits – Betrachte Gleichung bitweise von rechts nach links und versuche gefundene Lösungen zu verlängern ( Lösungsbaum) 19.07.2004 23 RuhrUniversität Bochum Algorithmen zur Bestimmung/ Darstellung der Lösungsmenge x x Fakultät für Mathematik Informationssicherheit und Kryptologie x x Lösungsbaum 19.07.2004 24 RuhrUniversität Bochum Algorithmen zur Bestimmung/ Darstellung der Lösungsmenge • Es kann oft frühzeitig abgebrochen werden • i.A. schneller als vollständige Suche • Zu jeder Lösung existiert ein Blatt im Baum • Aufwand entspricht im Wesentlichen der Anzahl der Lösungen • Problem: Wir hoffen gerade auf Systeme mit vielen Lösungen 19.07.2004 x x Fakultät für Mathematik Informationssicherheit und Kryptologie x x Lösungsbaum 25 RuhrUniversität Bochum Algorithmen zur Bestimmung/ Darstellung der Lösungsmenge • Lösungsidee: Fasse redundante Teilbäume zusammen • Redundanz muss beim Aufstellen des Graphen erkannt werden x x • von den Berechnungen zu den ersten beiden Bits ist nur noch das Carrybit relevant für das Ergebnis im 3.Bit Fakultät für Mathematik Informationssicherheit und Kryptologie x x Lösungsbaum 19.07.2004 26 Algorithmen zur Bestimmung/ Darstellung der Lösungsmenge RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Begründung: • Beschriftung der Knoten mit den Carrybits liefert Möglichkeit direkt Redundanzen zu erkennen • Anzahl der benötigten Carrybits beschränkt Breite des Baumes 19.07.2004 27 RuhrUniversität Bochum Algorithmen zur Bestimmung/ Darstellung der Lösungsmenge x x x x 19.07.2004 Fakultät für Mathematik Informationssicherheit und Kryptologie 28 RuhrUniversität Bochum Algorithmen zur Bestimmung/ Darstellung der Lösungsmenge x x Informationssicherheit und Kryptologie 00 01 00 01 x x Fakultät für Mathematik 10 11 10 11 10 11 x 00 01 x 00 Lösungsgraph 19.07.2004 29 RuhrUniversität Bochum Algorithmen zur Bestimmung/ Darstellung der Lösungsmenge x x • sehr kompakte Darstellung der x Lösungsmenge • kann noch weiter vereinfacht werden 19.07.2004 Informationssicherheit und Kryptologie x Fakultät für Mathematik Lösungsgraph 31 Algorithmen zur Bestimmung/ Darstellung der Lösungsmenge RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Lösungsgraphen sehr ähnlich zu sogenannten OBDDs (Ordered Binary Decision Diagram) • Weitere effiziente Algorithmen daraus ableitbar: – Weitere Reduktion (Minimalisierung) der Größe – Bestimmung der Anzahl der Lösungen – Verknüpfung mehrerer solcher Lösungsmengen (etwa bilden der Schnittmenge) 19.07.2004 32 Reduktion des Lösungsgraphen RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Algorithmus liefert einen Graphen minimaler Größe für die dargestellte Menge x • Größe der Lösungsgraphen nicht genau vorhersagbar: x – Worst-Case: exponentiell – Heuristisch: in den hier relevanten Fällen deutlich kleiner 19.07.2004 x x 33 RuhrUniversität Bochum Bestimmung der Lösungsanzahl Fakultät für Mathematik Informationssicherheit und Kryptologie • Abzählen der Anzahl der Möglichkeiten, die einzelnen Knoten zu 3+3=6 erreichen • Aufwand: linear in der 2+1=3 Größe des Graphen 6+1+2=9 Lösungen 1 1 1 1 1 1 19.07.2004 34 RuhrUniversität Bochum Schnittbildung Fakultät für Mathematik Informationssicherheit und Kryptologie L\ L L L Aufwand: im Wesentlichen Größe(L1)¢ Größe(L2) 19.07.2004 35 zusätzliche Erweiterungen RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Verallgemeinerung auf mehrere Variablen • Verwendung von Variablen, die nicht explizit im Lösungsgraphen gespeichert werden (ermöglicht Existenzaussagen) 19.07.2004 36 zusätzliche Erweiterungen RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Verallgemeinerung auf mehrere Variablen • Verwendung von Variablen, die nicht explizit im Lösungsgraphen gespeichert werden (ermöglicht Existenzaussagen) • Berücksichtigung von Bitrotationen durch zusätzliche Zustandsbits (vergleichbar zu den Carrybits) – Erhöht allerdings deutlich die Komplexität – Abhilfe durch Fixieren einzelner Bits und vollständiger Suche über alle Möglichkeiten 19.07.2004 37 RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Anwendungsbeispiele 19.07.2004 38 Anwendungsbeispiele RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • SHA-1(reduziert auf 44 Schritte), zweite innere Kollision: 19.07.2004 39 Überblick Gleichungssystem für SHA-1 IV RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie 1 2 t=0 14 steps 17 18 t=0 11 steps 30 t=0 für t=0 Output 19.07.2004 44 – t2{14,…,18} – t2{25,…,29}. 40 Anwendungsbeispiele RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • SHA-1(reduziert auf 44 Schritte), zweite innere Kollision: 19.07.2004 41 Anwendungsbeispiele RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie 19 = -1 20 2 {-33,-32,-1} 24 2 {1,4,5} 19.07.2004 42 Anwendungsbeispiele RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • SHA-1(reduziert auf 44 Schritte), zweite innere Kollision: • Es bleiben 8 Gleichungen mit 13 Variablen R17,…,R26, 21, 22, 23 19.07.2004 43 Anwendungsbeispiele RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Fixieren von 23 und einzelner Bits von 21, 22 reduziert die Komplexität • So möglich zunächst solche 21, 22 zu bestimmen, für die Lösungen für die Rt existieren • Diese festen Werte für 19,…,24 liefern dann für R17,…,R26 einen Lösungsgraphen für die 8 Gleichungen: – 6000 Knoten – 42000 Kanten – Stellt ca. 290 Lösungen dar 19.07.2004 44 Anwendungsbeispiele RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • SHA-1, Verbindung der zwei Kollisionen: 19.07.2004 45 Verbindungen herstellen RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie IV 1 2 t=0 14 steps 17 18 t=0 11 steps 30 t=0 Output 19.07.2004 44 46 Anwendungsbeispiele RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • SHA-1, Verbindung der zwei Kollisionen: fest Variablen: R9, R10, R11, R12 (Rt‘ = Rt n 30) 19.07.2004 47 RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Ausblick 19.07.2004 48 Ausblick RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie • Aktuell: Anwendung auf MD5, um „echte“ Kollision zu finden • Theoretische Untersuchung der Algorithmen • andere Anwendungsgebiete denkbar – Algorithmen nicht unbedingt beschränkt auf die hier vorkommenden Operationen – Monotonie („Rechts-nach-Links-Lösbarkeit“) wichtig 19.07.2004 49 RuhrUniversität Bochum Fakultät für Mathematik Informationssicherheit und Kryptologie Vielen Dank! Fragen??? 19.07.2004 50