MSTR Cat

Blockchain/Niveau II · Mechanik/2.1 Kryptographie/Lektion 1

Hash-Funktionen und SHA-256

Der Fingerabdruck, der das Hauptbuch verankert

MaterialienEin Terminal, auf dem shasum oder openssl installiert istEin Online-SHA-256-RechnerZwei Textdateien, die sich in einem einzigen Zeichen unterscheiden

Neugier

  1. Warum verändert die Änderung eines einzigen Zeichens in einer Datei die Hälfte ihres Hashs?
  2. Wenn sich unendlich viele mögliche Eingaben eine endliche Menge von Ausgaben teilen, warum ist es dann trotzdem praktisch unmöglich, zwei Eingaben zu finden, die kollidieren?
  3. Was machte SHA-256 sicher, als sein Vorgänger SHA-1 geknackt wurde?

Erkunden

  1. Eine kryptografische Hash-Funktion bildet Daten beliebiger Länge auf einen Digest fester Größe ab. Sie ist deterministisch: Dieselbe Eingabe ergibt immer dieselbe Ausgabe. Sie ist schnell zu berechnen, aber praktisch nicht umkehrbar. Diese Einweg-Eigenschaft definiert die Urbildresistenz (Preimage Resistance). Besitzt ein Angreifer nur den Hash, kann er die ursprüngliche Nachricht nicht ableiten. Diese Unumkehrbarkeit sichert Integritätsprüfungen und Identitätsnachweise in verteilten Systemen.
  2. SHA-256 erzeugt unabhängig von der Eingabegröße eine 256-Bit-Ausgabe. Ob die Eingabe ein einzelnes Byte oder eine gigabytegroße Datei ist, der Digest bleibt immer genau 32 Bytes lang. Diese feste Länge ermöglicht eine einheitliche Speicherung und Vergleichbarkeit. Die Funktion verarbeitet die Daten in 512-Bit-Blöcken über 64 Runden logischer Operationen. Ihr Design folgt der Merkle-Damgård-Konstruktion, bei der eine Kompressionsfunktion über die Blöcke hinweg verkettet wird; die Durchmischung durch diese Kompressionsfunktion ist es, die die Ausgabe durcheinanderwirbelt.
  3. Der Lawineneffekt ist eine entscheidende Eigenschaft: Das Kippen eines einzigen Bits in der Eingabe ändert etwa die Hälfte der Bits im ausgegebenen Hash. Diese Empfindlichkeit sorgt dafür, dass selbst geringfügige Datenbeschädigungen oder Manipulationen zu einem völlig anderen Digest führen. Dadurch eignen sich Hash-Funktionen ideal, um die Integrität von Dateien zu überprüfen und Änderungen zu erkennen. Jede Änderung, so subtil sie auch sein mag, zerstört die Übereinstimmung zwischen dem erwarteten und dem berechneten Hash.
  4. Kollisionsresistenz ist die anspruchsvollste Eigenschaft. Um zwei unterschiedliche Eingaben zu finden, die denselben Hash erzeugen, sind aufgrund der Geburtstagsschranke (Birthday Bound) etwa 2^128 Operationen nötig. Bei SHA-256 macht dieser Rechenaufwand Brute-Force-Angriffe mit heutiger Hardware praktisch undurchführbar. SHA-1 hingegen fiel einem praktischen Kollisionsangriff zum Opfer, den Forscher von Google und CWI im Jahr 2017 demonstrierten und der als SHAttered bekannt ist. Diese Schwachstelle erzwang die Abkehr von SHA-1 in sicherheitskritischen Anwendungen.
  5. Bitcoin wendet SHA-256 zweimal an, ein Verfahren, das als Double Hashing bezeichnet wird. Blockheader und Transaktions-IDs werden mit SHA-256 gehasht, anschließend wird das Ergebnis erneut mit SHA-256 gehasht. Satoshi hat diese Wahl nie begründet; eine gängige Erklärung ist der Schutz vor Length-Extension-Angriffen, einer bekannten Eigenschaft von Merkle-Damgård-Hashes wie SHA-256. Jeder Block-Hash und jede Transaktions-ID in der Chain ist das Ergebnis dieses doppelten Durchlaufs.
  6. Öffnen Sie ein beliebiges Terminal oder Online-Tool und berechnen Sie den SHA-256-Hash der Zeichenkette „MSTR Cat“. Berechnen Sie anschließend den Hash von „MSTR cat“, wobei nur die Groß- bzw. Kleinschreibung eines Buchstabens geändert wird. Vergleichen Sie die beiden 64-stelligen hexadezimalen Ausgaben. Sie werden völlig unterschiedlich sein und kein erkennbares Muster gemeinsam haben. Diese sofortige Abweichung veranschaulicht den Lawineneffekt in Aktion: Die Änderung eines einzigen Bits wirbelt den gesamten Digest durcheinander und bestätigt, dass die Funktion äußerst empfindlich auf Eingaben reagiert.

Kernfakten

  • SHA-256 erzeugt eine feste 256-Bit-Ausgabe für jede Eingabegröße.
  • Der Lawineneffekt sorgt dafür, dass die Änderung eines einzigen Bits etwa die Hälfte der Hash-Bits verändert.
  • Eine SHA-256-Kollision per Brute-Force zu finden, erfordert etwa 2^128 Operationen.
  • SHA-1 wurde 2017 durch einen praktischen Kollisionsangriff (SHAttered) geknackt.
  • Bitcoin verwendet doppeltes SHA-256 für Block-Hashes und Transaktions-IDs.
  • SHA-256 verarbeitet Daten in 512-Bit-Blöcken über 64 Runden.

Übung neun, sechs, drei, eins

9SammelnListen Sie 9 Hash-Funktionen oder Prüfsummenalgorithmen auf, die in der Informatik verwendet werden. Notieren Sie jeweils ihre Ausgabegröße und ihre wichtigsten Anwendungsfälle.
6GruppierenGruppieren Sie die 9 nach Sicherheitsniveau in 6 Kategorien: geknackt, veraltet, Standard für den allgemeinen Einsatz, Standard für Hochsicherheitskontexte, auf Geschwindigkeit spezialisiert oder Sonstiges.
3VerdichtenReduzieren Sie die 6 Gruppen auf 3 zentrale Gründe, warum eine Hash-Funktion für eine bestimmte Anwendung ausgewählt wird.
1KristallisierenSchreiben Sie 1 Satz, der erklärt, wie Digests fester Länge die Überprüfung von Daten variabler Größe ermöglichen.

Faktcheck

Datumsangaben, Zahlen und Behauptungen wurden mit den unten aufgeführten veröffentlichten Quellen abgeglichen.

In der interaktiven Akademie öffnen →

EN PT ES ZH JA KO RU FR MS