Hashfunktion

Was ist die Hashfunktion?

Eine Hashfunktion (deutsch: Streuwertfunktion) ist eine mathematische Funktion, die Dateneinheiten beliebiger Gr├Â├če auf Dateneinheiten fester kleinerer Gr├Â├če abbildet. Die von einer Hashfunktion berechneten Werte werden Hashwerte, Hashcodes, Digests oder einfach Hashes genannt. Ein Hash-Algorithmus berechnet die Hashfunktion.

Tipp

Wenn Sie noch Fragen bez├╝glich Algorithmen haben, dann k├Ânnen Sie gerne den jeweiligen Glossar dazu besuchen und sich ├╝ber das Thema informieren.

Ein Beispiel f├╝r eine intuitiv im Alltag gebr├Ąuchliche Hashfunktionen ist der erste Buchstabe des Nachnamens f├╝r die Einsortierung von namensbezogenen Daten. Bei der Suche muss dann nur in einem von 26 Bereichen des Adressbuchs nachgesehen werden. Ein weiteres einfaches Beispiel ist die Quersumme. Sie ordnet einer gr├Â├čeren (l├Ąngeren) Zahl eine kleinere (k├╝rzere) zu. Typische in Software genutzten Hash-Algorithmen sind allerdings weitaus komplexer.

Eigenschaften

Eine Hashfunktion sollte folgende Eigenschaften haben:

Aus einem Hashwert darf nicht der originale Inhalt abgeleitet werden k├Ânnen, aus dem der Wert berechnet wurde.
Unterschiedlichen Eingaben soll m├Âglichst nicht derselbe Hashwert zugeordnet werden. Ist dies erf├╝llt, handelt es sich um eine kryptografische Hashfunktion.
Der Algorithmus zur Berechnung des Hashwerts muss schnell sein.

Kollisionen

Die Hashwerte sind meist nat├╝rliche Zahlen. Eine “gute” Hashfunktion liefert f├╝r zwei unterschiedliche Eingaben auch zwei unterschiedliche Ausgabewerte. Ein Hashwert wird daher auch als Fingerprint bezeichnet, da er eine nahezu eindeutige Identifizierung einer gr├Â├čeren Datenmenge erlaubt.

Wenn aus unterschiedlichen Eingabedaten derselbe Hashwert berechnet wird, tritt eine sogenannte Kollision auf. Solche Kollisionen k├Ânnen auftreten, weil die Menge der m├Âglichen Hashwerte typischerweise kleiner ist als die Menge der m├Âglichen Eingabedaten. Daher gibt es Verfahren zur Erkennung von Kollisionen. Eine gute Hashfunktion erzeugt m├Âglichst wenige Kollisionen. F├╝r beschr├Ąnkte Eingabemengen k├Ânnen auch perfekte (kollisionsfreie) Hashfunktionen gefunden werden.

Anwendungen

Anwendungsfelder f├╝r Hashfunktionen lassen sich in drei Gebiete einteilen:

Datenbanken

Datenbanksysteme verwenden Hashfunktionen, um Daten in gro├čen Best├Ąnden zu suchen. Hashtabellen bilden dabei den Datenbankindex. Ein Index gibt die Stelle in der Hashtabelle an, an der der entsprechende Datensatz gespeichert ist. Ein Hashwert wird verwendet, um ausgehend von einem Schl├╝ssel (Stichwort) die Speicherstelle angefragter Daten zu berechnen. Wenn verschiedene Schl├╝ssel (Stichw├Ârter) demselben Index einer Hashtabelle zugeordnet werden, ist diesem Slot der Hashtabelle mehr als ein Datensatz zugeordnet, und es herrscht eine Kollision. Die Hashfunktion gibt dann nur Hinweise auf die Position des Datensatzes. In einer halbvoll besetzten Tabelle wird die weitere Suche durch das Verfahren jedoch in der Regel auf nur einen oder zwei Eintr├Ąge eingeschr├Ąnkt, die in dem gefundenen Slot stehen.

Pr├╝fsummen

Pr├╝fsummen sind ein einfaches Mittel, um Ver├Ąnderungen an ├╝bertragenen Daten zu erkennen. Statt die empfangene Datei Zeichen f├╝r Zeichen mit der originalen Datei zu vergleichen, muss nur der (viel kleinere) Hashwert der empfangenen Datei berechnet und mit der ├╝bertragenen Pr├╝fsumme der Originaldatei verglichen werden. Mit mehreren erzeugten Pr├╝fsummen kann die Wahrscheinlichkeit einer Kollision zudem stark verringert werden. Soll die Pr├╝fsumme vor Manipulationen der Daten sch├╝tzen, wird eine kryptografische Hashfunktion verwendet.

Kryptografie

In der Kryptografie kommen Hashfunktionen zur Signierung von Daten zum Einsatz, um ihre Integrit├Ąt sicherzustellen. Es handelt sich um spezielle Hashfunktionen, bei denen es praktisch unm├Âglich ist, Kollisionen gezielt zu finden. Mit einer kryptografischen Hashfunktion kann leicht ├╝berpr├╝ft werden, ob Eingabedaten authentisch sind, ohne etwas ├╝ber ihren Inhalt zu verraten. Auch ein abgeh├Ârter Hashwert, der eine geheime Datenmenge eindeutig identifiziert, kann nicht dazu genutzt werden, die Daten zu rekonstruieren.

Kryptografische Hashfunktionen sind entweder schl├╝ssellos oder schl├╝sselabh├Ąngig. Eine schl├╝ssellose hat nur einen Eingabewert, eine schl├╝sselabh├Ąngige ben├Âtigt als zweiten Eingabewert einen geheimen Schl├╝ssel.

In Webanwendungen werden Hashfunktionen zum Erzeugen von Session-IDs verwendet. Session-IDs werden von Webanwendungen als Identifikationsmerkmal benutzt, um zusammengeh├Ârige Anfragen und Eingaben eines Nutzers zu erkennen und ihm (einer “Sitzung”) zuzuordnen. Dabei wird ein Hashwert unter Einbezug von wechselnden Zustandswerten (wie Uhrzeit und IP-Adresse) berechnet.

Tipp

Wenn Sie noch Fragen bez├╝glich eines Online Marketing Themas haben, dann k├Ânnen Sie gerne unseren Glossar besuchen und sich ├╝ber das Thema informieren, wo Sie noch speziell Fragen haben.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte