Kryptografische Hash-Funktion

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.

Neuigkeiten & Events