Hashfunktionen und Kollisionen

Ähnliche Dokumente
Sicherer MAC für Nachrichten beliebiger Länge

Effizienten MAC-Konstruktion aus der Praxis: NMAC Idee von NMAC:

RSA Full Domain Hash (RSA-FDH) Signaturen

Voll homomorpe Verschlüsselung

RSA Full Domain Hash (RSA-FDH) Signaturen

Sicherheit von ElGamal

Homomorphe Verschlüsselung

Sicherheit von hybrider Verschlüsselung

Kryptographie und Komplexität

Lösung zur Klausur zu Krypographie Sommersemester 2005

IT-Sicherheit - Sicherheit vernetzter Systeme -

Urbild Angriff auf Inkrementelle Hashfunktionen

ElGamal Verschlüsselungsverfahren (1984)

Die (Un-)Sicherheit von DES

Kap. 2: Fail-Stop Unterschriften

Wiederholung: Informationssicherheit Ziele

In beiden Fällen auf Datenauthentizität und -integrität extra achten.

Das Zweikinderproblem

Sichere Hashfunktionen

Ein typisches Problem

3: Zahlentheorie / Primzahlen

8: Zufallsorakel. Wir suchen: Einfache mathematische Abstraktion für Hashfunktionen

Hash-Algorithmen. Manuel Pöter TU-Wien - e November 2004

Vorlesung Sicherheit

MAC Message Authentication Codes

Hashfunktionen. Roman Brunnemann Stephan Müller. 23. November Einleitung Anforderungen Konstruktion Beispiel MD5 MD5 vs.

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Vorlesung Sicherheit

Message Authentication Codes

Institut für Kryptographie und Sicherheit Jun.-Prof. Dr. D. Hofheinz. Stammvorlesung Sicherheit im Sommersemester Klausur

Mitschrift Vorlesung Einführung in die Kryptographie vom 18. Januar 2011

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Ein RSA verwandtes, randomisiertes Public Key Kryptosystem

Kryptographie I Symmetrische Kryptographie

Digitale Signaturen. Sven Tabbert

Die Hashfunktion- Familie SHA und Angriffe darauf

8 Komplexitätstheorie und Kryptologie

Pseudozufallsgeneratoren

iterative Hashfunktionen

Kryptographie und Fehlertoleranz für Digitale Magazine

Reaktive Sicherheit. II. Passwörter. Dr. Michael Meier. technische universität dortmund

Diffie-Hellman, ElGamal und DSS. Vortrag von David Gümbel am

Prof. Dr. Martin Leischner Netzwerksysteme und TK. Hochschule Bonn-Rhein-Sieg. Modul 5: IPSEC

Kurze Einführung in kryptographische Grundlagen.

Digitale Unterschriften Grundlagen der digitalen Unterschriften Hash-Then-Sign Unterschriften Public-Key Infrastrukturen (PKI) Digitale Signaturen

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Übungen zu. Grundlagen der Kryptologie SS Hochschule Konstanz. Dr.-Ing. Harald Vater. Giesecke & Devrient GmbH Prinzregentenstraße 159

10.6 Authentizität. Geheimhaltung: nur der Empfänger kann die Nachricht lesen

Übungen zur Vorlesung Systemsicherheit

Abschnitt: Algorithmendesign und Laufzeitanalyse

Ich bedanke mich bei Florian Böhl, Benny Fuhry, Gunnar Hartung, Jan Holz, Björn Kaidel, Eike Kiltz, Evgheni Kirzner, Jessica Koch, Julia Rohlfing,

Digitale Signaturen Einführung und das Schnorr Signaturschema

Vortrag zum Proseminar: Kryptographie

Secure Sockets Layer (SSL) Prof. Dr. P. Trommler

Einführung in Computer Microsystems

Netzsicherheit I, WS 2008/2009 Übung 6. Prof. Dr. Jörg Schwenk

Digitale Signaturen. Kapitel 10 p. 178

