Birthday Attack Simulator
Ein Birthday Attack sucht nicht nach einem bestimmten Hashwert, sondern nach irgendeinem Paar von Eingaben mit demselben Hashwert. Genau das macht ihn so viel schneller als eine gezielte Suche.
Mit diesem Simulator führst du einen solchen Angriff direkt im Browser aus – in einem bewusst verkleinerten Hashraum.
Birthday Attack auf einen gekürzten Hash
Starte das Experiment: Es werden zufällige Eingaben gehasht, bis zwei davon denselben gekürzten Hashwert liefern.
Für dieses Experiment wird SHA-256 berechnet, aber nur ein kleiner Teil des Hashwerts verglichen. Dadurch wird der Hashraum künstlich verkleinert. Über vollständiges SHA-256 sagt das Experiment nichts aus.
- Effektive Bitlänge
- 16 Bit
- Mögliche gekürzte Hashwerte
- 216 = 65.536
- Birthday Bound (Größenordnung)
- 28 = 256
- Erwartete Versuche √(π·N/2)
- ≈ 321
- Versuche
- 0
- Vergangene Zeit
- –
Merke: Bei 216 möglichen Werten genügen meist Versuche in der Größenordnung von 28. Für vollständiges SHA-256 wären das rund 2128 – praktisch unerreichbar.
Was zeigt das Experiment?
Für jede zufällige Eingabe wird der vollständige SHA-256-Hash berechnet. Verglichen werden aber nur die ersten 8, 12, 16 oder 20 Bit. Dadurch entsteht ein künstlich kleiner Hashraum, in dem eine Collision schnell auftritt.
Wiederholst du das Experiment, schwankt die Zahl der Versuche. Sie bleibt aber fast immer in der Größenordnung von 2^(n/2) – bei 16 Bit also bei einigen hundert Versuchen statt 65.536.
Wichtig: Das Experiment bricht SHA-256 nicht. Die gefundenen Eingaben stimmen nur in den verglichenen Bits überein, ihre vollständigen SHA-256-Hashwerte sind verschieden. Für den vollständigen 256-Bit-Hash läge der Aufwand in der Größenordnung von 2^128 Versuchen.
Mehr über Birthday Attacks
Wie ein generischer Birthday Attack abläuft, erkläre ich im Artikel Wie funktioniert ein Birthday Attack?. Die mathematische Grundlage liefert Das Birthday Paradox, und was das für die Sicherheit von Hashfunktionen bedeutet, beschreibt Was ist Collision Resistance?.