Zum Hauptinhalt springen

SHA-256 vs. SHA-512 – was ist der Unterschied?

SHA-256 und SHA-512 gehören beide zur SHA-2-Familie aus dem Secure Hash Standard von NIST. SHA-256 erzeugt einen 256-Bit-Hash, SHA-512 einen 512-Bit-Hash.

Daraus lässt sich leicht der Schluss ziehen, SHA-512 sei einfach SHA-256 mit doppelter Ausgabelänge. Das stimmt nicht. Die beiden Algorithmen unterscheiden sich intern in Blockgröße, Wortgröße, Größe des Message Schedules, Rundenzahl und Padding.

Die Grundlagen habe ich in Was ist SHA-256? und Wie funktioniert SHA-256? erklärt. Wie eine konkrete Eingabe durch SHA-256 läuft, zeige ich in SHA-256 Schritt für Schritt. Hier stelle ich beide Algorithmen nebeneinander.

Der direkte Vergleich​

EigenschaftSHA-256SHA-512
Hashlänge256 Bit512 Bit
Hex-Darstellung64 Zeichen128 Zeichen
Blockgröße512 Bit1024 Bit
Wortgröße32 Bit64 Bit
Wörter pro Block1616
Message Schedule64 Wörter80 Wörter
Kompressionsrunden6480
Längenfeld beim Padding64 Bit128 Bit
Collision Resistance128 Bit256 Bit
Preimage Resistance256 Bit512 Bit

Second-Preimage Resistance fehlt in dieser vereinfachten Tabelle absichtlich, weil ihre Behandlung von der Nachrichtenlänge abhängt.

Vergleiche beide Algorithmen mit deiner Eingabe​

Gib im Comparator deinen eigenen Namen oder einen beliebigen kurzen Text ein. Dieselben UTF-8-Bytes gehen dann an SHA-256 und an SHA-512.

SHA-2 Comparator

Was ist anders, wenn exakt derselbe Text von SHA-256 und SHA-512 verarbeitet wird? Gib deinen Namen oder einen kurzen Text ein und vergleiche die echten Berechnungen.

0 Zeichen, 0 UTF-8-Bytes (maximal 55)

Dieses Tool dient der Veranschaulichung der SHA-2-Algorithmen. Für produktive kryptografische Anwendungen solltest du die Kryptografie-Funktionen deiner Plattform oder eine etablierte Bibliothek verwenden.

Alle eingabeabhängigen Werte, die der Comparator anzeigt, werden tatsächlich berechnet: Padding, Wörter des Blocks, Message Schedule, Runden und die beiden Hashes. Nur die festen Größen des Standards, etwa die Blockgröße, sind nicht von deinem Text abhängig.

Der Comparator ist eine Lernimplementierung und kein Ersatz für eine Kryptografie-Bibliothek. Im Folgenden gehe ich die Unterschiede einzeln durch. Lass den Comparator dabei geöffnet.

Unterschied 1: Die Ausgabelänge​

SHA-256
256 Bit
32 Byte
64 Hex-Zeichen

SHA-512
512 Bit
64 Byte
128 Hex-Zeichen

Schau dir im Comparator die beiden finalen Hashes für deine Eingabe an. Der SHA-512-Hash ist doppelt so lang, aber das ist nur der sichtbarste Unterschied. Alle folgenden Punkte betreffen den inneren Aufbau.

Unterschied 2: Die Blockgröße​

SHA-256 → 512-Bit-Blöcke
SHA-512 → 1024-Bit-Blöcke

Vergleiche die beiden Padding-Balken im Comparator. Beide enthalten dieselbe Nachricht, aber der SHA-512-Block ist doppelt so groß und enthält deshalb deutlich mehr Nullen.

SHA-512 verarbeitet pro Nachrichtenblock also doppelt so viele Bits. Daraus folgt nicht automatisch, dass SHA-512 doppelt so schnell oder doppelt so langsam ist. Dazu mehr im Abschnitt zur Performance.

Unterschied 3: Die Wortgröße​

Das ist einer der wichtigsten Unterschiede.

SHA-256
16 × 32-Bit-Wörter

SHA-512
16 × 64-Bit-Wörter

Beide Algorithmen teilen einen Block in 16 Wörter, aber die Wörter haben unterschiedliche Größe. Betrachte im Comparator W₀ bis W₃ und öffne optional alle 16 Wörter. Dieselben Bytes bilden bei SHA-256 kürzere und bei SHA-512 längere Wörter.

Die Wortgröße bestimmt vieles im Algorithmus:

SHA-256 → Addition modulo 2³²
SHA-512 → Addition modulo 2⁶⁴

Unterschied 4: Das Message Schedule​

SHA-256
W₀ ... W₆₃
64 × 32 Bit

SHA-512
W₀ ... W₇₉
80 × 64 Bit

