Zum Hauptinhalt springen

Wie sicher sind 128, 256 und 512 Bit?

Bei kryptografischen Verfahren begegnen uns ständig Zahlen wie:

128 Bit
256 Bit
512 Bit

Je größer, desto sicherer?

Grundsätzlich kann eine größere Zahl einen größeren möglichen Suchraum bedeuten.

Aber bei Hashfunktionen gibt es einen entscheidenden Haken:

Hashlänge und Security Strength sind nicht dasselbe.

Ein SHA-256-Hash ist 256 Bit lang.

Trotzdem besitzt SHA-256 nicht für jede Angriffsklasse 256 Bit Security.

Was bedeutet „128 Bit Security“?​

NIST definiert Security Strength über den Arbeitsaufwand, der benötigt wird, um einen kryptografischen Algorithmus oder ein System zu brechen.

Vereinfacht bedeutet:

128 Bit Security
≈
2¹²⁸ Operationen

entsprechend:

256 Bit Security
≈
2²⁵⁶ Operationen

Die Zahl beschreibt also nicht einfach die Länge eines Strings.

Sie beschreibt eine Größenordnung des erwarteten Angriffsaufwands.

Wie groß ist 2¹²⁸?​

2¹²⁸ entspricht ungefähr:

3,4 × 10³⁸

möglichen Zuständen beziehungsweise einer entsprechenden Größenordnung grundlegender Operationen bei einer generischen Suche.

Zum Vergleich:

2²⁵⁶ ≈ 1,16 × 10⁷⁷

Das Entscheidende dabei:

Eine Erhöhung um ein Bit verdoppelt den Suchraum.

2¹²⁸

ist deshalb nicht „halb so groß“ wie:

2²⁵⁶

Der Unterschied ist exponentiell.

Was bedeutet das für SHA-256?​

SHA-256 erzeugt:

256 Bit

Ausgabe.

Für die verschiedenen Sicherheitseigenschaften ergeben sich aber unterschiedliche Werte.

NIST führt für SHA-256:

EigenschaftSecurity Strength
Collision Resistance128 Bit
Preimage Resistance256 Bit
Second-Preimage Resistanceabhängig von der Nachrichtenlänge

Warum?

Bei einem Preimage-Angriff muss ein vorgegebener Hashwert getroffen werden.

Der generische Aufwand liegt für einen idealen 256-Bit-Hash in der Größenordnung von:

2²⁵⁶

Bei einer Collision muss dagegen nur irgendein Paar gleicher Hashwerte gefunden werden.

Durch den Birthday Bound liegt der generische Aufwand bei:

2¹²⁸

Die Bedeutung dieser Eigenschaften erkläre ich in den Artikeln Was ist Preimage Resistance? und Was ist Collision Resistance?.

Warum NIST die Second-Preimage-Resistance-Stärke von SHA-256 mit 256 − L(M) Bit und damit abhängig von der Nachrichtenlänge angibt, erkläre ich im Artikel Was ist Second-Preimage Resistance?.

Wie SHA-256 intern aufgebaut ist, erkläre ich im Artikel Was ist SHA-256?.

Und SHA-512?​

SHA-512 erzeugt eine Ausgabe von:

512 Bit

NIST führt dafür:

EigenschaftSecurity Strength
Collision Resistance256 Bit
Preimage Resistance512 Bit
Second-Preimage Resistanceabhängig von der Nachrichtenlänge

Auch hier gilt also:

512 Bit Hashlänge
≠
512 Bit Collision Security

Die generische Collision Resistance liegt bei 256 Bit.

Ist 512 Bit also doppelt so sicher wie 256 Bit?​

Diese Formulierung wäre irreführend.

Kryptografische Sicherheitsstärken wachsen exponentiell.

Zwischen:

2¹²⁸

und:

2²⁵⁶

liegt kein Faktor 2.

Der Quotient beträgt:

2²⁵⁶ / 2¹²⁸
=
2¹²⁸

Eine Erhöhung der Security Strength von 128 auf 256 Bit vergrößert den generischen Suchaufwand also selbst um den Faktor 2¹²⁸.

Deshalb sollte man kryptografische Bitangaben nicht wie gewöhnliche lineare Größen vergleichen.

128 Bit Hashlänge ist nicht 128 Bit Collision Security​

Dieser Punkt ist besonders wichtig.

Ein idealer Hash mit 128 Bit Ausgabe besitzt generisch nur ungefähr:

64 Bit

Collision Resistance.

Ein idealer Hash mit 256 Bit Ausgabe:

128 Bit

und mit 512 Bit Ausgabe:

256 Bit

Daraus ergibt sich:

Hashausgabegenerische Preimage Securitygenerische Collision Security
128 Bit128 Bit64 Bit
256 Bit256 Bit128 Bit
512 Bit512 Bit256 Bit

Diese Tabelle beschreibt die generische Erwartung für ideale Hashfunktionen. Die tatsächliche Sicherheit eines konkreten Algorithmus kann durch kryptanalytische Schwächen geringer sein.

Woher die Halbierung bei Kollisionen kommt, erkläre ich in den Artikeln Das Birthday Paradox und Wie funktioniert ein Birthday Attack?.

Warum reicht die Bitzahl allein nicht?​

Die Angabe einer Bitlänge beantwortet noch nicht die Frage, ob ein konkretes System sicher ist.

Dafür muss unter anderem klar sein:

  • welcher Algorithmus verwendet wird,
  • welche Sicherheitseigenschaft betrachtet wird,
  • ob bekannte kryptanalytische Angriffe existieren,
  • wie das Verfahren eingesetzt wird,
  • und wie groß beziehungsweise vorhersehbar der tatsächliche Eingaberaum ist.

