SHA-512
Kurz: Ein Hashing-Algorithmus aus der SHA-2-Familie, der einen 512-Bit (64-Byte) langen Hash-Wert erzeugt — der “große Bruder” von SHA-256.
Genauer: SHA-512 arbeitet intern mit 64-Bit-Wörtern statt 32-Bit wie SHA-256, was ihn auf 64-Bit-Prozessoren oft sogar schneller macht als SHA-256, obwohl der Ausgabewert doppelt so lang ist. Die längere Ausgabe bietet theoretisch mehr Widerstand gegen Kollisionsangriffe, in der Praxis gilt SHA-256 für die meisten Anwendungsfälle als ausreichend sicher.
Im Detail
Der interne Aufbau von SHA-512 ist fast identisch zu SHA-256 (beide basieren auf derselben Merkle-Damgård-Konstruktion), nur mit größeren internen Zustandsvariablen und mehr Runden:
SHA-256: 32-Bit-Wörter, 64 Runden, 256 Bit Ausgabe
SHA-512: 64-Bit-Wörter, 80 Runden, 512 Bit Ausgabe
Auf modernen 64-Bit-Servern (praktisch jeder heutige Server-Prozessor) kann SHA-512 dadurch pro Byte sogar effizienter arbeiten als SHA-256, weil die internen 64-Bit-Operationen direkt in einem einzigen Prozessorbefehl ausgeführt werden, während SHA-256 zwei 32-Bit-Operationen für dieselbe Datenmenge braucht. Auf 32-Bit-Systemen (z. B. manche Embedded-Geräte) dreht sich der Vorteil um — dort ist SHA-256 meist schneller.
Es gibt zudem SHA-384, eine Variante, die intern wie SHA-512 rechnet, aber die Ausgabe auf 384 Bit kürzt (durch andere Initialisierungswerte, nicht einfach durch Abschneiden) — nützlich, wenn ein etwas kürzerer, aber immer noch sehr sicherer Hash gewünscht ist. Für die allermeisten Anwendungen (TLS-Zertifikate, Signaturen, Dateiintegrität) ist der Sicherheitsgewinn von SHA-512 gegenüber SHA-256 in der Praxis vernachlässigbar — beide gelten als kryptografisch sicher, SHA-256 hat sich als De-facto-Standard durchgesetzt, einfach weil er in mehr Systemen (v. a. 32-Bit- und eingebetteten Systemen) gleich gut performt.
Typische Einsatzgebiete von SHA-512
In der Praxis begegnet SHA-512 seltener direkt als SHA-256, ist aber Grundlage mehrerer verbreiteter Systeme: Linux-Systeme nutzen häufig SHA-512-basiertes Crypt ($6$-Präfix in /etc/shadow) für gehashte Nutzerpasswörter. Digitale Signaturverfahren mit hohen Sicherheitsanforderungen (z. B. bestimmte staatliche oder militärische Systeme) setzen bevorzugt auf SHA-512, um von der größeren theoretischen Sicherheitsmarge zu profitieren, selbst wenn diese für die absehbare Zukunft praktisch nicht ausgeschöpft werden muss. Auch manche Blockchain- und Kryptowährungssysteme jenseits von Bitcoin (das SHA-256 nutzt) setzen auf SHA-512 oder Varianten davon.
Wettbewerb SHA-2 vs. SHA-3
Ergänzend zur SHA-2-Familie (zu der SHA-256 und SHA-512 gehören) hat das NIST 2015 mit SHA-3 einen komplett neuen, strukturell unabhängigen Hash-Standard veröffentlicht — nicht weil SHA-2 gebrochen wäre, sondern als vorsorgliche Absicherung (“Diversität”), falls in Zukunft doch eine strukturelle Schwäche in SHA-2 gefunden würde. SHA-3 basiert auf einer komplett anderen internen Konstruktion (Keccak-Schwammfunktion statt Merkle-Damgård) und wird bislang deutlich seltener eingesetzt als SHA-2, da SHA-2 (inklusive SHA-256 und SHA-512) weiterhin als vollständig sicher gilt und der Umstieg entsprechend wenig Dringlichkeit hat.
Warum die theoretische Sicherheitsmarge selten praktisch relevant ist
Ein 512-Bit-Hash bietet theoretisch eine Kollisionsresistenz von 2^256 (wegen des Geburtstagsparadoxons ist die praktische Sicherheit gegen Kollisionen etwa die Hälfte der Bit-Länge) — eine Zahl, die jede Vorstellungskraft übersteigt und weit jenseits dessen liegt, was mit heutiger oder absehbarer zukünftiger Rechenleistung angreifbar wäre. SHA-256 bietet mit 2^128 Kollisionsresistenz ebenfalls eine astronomisch große Sicherheitsmarge — der Unterschied zwischen “unvorstellbar sicher” und “noch unvorstellbarer sicher” ist für praktische Zwecke kaum relevant. Die Wahl zwischen SHA-256 und SHA-512 wird deshalb in der Praxis fast nie durch Sicherheitsüberlegungen getroffen, sondern durch Performance auf der jeweiligen Zielplattform und durch die Konventionen des verwendeten Systems oder Standards.