Kryptographie. ein erprobter Lehrgang. AG-Tagung Informatik, April 2011 Alfred Nussbaumer, LSR für NÖ. LSR für NÖ, 28. April 2011 Alfred Nussbaumer

Vorlesung Sicherheit

Kryptographie oder Verschlüsselungstechniken

Algorithmentheorie Randomisierung. Robert Elsässer

IT-Sicherheit - Sicherheit vernetzter Systeme -

IT-Sicherheit: Kryptographie

Authentikation und digitale Signatur

Netzsicherheit I, WS 2008/2009 Übung 12. Prof. Dr. Jörg Schwenk

Sicherheit von PDF-Dateien

Wiederholung: Informationssicherheit Ziele

Name:... Vorname:... Matrikel-Nr.:... Studienfach:...

Algorithmen II Vorlesung am

Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort.

Kryptographische Hash-Funktionen

Der RSA-Algorithmus. 2. Anschließend ist n = p q und ϕ (n) = (p 1) (q 1) zu berechnen.

Nr. 4: Pseudo-Zufallszahlengeneratoren

Beweisbar sichere Verschlüsselung

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Stefan Lucks Krypto und Mediensicherheit (2009) 4: Stromchiffren

Kryptologische Grundlagen

5. Woche Perfekte und Optimale Codes, Schranken. 5. Woche: Perfekte und Optimale Codes, Schranken 88/ 142

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

9 Schlüsseleinigung, Schlüsselaustausch

Symmetrische und Asymmetrische Kryptographie. Technik Seminar 2012

Stefan Lucks Krypto und Mediensicherheit (2009) 5: Blockchiffren. 5: Blockchiffren. (n bit) (n bit) VERschlüsseln ENTschlüsseln

Authentifikation und digitale Signatur

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Einführung in die Kryptographie ,

Grundlagen der Kryptographie

Kryptographische Verfahren auf Basis des Diskreten Logarithmus

Key Agreement. Diffie-Hellman Schlüsselaustausch. Key Agreement. Authentifizierter Diffie-Hellman Schlüsselaustausch

Praktikum IT-Sicherheit

ADS: Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen

10. Public-Key Kryptographie

FH Schmalkalden Fachbereich Informatik. Kolloquium 21. März 2002

2. Realisierung von Integrität und Authentizität

Transkript:

