SHA-256 ist die Hashfunktion, die einen großen Teil der digitalen Infrastruktur absichert, mit der Sie täglich arbeiten. Sie steckt in der Signatur hinter dem Schloss-Symbol im Browser, bildet den Fingerabdruck heruntergeladener Software und verankert jeden Block in der Bitcoin-Blockchain. Als Forscher SHA-1 mit der SHAttered-Kollision brachen, war SHA-256 bereits der empfohlene Nachfolger und ist bis heute in der Praxis ungebrochen. Dieser Artikel erklärt, was SHA-256 leistet, wie es im Inneren arbeitet und warum es dieses Vertrauen verdient.
Was SHA-256 ist
SHA-256 steht für Secure Hash Algorithm 256-Bit. Es gehört zur SHA-2-Familie, einer Gruppe von Hashfunktionen, die von der US-amerikanischen National Security Agency (NSA) entworfen und 2001 vom National Institute of Standards and Technology (NIST) im Rahmen von FIPS 180-2 veröffentlicht wurde. Die Zahl 256 bezeichnet die Länge der Ausgabe: Jede Eingabe, ob ein einzelnes Zeichen oder ein mehrere Gigabyte großes Festplatten-Abbild, erzeugt einen Hashwert von exakt 256 Bit. Das entspricht 32 Byte, üblicherweise dargestellt als 64 hexadezimale Zeichen.
Eine Hashfunktion nimmt Daten beliebiger Länge entgegen und reduziert sie auf einen Fingerabdruck fester Länge. SHA-256 ist eine konkrete, standardisierte Methode, genau das zu tun. Wie sich diese Klasse von Algorithmen allgemein verhält, beschreibt die Übersicht zu Hashfunktionen; hier liegt der Fokus auf dem Aufbau von SHA-256 selbst.
Zur SHA-2-Familie gehören außerdem SHA-224, SHA-384 und SHA-512. Sie unterscheiden sich vor allem in Ausgabelänge und interner Wortbreite. SHA-256 ist die am weitesten verbreitete Variante, weil die 256-Bit-Ausgabe einen praktischen Kompromiss trifft: lang genug, um Brute-Force-Angriffen auf absehbare Zeit zu widerstehen, kurz genug, um sie günstig zu speichern und zu übertragen.
Die Kerneigenschaften
Eine kryptografische Hashfunktion ist nur dann nützlich, wenn sie einige strenge Garantien einhält. SHA-256 wurde so entworfen, dass es alle davon erfüllt.
Deterministisch und feste Länge
Dieselbe Eingabe liefert immer dieselbe Ausgabe. Hashen Sie das Wort Kryptografie heute, nächstes Jahr oder auf einem anderen Rechner, erhalten Sie jedes Mal denselben 64 Zeichen langen Hashwert. Auch die Ausgabelänge ändert sich nie: Eine leere Zeichenkette und ein vollständiger Roman ergeben beide genau 256 Bit.
Einwegfunktion (Preimage-Resistenz)
Aus einem gegebenen Hashwert lässt sich die ursprüngliche Eingabe nicht mit vertretbarem Aufwand rekonstruieren. Die Funktion verwirft beim Rechnen jede erkennbare Struktur, sodass eine Umkehrung das Durchsuchen eines astronomisch großen Raums möglicher Eingaben bedeuten würde. Genau das erlaubt es einem System, einen Fingerabdruck sensibler Daten zu speichern, ohne die Daten selbst abzulegen.
Kollisionsresistenz
Eine Kollision sind zwei verschiedene Eingaben, die denselben Hashwert erzeugen. Bei einer sicheren 256-Bit-Hashfunktion würde es wegen des Geburtstagsproblems rund 2^128 Operationen kosten, eine solche per Brute Force zu finden, weit jenseits jeder heutigen oder absehbaren Rechenleistung. Für SHA-256 ist keine praktische Kollision bekannt.
Der Lawineneffekt
Ändert man ein einziges Bit der Eingabe, kippt im Durchschnitt die Hälfte der Ausgabebits. Es gibt kein allmähliches Abdriften; eine winzige Änderung erzeugt einen Hashwert, der mit dem Original keinerlei Ähnlichkeit mehr hat. Diese Eigenschaft macht einen Hash zum verlässlichen Werkzeug, um Manipulationen zu erkennen: Jede noch so kleine Veränderung fällt sofort auf.
Feste Ausgabelänge
Unabhängig von der Eingabegröße ist die Ausgabe stets 256 Bit lang. Das macht Hashwerte gut vergleichbar und sorgt dafür, dass Speicherbedarf und Verarbeitungskosten konstant bleiben, egal ob ein Byte oder ein Terabyte gehasht wird.
Ein anschauliches Beispiel
Der Lawineneffekt lässt sich an einer kurzen Zeichenkette am besten beobachten, indem man verfolgt, was bei der Änderung eines einzigen Zeichens passiert. Die folgenden Hexwerte sind als Beispiel gekennzeichnet und stehen stellvertretend für die tatsächliche Ausgabe, sie sind keine echten berechneten Hashes:
Eingabe: "shattered"
SHA-256: 4c9c8f3b... (Beispiel: ein fester 64-Zeichen-Hexwert)
Eingabe: "shattereD" (nur der letzte Buchstabe in Großschreibung)
SHA-256: e1b7a402... (Beispiel: ein völlig anderer 64-Zeichen-Hexwert)
Beide Eingaben sind neun Zeichen lang und unterscheiden sich um ein einziges Bit (kleines d gegenüber großem D). Trotzdem haben die beiden Hashwerte keinerlei Gemeinsamkeit, und beide bestehen weiterhin aus exakt 64 Hexzeichen, weil die Ausgabelänge fest ist. Vollständige Empfindlichkeit gegenüber der Eingabe bei gleichzeitig konstanter Ausgabegröße ist genau der Sinn der Sache.
So funktioniert SHA-256
Man braucht nicht die vollständige Spezifikation, um dem Ablauf zu folgen. SHA-256 verarbeitet eine Nachricht in fünf gedanklichen Schritten.
1. Padding der Nachricht
Die Eingabe wird zunächst aufgefüllt, damit ihre Gesamtlänge ein Vielfaches von 512 Bit ergibt. Das Padding hängt ein einzelnes 1-Bit an, danach so viele 0-Bits wie nötig und schließlich einen 64-Bit-Wert, der die ursprüngliche Nachrichtenlänge festhält. Dass die Länge fest in das Padding kodiert wird, ist eine bewusste Absicherung gegen Angriffe, die durch ein abweichendes Padding dieselbe Blockstruktur vortäuschen wollen.
2. Aufteilung in 512-Bit-Blöcke
Die aufgefüllte Nachricht wird in Blöcke zu je 512 Bit zerlegt, die SHA-256 nacheinander einzeln verarbeitet. Jeder Block aktualisiert einen internen Zustand aus acht 32-Bit-Wörtern. Dieser Zustand startet von acht festen Anfangswerten, die aus den Nachkommastellen der Quadratwurzeln der ersten acht Primzahlen abgeleitet sind.
3. Aufbau des Message Schedule
Für jeden 512-Bit-Block erweitert der Algorithmus die 16 eingehenden 32-Bit-Wörter auf 64. Die zusätzlichen 48 entstehen, indem frühere Wörter über Bit-Rotationen, Verschiebungen und XOR miteinander vermischt werden. Dieses erweiterte Feld, der Message Schedule, sorgt dafür, dass jeder Teil des Blocks viele Runden der Verarbeitung beeinflusst.
4. 64 Runden Kompression
Das Herzstück von SHA-256 ist seine Kompressionsfunktion, die pro Block 64 Runden durchläuft. Jede Runde nimmt die acht Arbeitsvariablen (mit a bis h bezeichnet), mischt ein Wort aus dem Message Schedule und eine Rundenkonstante hinzu und verrührt den Zustand über Additionen, Rotationen und die logischen Funktionen Ch und Maj. Die 64 Rundenkonstanten sind nicht willkürlich gewählt: Sie sind die Nachkommastellen der Kubikwurzeln der ersten 64 Primzahlen. Solche bekannten mathematischen Konstanten zu verwenden, ist eine Transparenzmaßnahme. Sie belegt, dass die Entwerfer keine versteckte Struktur eingebaut haben, ein Prinzip, das oft als “Nothing up my sleeve” bezeichnet wird.
5. Erzeugung des Hashwerts
Nach dem letzten Block werden die acht 32-Bit-Arbeitswörter zu einem einzigen 256-Bit-Wert zusammengefügt: dem Hashwert. Die gesamte Konstruktion, die Blöcke der Reihe nach verarbeitet und den Zustand dabei weiterträgt, folgt dem Merkle-Damgård-Modell, das hinter den meisten klassischen Hash-Designs steht.
Warum SHA-256 SHA-1 ablöste
SHA-1 erzeugt einen 160-Bit-Hashwert und war das Arbeitspferd der 1990er- und 2000er-Jahre. Theoretische Schwächen tauchten bereits 2005 auf, doch der entscheidende Schlag kam im Februar 2017, als Forscher des CWI Amsterdam und von Google SHAttered vorstellten: die erste praktische SHA-1-Kollision. Sie erzeugten zwei verschiedene PDF-Dateien mit identischem SHA-1-Hashwert und bewiesen damit, dass die Kollisionsresistenz in der realen Welt gebrochen war, nicht nur auf dem Papier.
Dieses Ergebnis beschleunigte eine ohnehin laufende Migration. Zertifizierungsstellen, Browser und Versionsverwaltungssysteme wechselten zu SHA-256, dessen größere Ausgabe und stärkeres Design keine vergleichbare Schwäche aufweisen.
| Algorithmus | Ausgabelänge | Jahr der Standardisierung | Status |
|---|---|---|---|
| SHA-1 | 160 Bit | 1995 | Gebrochen (praktische Kollision 2017) |
| SHA-256 | 256 Bit | 2001 | Sicher, weit verbreitet |
| SHA-3 | variabel (224 bis 512 Bit) | 2015 | Sicher, andere Bauweise |
SHA-3, von NIST 2015 standardisiert, verdient eine Anmerkung. Es ist kein Flicken für SHA-2, sondern eine andere Konstruktion (ein Schwamm-Verfahren auf Basis des Keccak-Algorithmus), die über einen öffentlichen Wettbewerb ausgewählt wurde. SHA-3 existiert als strukturelle Rückfallebene, damit die Welt nicht von einer einzigen Designfamilie abhängt. Sowohl SHA-256 als auch SHA-3 gelten heute als sicher.
Wo SHA-256 eingesetzt wird
Der Algorithmus taucht überall dort auf, wo ein vertrauenswürdiger Fingerabdruck gebraucht wird.
TLS und Zertifikate. Die digitalen Zertifikate hinter HTTPS werden mit SHA-256 signiert. Wenn Ihr Browser eine Website prüft, verlässt er sich auf einen SHA-256-Hashwert innerhalb dieser Signatur, um zu bestätigen, dass das Zertifikat unverändert ist.
Passwort-Hashing. Systeme speichern keine Passwörter im Klartext. SHA-256 kommt in diesem Zusammenhang vor, allerdings bettet sichere Passwortspeicherung es in ein bewusst langsames, mit Salt versehenes Verfahren wie PBKDF2 oder ein bcrypt-artiges Schema ein. Ein nackter Hash ist schnell, was für Integritätsprüfungen passt, für Passwörter aber ein Risiko darstellt. Die Verlangsamung ist daher Absicht.
Datei-Integrität und Prüfsummen. Softwareprojekte veröffentlichen neben ihren Downloads eine SHA-256-Prüfsumme. Nach dem Herunterladen einer Datei hashen Sie sie und vergleichen. Stimmen die Hashwerte überein, ist die Datei unverändert angekommen. Ein einziges gekipptes Bit verändert den gesamten Hashwert, weshalb die Prüfung keine Abweichung durchgehen lässt.
Bitcoin Proof of Work. SHA-256 ist der Motor von Bitcoin. Miner hashen Blockköpfe immer wieder und suchen nach einer Ausgabe unterhalb eines Zielwerts (das Proof-of-Work-Rätsel), und jeder Block wird über seinen Hashwert identifiziert. Das Verfahren ist absichtlich schwer zu lösen, aber leicht zu überprüfen, genau die Asymmetrie, die ein dezentrales Netzwerk braucht.
Provably-Fair-Glücksspiel. Online-Spiele können SHA-256 nutzen, um zu beweisen, dass ein Ergebnis im Voraus feststand und nie verändert wurde. Der Anbieter legt sich auf einen geheimen Server-Seed fest, indem er dessen Hashwert vor Spielbeginn veröffentlicht. Nach der Runde wird der ursprüngliche Seed offengelegt, und der Spieler hasht ihn, um zu bestätigen, dass er zu dieser früheren Festlegung passt. Weil der Hash einweggerichtet und deterministisch ist, hätte der Anbieter den Seed nicht manipulieren können, ohne dass die Änderung auffliegt. Unser Leitfaden zu Provably-Fair-Systemen zeigt, wie Sie ein Ergebnis selbst überprüfen.
Ist SHA-256 noch sicher?
Ja. Es gibt keinen bekannten praktischen Kollisionsangriff gegen SHA-256 und keine durchführbare Methode, es umzukehren oder Preimages zu finden. Die besten bekannten Angriffe bleiben deutlich schwächer als Brute Force und betreffen nur rundenreduzierte Varianten, die in akademischen Studien untersucht werden, nicht die vollständige 64-Runden-Funktion. Der übergeordnete Kryptografie-Überblick verfolgt den aktuellen Stand der Forschung. Sofern es keinen grundlegenden mathematischen Durchbruch gibt, dürfte SHA-256 noch Jahre sicher bleiben, was genau der Grund ist, warum es einen so großen Teil des modernen Internets trägt.
Häufig gestellte Fragen
Ist SHA-256 eine Verschlüsselung?
Nein. Verschlüsselung ist umkehrbar: Mit dem richtigen Schlüssel lässt sich der Geheimtext wieder zum Klartext entschlüsseln. SHA-256 ist ein Einweg-Hash ohne Schlüssel und ohne Umkehrung. Es erzeugt einen Fingerabdruck, keine wiederherstellbare Nachricht.
Können zwei verschiedene Dateien jemals denselben SHA-256-Hash haben?
Theoretisch ja, denn unendlich viele Eingaben werden auf eine endliche Menge von 256-Bit-Ausgaben abgebildet. In der Praxis würde das Finden eines solchen Paares in der Größenordnung von 2^128 Operationen liegen, was rechnerisch nicht durchführbar ist. Es wurde bisher keine SHA-256-Kollision gefunden.
Wie lang ist ein SHA-256-Hash?
Immer 256 Bit, also 32 Byte oder 64 hexadezimale Zeichen. Die Länge ist fest, unabhängig davon, ob die Eingabe ein Byte oder ein Terabyte umfasst.
Warum nutzt Bitcoin ausgerechnet SHA-256?
SHA-256 war eine ausgereifte, gründlich analysierte und ungebrochene Hashfunktion, als Bitcoin 2009 startete. Seine Einweg-Eigenschaft und der Lawineneffekt machen das Proof-of-Work-Rätsel schwer zu lösen, aber trivial zu überprüfen, genau die Asymmetrie, die ein dezentrales Netzwerk benötigt.




