Direkt zum Inhalt

Lexikon der Mathematik: Hashfunktion

Funktion, die beliebig langen Zeichenketten (Klartexten) einen Wert (den sogenannten Hashwert) fester Länge zuordnet.

Eine Hashfunktion heißt kryptographisch sicher, wenn die Funktion kollisions-resistent ist, das heißt, wenn die folgenden beiden Bedingungen erfüllt sind:

Es muß zum ersten schwierig sein, zu einem vorgegebenen Hashwert eine passende Nachricht zu finden, und es muß schwierig sein, zwei Nachrichten mit gleichem Hashwert zu erzeugen.

Gute Hashfunktionen zeichnen sich dadurch aus, daß ihre Berechnung nur wenig Rechenleistung erfordert. Häufig verwendet werden Bitmuster aus dem Datum selbst, Quersummen oder Divisionsreste. Außerdem erwartet man von einer Hashfunktion, daß die berechneten Indizes sich möglichst gleichförmig über den verfügbaren Adreßraum verteilen, um möglichst selten mit Kollisionen konfrontiert zu sein. Eine Kollision tritt auf, wenn zwei gespeicherte Daten durch die Hashfunktion denselben Wert zugewiesen bekommen. Zur Behandlung von Kollisionen gibt es drei Ansätze: Erstens die Verwendung injektiver Hashfunktionen. Dies ist in vielen Anwendungsbereichen aus Kapazitätsgründen nicht möglich. Zweitens die Verwendung von Überlaufstrukturen. Hier ist der Tabelleneintrag der Startpunkt für eine Datenstruktur, die ihrerseits mehrere Datensätze (alle mit gleichem Hashwert) aufnehmen kann. Als Überlaufstruktur wird oft eine simple Datenstruktur (z. B. Liste) verwendet, da nur eine geringe Zahl von Kollisionen erwartet wird. Drittens kann das Datum nach einer Verschiebungsvorschrift in einem noch freien anderen Tabellenplatz gespeichert werden. Bei dieser Technik kann die Tabelle nicht mehr Einträge speichern als durch ihren Adreßbereich vorgegeben. Gegebenenfalls müssen durch Rehashing eine neue, größere Tabelle angelegt und eine neue Hash- funktion generiert werden.

Gegenwärtig (2000) als sicher geltende Hash- funktionen sind die Algorithmen MD5, SHA-1, RIPEMD-160. Sie bilden Klartexte auf Hashwerte der Länge 128 Bit (MD5) und 160 Bit ab, von denen vermutet wird, daß sie die genannten Eigenschaften besitzen. In diesen Funktionen werden auf einen definierten initialen Zustandstandsvektor der Reihe nach für jeden 512-Bit Nachrichtenblock 64 (MD5) oder 80 nichtlineare Funktionen auf die Teilblöcke des Zustandsvektors angewendet.

Beispielsweise ergibt SHA-1, angewendet auf die leere Zeichenkette abc, den Hash-Wert (hexadezimal)

Schreiben Sie uns!

Wenn Sie inhaltliche Anmerkungen zu diesem Artikel haben, können Sie die Redaktion per E-Mail informieren. Wir lesen Ihre Zuschrift, bitten jedoch um Verständnis, dass wir nicht jede beantworten können.

  • Die Autoren
- Prof. Dr. Guido Walz

Partnerinhalte

Bitte erlauben Sie Javascript, um die volle Funktionalität von Spektrum.de zu erhalten.