Definition von kryptografischen Hash-Funktionen
Was sind kryptografische Hash-Funktionen?
Eine kryptografische Hash-Funktion ist eine mathematische Funktion, die in der Kryptografie verwendet wird. Typische Hashfunktionen verwenden Eingaben variabler Länge, um Ausgaben einer festen Länge zurückzugeben.
Eine kryptografische Hash-Funktion kombiniert die Message-Passing-Fähigkeiten von Hash-Funktionen mit Sicherheitseigenschaften.
Die zentralen Thesen
- Hash-Funktionen sind mathematische Funktionen, die einen gegebenen Datensatz in eine Bitfolge fester Größe, auch als „Hash-Wert“ bekannt, umwandeln oder „abbilden“.
- Hash-Funktionen werden in der Kryptographie verwendet und haben unterschiedliche Komplexitäts- und Schwierigkeitsgrade.
- Hash-Funktionen werden für Kryptowährung, Passwortsicherheit und Nachrichtensicherheit verwendet.
Wie kryptografische Hash-Funktionen funktionieren
Hash-Funktionen sind häufig verwendete Datenstrukturen in Computersystemen für Aufgaben wie das Überprüfen der Integrität von Nachrichten und das Authentifizieren von Informationen. Sie gelten zwar als kryptographisch "schwach", weil sie in polynomieller Zeit gelöst werden können, sind aber nicht leicht zu entziffern.
Kryptografische Hashfunktionen fügen typischen Hashfunktionen Sicherheitsfeatures hinzu, wodurch es schwieriger wird, den Inhalt einer Nachricht oder Informationen über Empfänger und Absender zu erkennen.
Insbesondere weisen kryptografische Hashfunktionen diese drei Eigenschaften auf:
- Sie sind „kollisionsfrei“. Dies bedeutet, dass keine zwei Eingabe-Hashes auf denselben Ausgabe-Hash abgebildet werden sollten.
- Sie können ausgeblendet werden. Es sollte schwierig sein, den Eingabewert für eine Hash-Funktion aus ihrer Ausgabe zu erraten.
- Sie sollten rätselfreundlich sein. Es sollte schwierig sein, einen Eingang auszuwählen, der einen vordefinierten Ausgang bereitstellt. Daher sollte der Eingang aus einer möglichst breiten Verteilung ausgewählt werden.
Die drei oben skizzierten Eigenschaften sind wünschenswert, aber in der Praxis nicht immer umsetzbar. Beispielsweise sorgt die Ungleichheit der Sample-Spaces für Input-Hashes und Outputs dafür, dass Kollisionen möglich sind. Zum Beispiel hat das MIT. im Jahr 2017 Digitale Währung Initiative Kollisionsschwachstelle gefunden In JOTA.
Beispiele für kryptografische Hash-Funktionen
Kryptografische Hash-Funktionen sind weit verbreitet in Kryptowährungen Transaktionsinformationen anonym weiterzugeben. Beispielsweise, Bitcoin, die ursprüngliche und größte Kryptowährung, verwendet in ihrem Algorithmus die kryptografische Hash-Funktion SHA-256. Ebenso IOTA, eine Plattform für die Internet der Dinge, verfügt über eine eigene kryptografische Hash-Funktion namens Curl.
Hashes haben jedoch andere Anwendungen in der realen Welt. Dies sind einige der gebräuchlichsten kryptografischen Anwendungen:
Kennwortüberprüfung.
Das Speichern von Passwörtern in einer normalen Textdatei ist gefährlich, daher speichern fast alle Websites Passwörter als Hashes. Wenn ein Benutzer sein Passwort eingibt, wird es gehasht und das Ergebnis wird mit der Liste der Hashwerte verglichen, die auf den Servern des Unternehmens gespeichert sind. Dies ist jedoch keine narrensichere Praxis, wie die Sammlung Nr. 1 mit 21 Millionen gestohlenen Passwörtern, die 2019 entdeckt wurden, zeigt.
Signaturerstellung und -verifizierung.
Die Überprüfung von Signaturen ist ein mathematischer Prozess, der verwendet wird, um die Authentizität von digitalen Dokumenten oder Nachrichten zu überprüfen. Eine gültige digitale Signatur, bei der die Voraussetzungen erfüllt sind, gibt dem Empfänger einen starken Beweis dafür, dass die Nachricht von einem bekannten Absender erstellt wurde und die Nachricht während der Übertragung nicht verändert wurde. Ein digitales Signaturschema besteht typischerweise aus drei Algorithmen: einem Schlüsselerzeugungsalgorithmus; einen Signaturalgorithmus, der bei einer gegebenen Nachricht und einem privaten Schlüssel eine Signatur erzeugt; und einen Signaturverifizierungsalgorithmus. Merkle-Bäume, eine Technologie, die in Kryptowährungen verwendet wird, ist eine Art digitale Signatur.
Überprüfen der Datei- und Nachrichtenintegrität.
Hashes können verwendet werden, um sicherzustellen, dass Nachrichten und Dateien, die vom Sender zum Empfänger übertragen werden, während der Übertragung nicht manipuliert werden. Die Praxis baut eine „Vertrauenskette“ auf. Ein Benutzer könnte beispielsweise eine gehashte Version seiner Daten veröffentlichen und den Schlüssel, damit die Empfänger den von ihnen berechneten Hash-Wert mit dem veröffentlichten Wert vergleichen können, um sicherzustellen, dass sie ausrichten.