Beide Algorithmen starten mit 16 Wörtern aus dem gepaddeten Block. Alle weiteren Wörter werden berechnet. Schau dir dafür im Comparator die Visualisierung des Message Schedules an und öffne W₁₆: Die Formel sieht bei beiden ähnlich aus, doch die Rechnung findet einmal mit 32 und einmal mit 64 Bit statt.

SHA-512 verwendet dabei eigene 64-Bit-Sigma-Funktionen mit anderen Rotations- und Shift-Werten als SHA-256. Vergleiche auch die Größen der beiden Schedules: 64 Wörter zu 32 Bit gegenüber 80 Wörtern zu 64 Bit. Alle Schedule-Wörter drucke ich hier bewusst nicht ab, denn für deine Eingabe siehst du sie im Comparator.

Unterschied 5: Die Kompressionsrunden​

SHA-256 → 64 Runden
SHA-512 → 80 Runden

Beide Algorithmen folgen demselben Grundprinzip:

  • Arbeitsvariablen a bis h,
  • die Funktionen Ch und Maj,
  • die Σ-Funktionen,
  • ein Schedule-Wort und eine Rundenkonstante pro Runde,
  • Feed-forward nach der letzten Runde.

SHA-512 rechnet aber mit 64-Bit-Operationen und verwendet andere Konstanten und Rotationsparameter. Deshalb ist diese Vereinfachung falsch:

SHA-512 ≠ SHA-256
+ 16 Runden
+ längerer Hash

Vergleiche im Comparator den Rundenbereich: 64 Runden gegenüber 80 Runden, jeweils mit dem passenden Wort Wₜ.

Unterschied 6: Das Padding​

Die Grundstruktur ist bei beiden gleich:

[ Nachricht ][ 1 ][ Nullen ][ Nachrichtenlänge ]

Der Unterschied liegt im Längenfeld:

SHA-256 → 64-Bit-Längenfeld
SHA-512 → 128-Bit-Längenfeld

FIPS 180-4 erlaubt für SHA-256 Nachrichten mit einer Länge von weniger als 2⁶⁴ Bit und für SHA-512 Nachrichten mit weniger als 2¹²⁸ Bit.

Im Comparator siehst du die echten Padding-Balken für deine Eingabe. Der Comparator akzeptiert bewusst nur Eingaben bis 55 UTF-8-Bytes, damit beide Algorithmen nach dem Padding in genau einen Block passen. Das ist eine didaktische Einschränkung der Oberfläche und keine Grenze von SHA-256 oder SHA-512.

Dieselbe Eingabe, andere interne Darstellung​

Der Comparator zeigt etwas Wichtiges: Die Eingabebytes sind identisch, aber danach trennen sich die Wege.

dieselben UTF-8-Bytes
↓
┌───────┴───────┐
↓ ↓
SHA-256 SHA-512
512-Bit- 1024-Bit-
Block Block
↓ ↓
32-Bit- 64-Bit-
Wörter Wörter
↓ ↓
64-Wörter- 80-Wörter-
Schedule Schedule
↓ ↓
64 Runden 80 Runden

Du kannst das direkt im Comparator beobachten, indem du die Abschnitte von oben nach unten durchgehst.

Sind SHA-256 und SHA-512 verwandt?​

Ja, aber sie sind nicht dieselben Algorithmen in unterschiedlicher Größe. Beide gehören zur SHA-2-Familie und teilen sich zentrale Konzepte:

  • Padding,
  • Nachrichtenblöcke,
  • Message Schedule,
  • acht Arbeitsvariablen,
  • Ch und Maj,
  • Sigma-Funktionen,
  • Konstanten,
  • modulare Addition,
  • Feed-forward.

Wie diese Bausteine bei SHA-256 zusammenspielen, erkläre ich ausführlich in Wie funktioniert SHA-256?. SHA-512 setzt sie mit anderen Größen, Konstanten und Rotationen um.

Ist SHA-512 sicherer?​

Für eine ideale Hashfunktion mit n Bit Ausgabe gilt als generischer Aufwand:

Preimage-Suche ≈ 2ⁿ
Collision-Suche ≈ 2^(n/2)

Daraus ergibt sich:

SHA-256
Preimage: 256 Bit Sicherheit
Collision: 128 Bit Sicherheit

SHA-512
Preimage: 512 Bit Sicherheit
Collision: 256 Bit Sicherheit

Deshalb bedeutet ein 256-Bit-Digest nicht 256 Bit Sicherheit gegen Collisions. Den Hintergrund erkläre ich in Das Birthday Paradox und Wie funktioniert ein Birthday Attack?. Die Begriffe selbst findest du unter Collision Resistance und Preimage Resistance. Was 128, 256 oder 512 Bit praktisch bedeuten, beschreibt Wie sicher sind 128, 256 und 512 Bit?.

