Hashfunktion
Eine Hash-Funktion (en. hashing: zerhacken) ist eine nicht umkehrbare Funktion, die eine umfangreiche Quellmenge (i.d.R. Texte) auf eine wesentlich kleinere Zielmenge (Hash-Werte, i.d.R. natürliche Zahlen und Buchstaben) abbildet. Der Hashwert kann zum Auffinden von Daten in einer Datenbank oder zum digitalen Signieren eines Dokumentes verwendet werden. Prüfsummen erzeugen ebenfalls eine Abbildung auf eine reduzierte Datenmenge, hier mit dem Ziel, die Datenintegrität bei Störeinflüssen sicherzustellen.
Kriterien für eine gute Hash-Funktion
- Der Speicherbedarf des Hash-Wertes soll deutlich kleiner sein als der der Nachricht.
- Ähnliche Quellelemente sollen zu völlig verschiedenen Hash-Werten führen.
- Die Funktion muss eindeutig von der Quellmenge auf die Zielmenge abbilden. Wiederholtes Berechnen des Hash-Wertes desselben Quellelements muss dasselbe Ergebnis liefern.
- Die Funktion muss schnell berechenbar sein.
Zusätzliche Forderungen für kryptographisch sichere Hash-Funktionen:
- Es darf nicht effizient möglich sein, zwei Quellelemente mit demselben Hash-Wert zu finden. Andererseits sind Kollisionen bei der Adressberechnung in Datenbanken nicht zu vermeiden, so dass eine entsprechende Behandlungs-Strategie verfügbar sein muss.
- Zu der Funktion gibt es keine inverse Funktion, mit der es möglich wäre, für ein gegebenes Zielelement ein passendes Quellelement zu finden.
Allgemeine Hash-Algorithmen
Parität, Prüfziffer, ECC-Verfahren, Quersumme, Prüfsumme, Modulo-Funktion, Cyclic Redundancy Check, Hash-Wert
Hash-Algorithmen in der Kryptographie
MD2, MD4, MD5, SHA-1, SHA-2, RIPEMD-160
Siehe auch: Algorithmus