Zum Hauptinhalt springen

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.

Verglichene Bits des SHA-256-Hashwerts
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?.