0Pricing
Cryptology Academy · Lektion

Geburtstags- und Kollisionsangriffe

Wenden Sie das Geburtstagsparadoxon auf Hash-Kollisionen und Hash-Length-Extension an.

Geburtstags- und Kollisionsangriffe ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cryptology Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Das Geburtstagsparadoxon

In einer Gruppe von 23 Personen liegt die Wahrscheinlichkeit, dass zwei am selben Tag Geburtstag haben, über 50 %. Bei 70 Personen liegt sie über 99,9 %. Mathematisch gilt: In einer Menge der Größe N übersteigt die Kollisionswahrscheinlichkeit nach ungefähr √N Stichproben 50 %. Dies ist die Geburtstagsgrenze.

Geburtstagsgrenze für Hashfunktionen

Für eine n-Bit-Hashfunktion kann eine Kollision (H(m1) = H(m2), m1 ≠ m2) mit ungefähr 2^{n/2} zufälligen Versuchen gefunden werden. Für SHA-256 (256 Bit) erfordert eine Kollision ungefähr 2^{128} Rechenaufwand — praktisch undurchführbar. Für MD5 (128 Bit) sind es ungefähr 2^{64} — gerade noch machbar.

Algorithmus für Kollisionsangriffe

Allgemeines Finden von Kollisionen: 2^{n/2} zufällige Nachrichten erzeugen, die Hashes berechnen, nach dem Hashwert sortieren und Duplikate finden. Speicherbedarf O(2^{n/2}). Der Rho-Algorithmus (Floys Verfahren zur Zykluserkennung) reduziert den Speicherbedarf bei gleichen Zeitkosten auf O(1). Die parallele Kollisionssuche nach van Oorschot und Wiener reduziert den Zeitaufwand durch den Einsatz von Hardware.

MD5-Kollisionen

Praktische MD5-Kollisionen wurden von Wang et al. (2004) mithilfe differentieller Kryptanalyse gefunden — nicht durch den Geburtstagsangriff. Zwei verschiedene 1024-Bit-Nachrichten konnten innerhalb von Sekunden denselben MD5-Hash erzeugen. Hertzbleed-/Chosen-Prefix-Kollisionen ermöglichen Zertifikatskollisionen. MD5 ist für Kollisionsresistenz vollständig gebrochen.

Chosen-Prefix-Kollisionen

Leistungsfähiger ist folgende Variante: Für zwei beliebige Präfixe P1 und P2 werden Suffixe S1 und S2 gefunden, sodass H(P1||S1) = H(P2||S2). Stevens et al. (2017) fanden Chosen-Prefix-MD5-Kollisionen. Damit wurde ein bösartiges CA-Zertifikat mit einer gültigen MD5-Signatur erstellt. Dadurch wurde MD5 aus der Zertifikatsverwendung entfernt.

SHA-1-Kollisionen

Googles SHAttered (2017) war die erste praktische SHA-1-Kollision. Zwei verschiedene PDF-Dateien hatten denselben SHA-1-Hash. Dafür waren 2^{63.1} SHA-1-Kompressionen erforderlich — entsprechend 6.500 CPU-Jahren und 110 GPU-Jahren. Die Kosten betrugen ungefähr 110.000 US-Dollar. Browser stuften SHA-1-Zertifikate 2017 als veraltet ein.

Längenerweiterungsangriffe

Für Merkle-Damgård-Hashfunktionen (MD5, SHA-1, SHA-2) gilt: Wenn Sie H(m) kennen, können Sie H(m||padding||m') berechnen, ohne m zu kennen. Dadurch werden MAC-Konstruktionen wie H(secret||message) unsicher. Abhilfe schaffen HMAC (mit innerem und äußerem Padding) oder SHA-3 (Sponge-Konstruktion, immun gegen Längenerweiterungsangriffe).

Kollisionsresistenz vs. Präbildresistenz

Kollisionsresistenz: Finden Sie zwei beliebige verschiedene Nachrichten mit demselben Hash (Aufwand 2^{n/2}). Zweitpräbildresistenz: Gegeben m, finden Sie m' ≠ m mit demselben Hash (Aufwand 2^n). Präbildresistenz: Finden Sie zu einem gegebenen Hash eine beliebige Nachricht (Aufwand 2^n). Die Kollisionsresistenz ist immer die schwächste dieser Eigenschaften.

MAC-Kollisionsangriffe

Wenn ein MAC eine kollisionsanfällige Hashfunktion verwendet, kann ein Angreifer, der Kollisionen in H finden kann, möglicherweise MACs fälschen. HMAC-MD5 gilt trotz der MD5-Kollisionen als sicher, weil die HMAC-Konstruktion Präbildangriffe und nicht nur Kollisionen erfordert. Für neue Systeme sollten Sie dennoch von HMAC-MD5 wegmigrieren.

Mehrfachkollisionen

Joux (2004): Bei Merkle-Damgård-Hashfunktionen erfordert das Finden von 2^k-fachen Kollisionen (2^k Nachrichten mit demselben Hash) nur das k-Fache des Aufwands für eine einzelne Kollision, nicht das k-Fache mehr. Dadurch verstärken sich Schwachstellen verketteter Hashfunktionen (H1(m)||H2(m) ist nicht so sicher, wie Sie vielleicht denken).

Kollisionen vermeiden

Verwenden Sie SHA-256 oder SHA-3 für kollisionsresistentes Hashing. Vermeiden Sie MD5 und SHA-1 für jeden Sicherheitszweck. Für MACs: HMAC-SHA-256 oder HMAC-SHA-3. Für Passwort-Hashing: Argon2 (nicht direkt SHA-2). Verwenden Sie immer SHA-3, wenn Resistenz gegen Längenerweiterungsangriffe erforderlich ist.

Kurze Wissensprüfung

Wie viele Hash-Berechnungen sind ungefähr erforderlich, um eine Kollision in einer n-Bit-Hashfunktion zu finden?

Zusammenfassung

Der Geburtstagsangriff findet Hash-Kollisionen mit einem Aufwand von 2^{n/2}. Für MD5 existieren praktisch nutzbare Kollisionen mit gewähltem Präfix; SHA-1 wurde 2017 gebrochen. Längenerweiterungsangriffe brechen naive MACs der Form H(key||msg). Verwenden Sie SHA-256 oder SHA-3 sowie HMAC zur Nachrichtenauthentifizierung. Als Nächstes: Meet-in-the-Middle-Angriffe.

Häufig gestellte Fragen

Ist die Lektion „Geburtstags- und Kollisionsangriffe“ kostenlos?

Ja — der vollständige Text von „Geburtstags- und Kollisionsangriffe“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cryptology Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Geburtstags- und Kollisionsangriffe“?

Wenden Sie das Geburtstagsparadoxon auf Hash-Kollisionen und Hash-Length-Extension an. Du übst Cryptology Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Cryptology Academy zu starten?

Keine Vorkenntnisse erforderlich. Cryptology Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Geburtstags- und Kollisionsangriffe“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Cryptology Academy-Lektion Code schreiben und ausführen?

Ja. Jede Cryptology Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Grundlagen der differentiellen Kryptoanalyse
  2. Lineare Kryptoanalyse und Approximationstabellen
  3. Geburtstags- und Kollisionsangriffe
  4. Meet-in-the-Middle und Zeit-Speicher-Kompromisse
← Zurück zu Cryptology Academy