Die größeren theoretischen Werte von SHA-512 machen SHA-256 nicht unsicher. SHA-256 ist weiterhin ein von NIST zugelassener SHA-2-Algorithmus mit sehr hoher Sicherheit.

Im Abschnitt „Security Strength“ des Comparators siehst du diese Werte nebeneinander. Es sind generische, erwartete Sicherheitsstärken und keine Laufzeitprognosen. „128 Bit“ lässt sich nicht in Sekunden umrechnen, denn das hängt von Angriffsmodell und Ressourcen ab.

Ist SHA-512 immer besser?​

Nein. Welcher Algorithmus passt, hängt ab von:

  • den Anforderungen des Protokolls,
  • der Interoperabilität,
  • der benötigten Sicherheitsstärke,
  • der Plattform,
  • der Performance,
  • der Größe von Digest und Speicherbedarf.

Eine allgemeingültige Empfehlung gebe ich deshalb nicht.

Performance​

SHA-512 ist nicht automatisch doppelt so langsam, nur weil der Hash doppelt so lang ist. Mehrere Faktoren wirken gegeneinander:

  • SHA-512 hat 80 statt 64 Runden,
  • SHA-512 verarbeitet 1024 statt 512 Bit pro Block,
  • SHA-512 rechnet mit 64-Bit-Wörtern,
  • die tatsächliche Geschwindigkeit hängt von Architektur und Implementierung ab,
  • Hardwarebeschleunigung kann eine Rolle spielen.

Konkrete Zahlen nenne ich ohne Benchmark nicht. Wenn Performance wichtig ist, miss beide Algorithmen auf der tatsächlichen Zielplattform.

Passwörter​

Weder SHA-256 noch SHA-512 sollten direkt als Verfahren zur Passwortspeicherung verwendet werden. Allgemeine kryptografische Hashfunktionen sind absichtlich schnell. Für Passwörter braucht es ein geeignetes Passwort-Hashing-Verfahren mit Salt und einstellbarem Kostenfaktor. Dieses Thema bekommt einen eigenen Bereich.

SHA-512/256​

SHA-2 enthält auch SHA-512/256. Dieser Algorithmus:

  • erzeugt 256 Bit Ausgabe,
  • basiert intern auf der SHA-512-Struktur,
  • arbeitet mit 1024-Bit-Blöcken, 64-Bit-Wörtern und 80 Runden,
  • verwendet eigene Initialwerte.

SHA-512/256 ist nicht einfach ein SHA-512-Hash, dem die letzten 256 Bit abgeschnitten wurden, und auch nicht derselbe Algorithmus wie SHA-256.

Das verstärkt die wichtigste Lehre dieses Artikels: Die Hashlänge allein beschreibt nicht, wie ein Hashalgorithmus intern aufgebaut ist. Eine ausführliche Behandlung findest du in Was sind SHA-512/224 und SHA-512/256?.

SHA-256 oder SHA-512?​

Eine größere Zahl ist nicht automatisch die richtige Entscheidung. Verlangt ein Protokoll, eine API oder eine Spezifikation einen bestimmten Algorithmus, richte dich danach. Wenn du selbst wählst, orientiere dich an den Anforderungen deiner Anwendung. SHA-512 ist kein universeller Ersatz für SHA-256.

Das Wichtigste in Kürze​

SHA-256SHA-512
Hashlänge256 Bit512 Bit
Blockgröße512 Bit1024 Bit
Wortgröße32 Bit64 Bit
Message Schedule64 Wörter80 Wörter
Runden6480
Padding-Längenfeld64 Bit128 Bit
Collision Resistance128 Bit256 Bit
Preimage Resistance256 Bit512 Bit

SHA-512 ist nicht einfach SHA-256 mit einem doppelt so langen Hashwert.

Den Comparator findest du auch als eigenständiges Werkzeug im Tools-Bereich.

Wie geht es weiter?​

Im nächsten Artikel, Was ist SHA-512?, schaue ich mir SHA-512 genauer an: die 64-Bit-Wörter, die 1024-Bit-Blöcke, das Message Schedule mit 80 Wörtern, die 80 Runden und die Beziehung zu SHA-384 und SHA-512/t.

Grundlagen zu Hashfunktionen findest du in Was ist eine Hashfunktion?.

Quellen und weiterführende Standards​

  1. National Institute of Standards and Technology (NIST), FIPS 180-4 – Secure Hash Standard (SHS) Primärquelle für Blockgrößen, Wortgrößen, Padding, Message Schedule, Rundenzahlen und SHA-512/256.

  2. National Institute of Standards and Technology (NIST), Hash Functions Überblick über die von NIST zugelassenen Hashfunktionen.

  3. National Institute of Standards and Technology (NIST), NIST Policy on Hash Functions Aussagen zur Verwendung der zugelassenen Hashfunktionen.