Hashfunktionen und Kollisionen Definition Hashfunktion Eine Hashfunktion ist ein Paar (Gen, H) von pt Algorithmen mit 1 Gen: s Gen(1 n ). Gen ist probabilistisch. 2 H: H s berechnet Funktion {0, 1} {0, 1} l. H s ist deterministisch. Spiel HashColl A,Π (n) 1 s Gen(1 n ) 2 (x, x ) A(s) 3 HashColl A,Π (n) = { 1 falls H s (x) = H s (x ) und x x 0 sonst. Definition Kollisionsresistenz Eine Hashfunktion Π heißt kollisionsresistent, falls für alle ppt A gilt Ws[HashColl A,Π (n) = 1] negl(n). Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 132 / 149

Spiel HashColl s Gen(1 n ) HashColl A,Π (n) Ausgabe: { 1 falls H s (x) = H s (x ) 0 sonst (1 n, s) (x, x ) A Berechne: x x {0, 1} Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 133 / 149

Schwächere Sicherheitskonzepte 2.Urbild Resistenz Gegeben: Gesucht: s, x x x mit H s (x ) = H s (x) Satz Kollisionresistenz impliziert 2.Urbild Resistenz Sei Π kollisionsresistent. Dann ist Π 2.Urbild resistent. Beweis: Sei A ein 2.Urbild Angreifer auf Π = (Gen, H) mit Erfolgsws ɛ(n). Algorithmus Angreifer A auf Kollisionsresistenz EINGABE: s 1 Wähle x {0, 1}. 2 x A(s, x) AUSGABE: x, x Offenbar gilt Ws[HashColl A,Π] = ɛ(n) Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 134 / 149

Schwächere Sicherheitskonzepte Urbild Resistenz Gegeben: s, y = H s (x) Gesucht: x mit H s (x ) = y Satz 2.Urbild Resistenz impliziert Urbild Resistenz Sei Π 2.Urbild resistent und komprimierend. Dann ist Π Urbild resistent Beweisskizze: Sei A ein Urbild Angreifer auf Π mit Erfolgsws ɛ. Algorithmus Angreifer A auf 2.Urbild EINGABE: s, x 1 Berechne y = H s (x). 2 x A(s, y) AUSGABE: x, x falls x x Es gilt x x mit signifikanter Ws, falls H seine Eingabe komprimiert, d.h. der Urbildraum ist größer als der Bildraum. Damit ist Kollisionsresistenz der stärkste Sicherheitsbegriff. Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 135 / 149

Geburtstagsangriff auf Hashfunktionen Algorithmus Geburtstagsangriff EINGABE: s mit H s : {0, 1} {0, 1} l 1 Wähle verschiedene x 1,..., x q {0, 1} für geeignetes q. 2 Berechne y i = H s (x i ) für i = 1,..., q und sortiere die y i. 3 Finde in der sortierten Liste x i, x j mit y i = y j. AUSGABE: x i, x j mit H s (x i ) = H s (x j ) Anmerkungen: Annahme: y i sind zufällig gleichverteilt in {0, 1} l. Geburtstagsproblem: Für q = 2 l 2 + 1 erhalten wir mit Ws mind 1 e 1 2 eine Kollision y i = y j in Schritt 3. (Übung) Die Auswertung von H s koste konstante Laufzeit O(1). Dann besitzt der Algorithmus Laufzeit O(q log q) = O(l 2 l 2 ). Konsequenz für Hashfunktionen: Wir benötigen mindestens Ausgabelänge l = 160 Bit. Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 136 / 149

Merkle-Damgard Transformation Ziel: Konstruiere H : {0, 1} {0, 1} l aus h : {0, 1} 2l {0, 1} l. Algorithmus Merkle-Damgard Konstruktion Sei (Gen, h) eine kollisionsresistente Hashfunktion mit h : {0, 1} 2l {0, 1} l. Wir konstruieren (Gen, H) wie folgt. 1 Gen: s Gen(1 n ). 2 H: Bei Eingabe s und x {0, 1} L : Erweitere x mit Nullen, bis die Länge ein Vielfaches von l ist. Schreibe x = x1... x B mit x i {0, 1} l und B = L l. Setze xb+1 = L (binär kodiert). Initialisiere z 0 := 0 l, berechne z i := h s (z i 1 x i ) für i = 1,..., B + 1. Ausgabe des Hashwerts H s (x) := z B+1. Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 137 / 149

Merkle Damgard Konstruktion x 1 x 2 x B+1 = L z 0 = 0 n h s z 1 h s z 2... zb h s H s (x) Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 138 / 149

Sicherheit der Merkle-Damgard Konstruktion Satz Sicherheit der Merkle-Damgard Konstruktion Sei Π h = (Gen, h) kollisionsresistent. Dann ist auch Π H = (Gen, H) kollisionsresistent. Beweis: Sei A ein Angreifer für H s mit Erfolgsws ɛ(n). Wir konstruieren einen Angreifer A für h s. Algorithmus Angreifer A EINGABE: s 1 (x, x ) A(s). Sei x {0, 1} L und x {0, 1} L. Seien x 1... x B und x 1... x B die mit Nullen erweiterte Darstellung von x, x. 2 Falls L L, setze y := z B x B+1 = z b L, y := z B x B +1 = z B L 3 Sonst sei i maximal mit z i 1 x i z i 1 x i (existiert wegen x x ). Setze y := z i 1 x i und y := z i 1 x i. AUSGABE: (y, y ) mit h s (y) = h s (y ) Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 139 / 149

Sicherheit der Merkle-Damgard Konstruktion Korrektheit: Wir zeigen h s (y) = h s (y ) für y y. Damit folgt negl(n) Ws[HashColl A,Π h (n) = 1] = Ws[HashColl A,ΠH (n) = 1] = ɛ(n). Fall 1: L L Dann gilt x B+1 x B+1 und H s (x) = z B+1 = h s (z B x }{{ B+1 ) = h } s (z B x B +1) = }{{} z B +1 = H s(x ). y y Fall 2: L = L Sei i maximal mit z i 1 x i z i 1 x i. Aus der Maximalität von i folgt z i = z i. Damit gilt z i = h s (z i 1 x }{{} i ) = h s (z i 1 x i ) = }{{} z i. y y Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 140 / 149

Hashfunktionen in der Praxis Praktische Hashfunktionen verwenden gewöhnlich kein s. Damit sind sie im theoretischen Sinne nicht kollisionsresistent, da ein trivialer Angriff existiert, der eine Kollision ausgibt. Trotzdem können die besten bekannten Angriffe natürlich Komplexität Ω(2 n 2 ) besitzen. Fast alle Hashfunktionen verwenden eine Kompressionsfunktion in Kombination mit der Merkle-Damgard Transformation. Als kollisionsresistent in der Praxis gelten derzeit z.b. SHA-2, TIGER, Whirlpool, FORK-256. Als nicht kollisionsresistent gelten: SHA-0, SHA-1, MD4, MD5, RIPEMD, Snefru, HAVAL, PANAMA, SMASH, etc. Kryptanalyse 2004 für SHA-0, SHA-1, MD4, MD5 von Wang et al. Seit 2008 Hash Algorithm Competition für neuen NIST-Standard. Finalisten (Dez 2010): BLAKE, Grøstl, JH, Keccak, Skein. Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 141 / 149

Effizienten MAC-Konstruktion mittels Hashfunktionen Idee von NMAC: Hashe m {0, 1} auf einen Hashwert in {0, 1} n. Verwende Π MAC3 für Nachrichten fixer Länge auf dem Hashwert. Wir konstruieren Π MAC3 mittels schlüsselabhängiger Hashfunktion, bei der ein Teil des Hasharguments aus dem Schlüssel besteht. Algorithmus MAC Π MAC3 für Nachrichten fester Länge n Sei (Gen h, h) eine kollisionsresistente Hashfkt h : {0, 1} 2n {0, 1} n. 1 Gen: s Gen h (1 n ), s kann öffentlich sein. Wähle k 1 R {0, 1} n. 2 Mac: Bei Eingabe (s, k 1 ) und m {0, 1} n, berechne t := h s (k 1 m). 3 Vrfy: Bei Eingabe (s, k 1 ) und (m, t) {0, 1} n {0, 1} n, verifiziere t? = h s (k 1 m). Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 142 / 149

NMAC Notation: Sei Hs IV eine Merkle-Damgard Hashfunktion, bei der der Initialisierungsvektor auf den Wert IV gesetzt ist. Algorithmus NMAC (Nested MAC) Sei Π h = (Gen h, h), Π MAC3 = (Gen, Mac, Vrfy ) wie zuvor. Sei (Gen h, H) die Merkle-Damgard Transformation von (Gen h, h). 1 Gen: s Gen h (1 n ). Wähle Schlüssel k 1, k 2 R {0, 1} n. 2 Mac: Bei Eingabe (s, k 1, k 2 ) und m {0, 1} n, berechne t := Mac s,k 1 (H k 2 s (m)) = h s (k 1 H k 2 s (m)). 3 Vrfy: Bei Eingabe (s, k 1, k 2 ) und (m, t) {0, 1} {0, 1} n, { 1 falls t = Mac s,k1,k Ausgabe = 2 (m). 0 sonst Praxis-Variante: Fixiere s, d.h. einzelne Hash-Funktion (z.b. SHA-1). Anmerkung: Wir können auch k 2 = 0 n setzen. Vorteil von Schlüssel k 2 : Sicherheit kann auch unter schwächerer Annahme gezeigt werden. Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 143 / 149

NMAC m 1 m 2 L k 2 h s h s... h s k 1 h s t Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 144 / 149

Sicherheit von NMAC Satz Sicherheit von NMAC Sei Π h = (Gen h, h) kollisionsresistent und sei Π MAC3 sicher. Dann ist auch NMAC sicher. Beweisskizze: Sei A ein Angreifer für NMAC. A stelle Mac( ) Orakelanfragen aus Q = {m 1,..., m q }. Anschließend gebe A gültiges (m, t) aus mit m / Q. Fall 1: Es existiert ein j [q] mit H k 2 s (m) = H k 2 s (m j ). Wegen m m j ist (m, m j ) eine Kollision für H k 2 s. Nach Merkle-Damgard Konstruktion liefert dies Kollision für h s. Fall 2: Es gilt H k 2 s (m) H k 2 s (m i ) für alle i [q]. Sei Q = {H k 2 s (m) m Q}. Es gilt H k 2 s (m) / Q. Damit ist (H k 2 s (m), t) eine gültige Fälschung für Π MAC3. Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 145 / 149

HMAC Hash-Based MAC Nachteil von NMAC: Benötigen das Setzen von IV in H. Idee von HMAC: Erzeuge k 1, k 2 durch Vorschalten einer Anwendung von h s. Definieren Konstanten opad, ipad und berechnen k 1 = h s (IV k opad) und k 2 = h s (IV k ipad). Algorithmus HMAC Sei (Gen h, H) wie zuvor. Seien opad, ipad {0, 1} n konstant. 1 Gen: s Gen h (1 n ). Wähle k R {0, 1} n. 2 Mac: Für (s, k) und m {0, 1} berechne Mac s,k (m) = H s (k opad H s (k ipad m)). 3 Vrfy: Für (s, k) und (m, t) {0, 1} {0, 1} n, verifiziere t? = Mac s,k (m). Anmerkung: Mac s,k (m) = H s (k opad H s (k ipad m) ) = Hs k1 (H k 2 s (m)). }{{} Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC k 2 und HMAC mittels Hashfunktionen 146 / 149

HMAC k ipad m 1 L IV h s h s... h s k opad h s IV h s t Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 147 / 149

HMAC ist eine Variante von NMAC Wir berechnen beim HMAC den MAC-Wert H k 1 s (H k 2 s (m)). D.h. die äußere Hashfunktion H k 1 s wird stets auf einen Nachrichtenblock H k 2 s (m) {0, 1} n fester Länge angewendet. Daher ist das Anhängen der Nachrichtenlänge bei H k 1 s unnötig. Entspricht der Berechnung von h k 1 s (H k 2 s (m)), analog zu NMAC. D.h. HMAC ist ein Spezialfall von NMAC, wobei k 1 und k 2 aus k mittels Anwendung von h s abgeleitet werden. Wir definieren den folgenden Pseudozufallsgenerator G(k) = h s (IV k opad) h }{{} s (IV k ipad). }{{} k 1 k 2 Korollar Sicherheit von HMAC mittels Sicherheit von NMAC Sei G ein Pseudozufallsgenerator, (Gen, h) kollisionsresistent und Π MAC3 sicher. Dann ist die HMAC-Konstruktion sicher. Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 148 / 149

Praktische Bedeutung von HMAC Anwendung von HMAC: Vorgestellt 1996 von Bellare, Canetti und Krawczyk. HMAC wird in der Praxis oft in Kombination mit SHA-1 verwendet. HMAC findet Anwendung z.b. in den Protokollen Internet Protocol Security (IPSec) und Transport Layer Security (TLS). Wurde 1998 standardisiert und ist weitverbreitet in der Praxis. HMAC ist im Vergleich zum CBC-MAC deutlich schneller. Krypto I - Vorlesung 12-09.01.2012 () Sicherheit Merkle-Damgard, NMAC und HMAC mittels Hashfunktionen 149 / 149