Hashfunktionen - CITS - Ruhr

Werbung
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 t0 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
Herunterladen