Definition
Eine kryptografische Hashfunktion ist ein mathematischer Algorithmus, der beliebige Eingabedaten, unabhängig von ihrer Größe, in einen Hashwert fester Länge umwandelt. Moderne Varianten, sogenannte erweiterbare Ausgabefunktionen (XOFs), können Ausgaben mit anpassbarer Länge erzeugen. Hashfunktionen besitzen mehrere wesentliche Eigenschaften: Sie sind deterministisch, d. h. dieselbe Eingabe liefert immer dieselbe Ausgabe; sie sind präbildresistent, sodass es praktisch unmöglich ist, einen Hashwert umzukehren und die ursprüngliche Eingabe zu ermitteln; sie sind kollisionsresistent, wodurch es nahezu unmöglich ist, zwei unterschiedliche Eingaben zu finden, die denselben Hashwert erzeugen; und sie weisen den Lawineneffekt auf, bei dem bereits eine geringfügige Änderung der Eingabe zu einer völlig anderen Ausgabe führt. Bitcoin verwendet SHA-256 für Mining und Transaktions-Hashing, während Ethereum Keccak-256, eine Variante von SHA-3, nutzt. Hashfunktionen bilden die Grundlage der Blockchain-Sicherheit – sie ermöglichen alles vom Nachweis der Arbeit beim Mining über die Erstellung von Merkle-Baum -Beweisen bis hin zur Signierung von Transaktionen.
Veranschaulichte Eigenschaften von Hashfunktionen
SHA-256-Hash-Beispiele: Eingabe: „Hello“ Ausgabe: 185f8db32271fe25f561a6fc938b2e26…
Eingabe: „hello“ (Kleinbuchstaben) Ausgabe: 2cf24dba5fb0a30e26e83b2ac5b9e29e… → Völlig anders (Lawineneffekt)
Eingabe: 10 MB Filmdatei Ausgabe: Immer noch nur 64 Hexadezimalzeichen (256 Bit) → Feste Ausgabegröße unabhängig von der Eingabegröße
Demonstration der Vorabbildresistenz: Ziel: Eingabe finden, die „0000abc…“ erzeugt. Einzige Methode: Brute-Force-Angriff (Milliarden von Eingaben ausprobieren). Bitcoin-Mining: Genau das – Nonce finden, die einen Hash unterhalb des Zielwerts erzeugt. Bei 500 Exahash/Sekunde (Bitcoin-Netzwerk): ~500,000,000,000,000,000,000 Versuche/Sekunde
Kollisionsresistenz: Ziel: Zwei verschiedene Eingaben finden, die denselben Hashwert erzeugen. SHA-256: Keine Kollisionen gefunden (2^128 Operationen, um eine zu finden). SHA-1 (veraltet): Kollisionen gefunden (Google, 2017) → Nicht mehr vertrauenswürdig.
In der Kryptographie verwendete Hashfunktionen
| Hash-Funktion | Ausgabegröße | Benutzt in | Status |
| SHA-256 | 256 Bits | Bitcoin (Mining, Transaktionen) | und geschützt |
| Keccak-256 | 256 Bits | Ethereum (Adressen, Transaktionen) | und geschützt |
| SHA-3-256 | 256 Bits | Einige neuere Protokolle | und geschützt |
| BLAKE2/BLAKE3 | Variable (als XOF) | Zcash, einige Protokolle | Sicher, schneller |
| SHA-1 | 160 Bits | Legacy (veraltet) | BESCHÄDIGT (Kollisionsschaden festgestellt) |
| MD5 | 128 Bits | Legacy (veraltet) | DEFEKT (Kollision trivial) |
| RIPE®-160 | 160 Bits | Bitcoin-Adressableitung | Sicher (mit SHA-256) |
FAQ
F: Warum können wir einen Hash nicht umkehren, um die Eingabe zu finden?
Hashfunktionen basieren auf nicht umkehrbaren mathematischen Operationen – sie verwerfen bewusst Informationen. Man kann zwar überprüfen, ob hash(Eingabe) = Ausgabe ist, aber man kann nicht mathematisch umkehren, dass hash(Ausgabe) → Eingabe ist. Der einzige bekannte allgemeine Angriff ist die Brute-Force-Methode: Man probiert so viele Eingaben aus, bis man eine findet, deren Hashwert dem Zielwert entspricht. Für 256-Bit-Ausgaben sind dafür etwa 2^256 Versuche nötig – mehr als Atome im beobachtbaren Universum. Diese Unumkehrbarkeit macht Hashfunktionen nützlich für die Passwortspeicherung, digitale Signaturen und den Proof-of-Work-Test.
F: Was ist der „Lawineneffekt“ und warum ist er wichtig?
Der Lawineneffekt bewirkt, dass die Änderung auch nur eines Bits (eines Zeichens) in der Eingabe einen völlig anderen Hashwert erzeugt – typischerweise ändert sich etwa die Hälfte der Bits im Hashwert. Dies ist für die Sicherheit der Blockchain von Bedeutung: Wird der Blockheader auch nur geringfügig verändert (etwa um einen Zeitstempel oder eine Transaktion zu ändern), ändert sich der Hashwert vollständig und wird ungültig, wodurch der gesamte Proof-of-Work erneut durchgeführt werden muss. Dadurch wird die Transaktionshistorie der Blockchain praktisch unveränderlich.
F: Wie werden Hash-Funktionen in digitalen Signaturen verwendet?
Anstatt ein großes Dokument direkt zu signieren, wird es zunächst gehasht (256 Bit, unabhängig von der Dokumentgröße) und anschließend der Hash mit dem privaten Schlüssel signiert. Dies ist effizient (das Signieren eines Hashs fester Größe ist deutlich schneller als das Signieren einer Gigabyte-Datei) und gewährleistet Sicherheit (die Signatur beweist, dass Sie genau dieses Dokument signiert haben – jede Änderung verändert den Hash und macht die Signatur ungültig). Alle Blockchain-Transaktionssignaturen folgen diesem Muster.









