Vorlesung Sicherheit Dennis Hofheinz IKS, KIT 29.04.2013 1 / 22
Überblick 1 Zusammenfassung und Korrektur Zusammenfassung Korrektur Definition semantische Sicherheit 2 Hashfunktionen Motivation Formalisierung Die Merkle-Damgård-Konstruktion 2 / 22
Zusammenfassung letzte Vorlesung Angriffe auf Blockchiffren Strategien: lineare/differentielle Kryptoanalyse Formalisierung von Sicherheit Semantische Sicherheit, IND-CPA Sicherheitsreduktion erlaubt es, sich auf zugrundeliegende Bausteine (z.b. E) zu konzentrieren 3 / 22
Semantische Sicherheit Definition (Semantische Sicherheit, informell) Ein symmetrisches Verschlüsselungsverfahren ist semantisch sicher, wenn es für jede M-Verteilung von Nachrichten gleicher Länge, jede Funktion f und jeden effizienten Algorithmus A einen effizienten Algorithmus B gibt, so dass [ ] Pr A Enc(K, ) (Enc(K, M)) = f (M) Pr [B(ε) = f (M)] klein ist. 4 / 22
Überblick 1 Zusammenfassung und Korrektur Zusammenfassung Korrektur Definition semantische Sicherheit 2 Hashfunktionen Motivation Formalisierung Die Merkle-Damgård-Konstruktion 5 / 22
Was ist eine Hashfunktion? Kurzer Fingerabdruck großer Daten: H : {0, 1} {0, 1} k Anwendungen: Vergleich großer Dateien: überprüfe, ob Download korrekt war (vorgreifend) Signaturen: signiere H(M) anstellt von M Generell wichtiger kryptographischer Baustein Beispiel (vorgreifend): aktiv sichere Verschlüsselung 6 / 22
Anforderungen an eine Hashfunktion Kurzer Fingerabdruck großer Daten: H : {0, 1} {0, 1} k Keine Kollisionen (X X mit H(X ) = H(X )) Für unsere Zwecke (kryptographische Hashfunktion): Definition (Kollisionsresistenz, informell) Eine Hashfunktion H ist kollisionsresistent, wenn jeder effiziente Algorithmus nur mit kleiner Wahrscheinlichkeit eine Kollision findet. 7 / 22
Formalisierungen Diskussion: Wie könnte Formalisierung aussehen? Was könnte ein effizienter Algorithmus sein? Was könnte eine kleine Wahrscheinlichkeit sein? 8 / 22
Sicherheitsparameter Asymptotische Definition Idee: Sicherheitsparameter k N parametrisiert System Beispiel: H = H k mit H k : {0, 1} {0, 1} k Intuition: größeres k mehr Sicherheit 9 / 22
Effizienz und kleine Wahrscheinlichkeiten Effizient: Polynomialzeit (in k), kurz: PPT Beispiel: Algorithmus, der Kollision durch vollständige Suche aller X {0, 1} k+1 findet, ist nicht effizient Kleine Wahrscheinlichkeit: vernachlässigbar (in k) f : N R vernachlässigbar : f verschwindet asymptotisch schneller als Kehrwehrt jedes vorgegebenen Polynoms Formal: f vernachlässigbar : c k 0 k k 0 : f (k) k c Beispiel: 1/2 k vernachlässigbar, aber 1/k nicht Alternative (auch üblich, anwendungsnäher, unhandlicher): konkrete Sicherheit (Verfahren ist (t(k), ε(k))-sicher) 10 / 22
Kollisionsresistenz (formal) Definition (Kollisionsresistenz) Eine über k parametrisierte Funktion H ist kollisionsresistent, wenn jeder PPT-Algorithmus nur mit höchstens vernachlässigbarer Wahrscheinlichkeit eine Kollision findet. Genauer: für jeden PPT-Algorithmus A ist [ ] Adv cr H,A(k) := Pr (X, X ) A(1 k ) : X X H k (X ) = H k (X ) vernachlässigbar. 11 / 22
Einwegeigenschaft Weitere nützliche Eigenschaft von H: Einwegfunktion Für Hashfunktionen auch Preimage Resistance genannt Intuition: gegeben H(X ), schwierig, X zu finden Einwegfunktionen z.b. nützlich für Passwortabfragen 1 Server speichert H(pass) statt pass 2 Benutzer gibt pass ein 3 Server testet H(pass)? = H(pass ) Einwegeigenschaft Server findet pass nicht heraus Noch besser: gesalzene Passwörter Server speichert (R, H(pass, R)) für zufälliges R Verschiedene Server können Passwörter nicht vergleichen 12 / 22
Einwegeigenschaft Intuition: gegeben H(X ), schwierig, X zu finden Frage: wie sollte X {0, 1} dabei verteilt sein? Bei wenigen Kandidaten -X Raten möglich Grundsätzlich möglich: Pr [X = X ] > 0 für alle X {0, 1} Aber: was sind wahrscheinliche Urbilder? Üblich, aber nicht immer optimal: X gleichverteilt über endlicher Teilmenge 13 / 22
Einwegeigenschaft Definition (Einwegfunktion) Eine über k parametrisierte Funktion H ist eine Einwegfunktion bzgl. der Urbildverteilung X k, wenn jeder PPT-Algorithmus nur mit höchstens vernachlässigbarer Wahrscheinlichkeit eine Urbild eines gegebenen, aus X k gezogenen Bildes findet. Genauer: für jeden PPT-Algorithmus A ist [ ] Adv ow H,A(k) := Pr X A(1 k, H(X )) : H(X ) = H(X ) vernachlässigbar, wobei X X k gewählt wurde. Bemerkung: A muss nicht notwendig X = X zurückgeben 14 / 22
Kollisionsresistenz und Einwegeigenschaft Theorem (Kollisionsresistenz Einwegeigenschaft) Jede kollisionsresistente Hashfunktion H : {0, 1} {0, 1} k ist eine Einwegfunktion bzgl. der Gleichverteilung auf {0, 1} 2k. Beweis. Wir geben zu jedem H-Invertierer A einen H-Kollisionsfinder B an mit Adv cr H,B(k) 1 2 Advow H,A(k) 1/2 k+1 B wählt X {0, 1} 2k glv., setzt X A(1 k, H(X )), gibt (X, X ) aus Bei H(X ) = H(X ) ist X = X mit Wahrscheinlichkeit 1/ H 1 (H(X )) Mit Wahrscheinlichkeit 1 1/2 k hat H(X ) mehr als ein Urbild Zusammengenommen hat B Erfolg 1/2 Adv ow H,A(k) 1/2 k+1 15 / 22
Weitere Sicherheitseigenschaften Weitere Sicherheitseigenschaft: Target Collision Resistance Auch: Second Preimage Resistance, Universal One-Way Informell: gegeben X, finde X mit H(X ) = H(X ) Wird impliziert von Kollisionsresistenz Impliziert Einwegeigenschaft Beispielszenario: Sicherheit von Zertifikaten Gegeben ein Zertifikat eines gehashten Public Keys...... finde einen neuen Public Key, für den dieses Zertifikat gilt 16 / 22
Merkle-Damgård-Konstruktion Ziel: Hashfunktion H MD aus einfacherem Baustein bauen Baustein: Kompressionsfunktion F : {0, 1} 2k {0, 1} k Konstruktion: Quelle: rsa.com Wichtig: Padding enthält Nachrichtenlänge 17 / 22
Sicherheit von Merkle-Damgård Theorem Ist F kollisionsresistent, so ist auch H MD kollisionsresistent. Beweis. Geg. X X mit H MD (X ) = H MD (X ), finde F-Kollision Schreibe X = (X i ) n i=1, X = (X i )n i=1 (mit X i, X i {0, 1} k ) MD-Zwischenwerte: Z 0 := IV, Z i := F(Z i 1, X i ) (Z i analog) Es ist Z n = F(Z n 1, X n ) = F(Z n 1, X n ) = Z n Z n 1 Z n 1 oder X n X n F-Kollision Andernfalls ist X n = X n (und damit n = n ), und weiter Z n 1 = F(Z n 2, X n 1 ) = F(Z n 2, X n 1 ) = Z n 1... wegen X X kann nicht Z i = Z i i sein F-Kollision 18 / 22
Bedeutung von Merkle-Damgård Mehrere (fast) aktuelle Hashfunktionen beeinflusst von MD MD5 (vorgeschlagen 1992) SHA-1 (vorgeschlagen 1995) SHA-2 (vorgeschlagen 2001) MD5 und SHA-1 mittlerweile gebrochen Aktueller Hash-Standard SHA-3 ( Keccak ) nutzt MD nicht 19 / 22
Beispiel: SHA-1 (Kompressionsfunktion) 512 160 32 A B C D E 20 Runden mit f 1 A B C 20 Runden mit f 2 D E A B C 20 Runden mit f 3 D E A B C 20 Runden mit f4 D E + + + + + 160 20 / 22
Beispiel: SHA-1 (Rundenfunktion) A B C D E f t + S 5 + + W t S 30 + K t A B C D E 21 / 22
Angriffe auf SHA-1 Kollisionen für eine Runde leicht zu finden Grundidee: erweitere Kollisionen auf mehrere Runden Auch Fast-Kollisionen (H(X ) H(X )) nützlich Bruch von SHA-1 2005: zunächst theoretische 53-Runden-Kollision danach theoretische (volle) 80-Runden-Kollision Allerdings Angriffe bislang theoretisch Aufwand etwa 2 61 Schritte 22 / 22