Kryptologische Hashfunktion

Kryptologische Hashfunktion

Hashfunktionen sind notwendig für die Datenspeicherung, die Überprüfung von Informationsintegrität (Prüfsummen) und im Bereich der Kryptologie. Kryptowährungen nutzen die Technologie der Blockchain, diese wiederum nutzt die kryptologische Hashfunktion zur Einordnung und Sicherung von Transaktionen. Hashwerte sind auch beim sogenannten Coin Mining wichtig, um die Herstellungsrate von Neuemissionen einzuschränken. Denn bei Kryptowährungen ist bereits vorher eine begrenzte Anzahl an Währungseinheiten festgelegt. Das verhindert, dass eine einzelne Partei die Produktion von Währungseinheiten beschleunigen, beeinträchtigen oder in irgendeiner Weise missbrauchen könnte.

Blockchains und Hashes

Blockchains sind im Prinzip ein dezentrales Buchführungssystem. Jeder einzelne Block enthält einen Zeitstempel und alle Transaktionsdaten. In den Blöcken der Blockchain haben viele Teilnehmer zugleich Zugriff und die Dezentralisierung entsteht durch das Speichern der Daten über das “Peer-To-Peer” Netzwerk. Jede Nachricht, die ein Teilnehmer in dieses Netz sendet, ist für alle anderen verfügbar. (Distributed-Ledger-Technologie).

In der Blockchain bauen alle späteren Transaktionen auf den früheren Transaktionen auf und beweisen diese als richtig, indem sie die Kenntnis der früheren Transaktionen beweisen. Eine derartige Datenkette macht es unmöglich gemacht, die früheren Transaktionen zu manipulieren oder zu löschen, denn alle späteren Transaktionen sind dann ebenfalls betroffen. Als zusätzliche Absicherung enthält jeder Block eine kryptologische Hashfunktion, auch Hash, Hashwert oder Streuwert genannt, des vorhergehenden Blocks.

Eine kryptologische Hashfunktion ordnet eine große Menge an hereinkommenden Informationen bestimmten Hashwerten zu. Hashwerte sind bestimmte Merkmale, welche die Hashfunktion erkennt und das Zuordnen völlig automatisiert ausführt.

Mining und Nonce

Auch für das sogenannte Coin Mining (Schürfen) ist es nötig, verschiedene gestellte Rechenaufgaben oder Hashwerte möglichst effizient zu lösen. Dazu dient die kryptologische Hashfunktion. Zum Errechnen der Hashwerte im Rahmen eines vorher festgelegten Schwierigkeitsgrads ist eine spezialisierte Hardware für hohe Rechenleistungen notwendig.

Hashwerte haben eine Einwegfunktion und müssen eine allgemein anerkannte Bedingung erfüllen, beispielsweise einen Grenzwert unterschreiten. Dazu enthält jeder Block einen Wert, den sogenannten Nonce. Dessen einzige Funktion ist es, von der kryptologischen Hashfunktion so lange verändert zu werden, bis der Hashwert des gesamten Blocks die vorgegebene Bedingung erfüllt. Da es sich um eine Einwegfunktion handelt, ist es nicht möglich, den Nonce direkt zu errechnen.

Schlüssel und Kollisionsresistenz

Eine Hashfunktion ist eine Abbildung, die effizient eine Zeichenfolge beliebiger Länge, einen Eingabewert, auf eine Zeichenfolge mit fester Länge, den sogenannten Hashwert, abbildet. Daher ist es also theoretisch möglich, dass verschiedenen Eingabewerten derselbe Hashwert zugeordnet wird und zwei Eingabewerte denselben Hashwert ergeben.

Zur Erzeugung sicherer digitaler Signaturen benötigt man kollisionsresistente Hashfunktionen. Das bedeutet, es muss Cyberangreifern praktisch unmöglich sein, zu einem gegebenen Ausgangswert einen weiteren frei wählbaren zu finden, welcher denselben Hashwert hat.

Eine kryptologische Hashfunktion oder kryptografische Hashfunktion ist eine spezielle kollisionsresistente Form der Hashfunktion oder Streuwertfunktion. Es ist also praktisch nicht möglich, zwei unterschiedliche Eingabewerte zu finden, die einen identischen Hashwert ergeben.

Kryptologische Hashfunktionen gibt es in schlüsselloser und schlüsselabhängiger Form. Die schlüssellose hat nur einen Eingabewert, es gibt sie als Einweg-Hashfunktionen (One-Way Hash Function oder OWHF) und kollisionsresistente Hashfunktionen (Collision Resistant Hash Function oder CRHF). Eine schlüsselabhängige Hashfunktion hat einen geheimen Schlüssel als zweiten Eingabewert.

Anwendung

Eine kryptologische Hashfunktion dient hauptsächlich zur Integritätsprüfung von Dateien oder Nachrichten sowie der sicheren Speicherung von Passwörtern und digitalen Signaturen. Weitere beliebte Anwendungsgebiete sind Hashwerte als Pseudo-Zufallszahlengeneratoren oder zur Konstruktion von Blockchiffren.