
SHA-256
SHA-256 ist ein Rechenverfahren, das aus beliebigen Daten eine feste Zahlenfolge von 256 Stellen erzeugt – einen digitalen Fingerabdruck. Schon eine geänderte Ziffer in der Eingabe führt zu einem völlig anderen Ergebnis, und aus dem Ergebnis lässt sich die Eingabe nicht zurückrechnen.
SHA-256 ist eine feste Rechenvorschrift. Man gibt Daten hinein: einen Text, ein Passwort, eine ganze Datei. Heraus kommt immer eine Zahl mit 256 Binärstellen, meist als 64 Zeichen aus Ziffern und Buchstaben geschrieben. Diese Ausgabe nennt man Hashwert oder Fingerabdruck der Daten. Sie ist immer gleich lang, egal ob die Eingabe drei Buchstaben oder ein Kinofilm war. Und sie funktioniert nur in eine Richtung: aus den Daten lässt sich der Fingerabdruck leicht berechnen, aus dem Fingerabdruck aber praktisch nicht mehr die ursprünglichen Daten.
Warum ein Fingerabdruck aus 64 Zeichen so nützlich ist
Der wichtigste Nutzen ist der Vergleich. Wer prüfen will, ob zwei Dateien identisch sind, muss nicht Byte für Byte durchgehen. Es genügt, beide Hashwerte zu vergleichen. Stimmen sie überein, sind die Dateien mit an Sicherheit grenzender Wahrscheinlichkeit gleich. Unterscheiden sie sich, wurde irgendwo etwas verändert.
Daraus folgt der zweite Nutzen: Manipulationen fallen auf. Ein Download-Anbieter veröffentlicht neben der Datei ihren SHA-256-Wert. Nach dem Herunterladen kann jeder selbst nachrechnen. Passt der Wert nicht, wurde die Datei unterwegs verändert oder ist beschädigt. Genau deshalb steckt SHA-256 in Software-Updates, in digitalen Signaturen und in Blockchains.
Ein häufiger Irrtum ist, SHA-256 sei eine Verschlüsselung. Das ist es nicht. Verschlüsselte Daten kann man mit dem passenden Schlüssel wieder lesbar machen. Ein Hashwert ist dagegen endgültig – die Information ist weg. Deshalb speichern Dienste Passwörter als Hashwerte: Selbst wenn Angreifer die Datenbank stehlen, haben sie nicht die Passwörter selbst.
Vom Datenblock zum 64-Zeichen-Ergebnis
SHA-256 zerlegt die Eingabe zuerst in Blöcke von je 512 Bit, also 64 Zeichen Rohdaten. Ist der letzte Block zu kurz, wird er nach festen Regeln aufgefüllt. Dabei wird auch die Gesamtlänge der Eingabe mit hineingeschrieben. Dann startet das Verfahren mit acht festgelegten Startzahlen.
Jeder Block wird in 64 Runden verarbeitet. In jeder Runde werden die Zahlen addiert, bitweise verschoben und miteinander verknüpft. Diese Operationen sind einzeln simpel, aber sie vermischen die Information so gründlich, dass jedes Eingabebit auf das gesamte Ergebnis wirkt. Das Ergebnis eines Blocks fließt als Startwert in den nächsten Block ein. Nach dem letzten Block stehen die acht Zahlen fest – zusammengeschrieben sind sie der Hashwert.
Der wichtigste Effekt heißt Lawineneffekt. Ändert man in einem langen Text einen einzigen Buchstaben, sieht der neue Hashwert vollständig anders aus. Es gibt keine Ähnlichkeit, an der man die kleine Änderung ablesen könnte. Theoretisch müssen sich irgendwann zwei verschiedene Eingaben denselben Wert teilen, denn es gibt unendlich viele Eingaben und nur endlich viele Hashwerte. Solche Kollisionen sind bei SHA-256 aber bis heute niemand gelungen zu erzeugen, weil die Zahl der möglichen Werte mit rund 10 hoch 77 unvorstellbar groß ist.
Bitcoin, Passwörter und der Prüfsummen-Alltag
Am bekanntesten ist SHA-256 durch Bitcoin. Beim sogenannten Mining suchen Rechner eine Zahl, die zusammen mit den neuen Überweisungen einen Hashwert mit sehr vielen Nullen am Anfang ergibt. Das lässt sich nur durch stures Ausprobieren finden, Milliardenfach pro Sekunde. Genau dieses Ausprobieren verbraucht den Strom, über den in den Nachrichten berichtet wird. Für diesen Zweck wurden eigene Chips entwickelt, die nichts anderes können als SHA-256 rechnen.
Im leiseren Alltag begegnet man dem Verfahren ständig, ohne es zu merken. Jede verschlüsselte Verbindung im Browser prüft Zertifikate, die mit SHA-256 abgesichert sind. Linux-Distributionen und Programme wie Passwortmanager veröffentlichen Prüfsummen zu ihren Downloads. Git, das Versionsverwaltungssystem hinter fast aller Software-Entwicklung, benennt Datenstände über Hashwerte.
Für Passwörter gilt allerdings eine Einschränkung. SHA-256 ist absichtlich sehr schnell – und das hilft Angreifern, die Millionen Kandidaten pro Sekunde durchprobieren. Seriöse Dienste nutzen deshalb bewusst langsame Verfahren wie bcrypt oder Argon2 und mischen einen Zufallswert dazu. In Nachrichten über Datenlecks ist deshalb ein Hinweis auf ungesalzene SHA-256-Hashes eher ein schlechtes Zeichen.