Ein schwaches Passwort wird beispielsweise nicht dadurch stark, dass es mit SHA-512 gehasht wird.

Wenn der Angreifer weiß, dass die Eingabe aus einem kleinen Kandidatenraum stammt, kann er diese Kandidaten gezielt ausprobieren.

Probier die Größenordnungen selbst aus​

Mit dem folgenden Security Bits Calculator kannst du Sicherheitsstärken von 64 bis 512 Bit auswählen und sehen, welche Größenordnung hinter 2^n steckt.

Besonders aufschlussreich ist der direkte Vergleich zweier Werte: Er zeigt, warum 256 Bit nicht einfach „doppelt so viel“ wie 128 Bit bedeuten.

Im unteren Teil siehst du außerdem, wie sich Hashlänge, Preimage Security und Collision Security voneinander unterscheiden.

Security Bits Calculator

Wähle eine Security Strength und sieh, welcher Aufwand sich hinter der Bitzahl verbirgt – und warum Hashlänge und Security Strength nicht dasselbe sind.

Security Strength

128 Bit Security

2128

≈ 3,40 × 1038

So viele Versuche braucht ein generischer Angriff in der Größenordnung. Jedes zusätzliche Bit verdoppelt den Aufwand.

Exakten Wert von 2128 anzeigen (39 Stellen)
340.282.366.920.938.463.463.374.607.431.768.211.456

Zwei Security Strengths vergleichen

2256 / 2128 = 2128

≈ 3,40 × 1038

256 Bit Security bedeutet nicht doppelt so viel Aufwand wie 128 Bit Security, sondern 2128-mal so viel.

Hashlänge ≠ Security Strength

Ideale Hashfunktion mit Ausgabelänge
Oder NIST-Werte für

Generische Erwartung für eine ideale 256-Bit-Hashfunktion

Hashausgabe
256 Bit
Generische Preimage Security
256 Bit ≈ 2256
Generische Collision Security
128 Bit ≈ 2128

Das ist die generische Erwartung für eine ideale Hashfunktion: Preimage-Angriffe brauchen etwa 2n Versuche, Collisions wegen des Birthday Bounds nur etwa 2n/2. Eine reale Hashfunktion erreicht diese Werte nicht automatisch – MD5 hat zum Beispiel eine 128-Bit-Ausgabe, ist aber bei der Collision Resistance praktisch gebrochen.

Merke: Security Strength wächst exponentiell: Jedes Bit verdoppelt den Aufwand. Und die Collision Security eines n-Bit-Hashs liegt generisch nur bei n/2 Bit.

Du findest dieses Tool auch im Tools-Bereich.

Und was ist mit Quantencomputern?​

Quantencomputer verändern die Bewertung bestimmter kryptografischer Probleme.

Insbesondere kann Grovers Algorithmus eine unstrukturierte Suche theoretisch quadratisch beschleunigen.

Das bedeutet aber nicht, dass alle Bitangaben einfach pauschal halbiert werden dürfen oder heutige Hashfunktionen dadurch automatisch unsicher sind.

Die praktische Bewertung hängt vom Angriff, dem Algorithmus und den benötigten Quantenressourcen ab.

NIST verwendet deshalb für Post-Quantum-Sicherheit eigene Sicherheitskategorien und vergleicht Verfahren unter anderem mit den Angriffskosten gegen AES und Hashfunktionen.

Das Thema verdient einen eigenen Artikel und sollte nicht auf die Aussage „Quantencomputer halbieren die Sicherheit“ reduziert werden.

Das Wichtigste in Kürze​

  • Security Strength beschreibt den erwarteten Aufwand zum Brechen einer kryptografischen Sicherheitseigenschaft.
  • N Bit Security entsprechen grob einer Größenordnung von 2^N grundlegenden Operationen.
  • Hashlänge und Security Strength sind nicht dasselbe.
  • SHA-256 besitzt 256 Bit Preimage Resistance, aber 128 Bit Collision Resistance.
  • SHA-512 besitzt 512 Bit Preimage Resistance, aber 256 Bit Collision Resistance.
  • Für ideale Hashfunktionen liegt die generische Collision Security ungefähr bei der Hälfte der Ausgabelänge.
  • Kryptografische Bitangaben wachsen exponentiell und nicht linear.
  • Eine große Hashlänge schützt keinen kleinen oder vorhersehbaren Eingaberaum.
  • Quantenangriffe sollten separat und nicht durch eine pauschale „Bits halbieren“-Regel bewertet werden.

Wie geht es weiter?​

Damit wissen wir, was kryptografische Bitangaben tatsächlich aussagen.

Eine Frage taucht bei Hashfunktionen aber immer wieder auf:

Wenn ein Hash eine Einwegfunktion ist – kann man ihn wirklich niemals zurückrechnen?

Genau darum geht es im nächsten Artikel:

Kann man einen Hash zurückrechnen?

Quellen und weiterführende Standards​

Die folgenden Primär- und Normquellen bilden die Grundlage für die technischen Aussagen dieses Artikels:

  1. National Institute of Standards and Technology (NIST), CSRC Glossary – Security Strength Definition von Security Strength.

  2. National Institute of Standards and Technology (NIST), Hash Functions Sicherheitsstärken der zugelassenen Hashfunktionen, darunter SHA-256 und SHA-512.

  3. National Institute of Standards and Technology (NIST), SP 800-57 Part 1 Rev. 5 – Recommendation for Key Management: Part 1 – General Einordnung kryptografischer Sicherheitsstärken.

  4. National Institute of Standards and Technology (NIST), Post-Quantum Cryptography – Security (Evaluation Criteria) Sicherheitskategorien für Post-Quantum-Verfahren unter Berücksichtigung von Quantenangriffen.