Zum Inhalt springen

Informatik · Klasse 10–13 · aktualisiert

Hashfunktion einfach erklärt: Hashwerte verstehen

Du lernst, was Hashfunktion, Hashwert und Kollision sind, rechnest einen Modulo-Hash und unterscheidest Hashing von Verschlüsselung.

0 von 10 Aufgaben gelöst

Hashfunktion einfach erklärt: Hashwerte verstehen

Kurz gesagt

Eine Hashfunktion bildet eine große Menge von Eingaben auf eine kleinere Menge von Hashwerten ab. Bekommen zwei verschiedene Eingaben denselben Hashwert, nennt man das Kollision. Beim Modulo-Hash gilt h(key) = key mod tablesize, das ist der Rest der Division.

Wenn du dich irgendwo anmeldest, kann ein System dein Passwort prüfen, ohne es im Klartext zu speichern. Dabei hilft ein Hashwert. Hashwerte helfen auch beim schnellen Suchen in großen Datenmengen und beim Prüfen von Dateien. Hier lernst du, wie das funktioniert und warum Hashing nicht dasselbe ist wie Verschlüsselung.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.

4 Abschnitte

Eine Hashfunktion ist eine Abbildung. Sie nimmt eine große Menge möglicher Eingaben, die Schlüssel, und ordnet jeder Eingabe einen Wert aus einer kleineren Zielmenge zu. Diese Werte heißen Hashwerte. Die Eingaben können unterschiedlich lang sein. Die Hashwerte haben dagegen meist eine feste Länge.

Weil die Zielmenge kleiner ist, ist eine Hashfunktion im Allgemeinen nicht injektiv. Das heißt: Zwei verschiedene Eingaben können zum selben Hashwert führen. Das nennt man eine Kollision. Da die Menge der möglichen Hashwerte meist kleiner ist als die der möglichen Eingaben, sind Kollisionen dann prinzipiell unvermeidlich.

Eine gute Hashfunktion erzeugt für die Eingaben, für die sie entworfen wurde, möglichst wenige Kollisionen. Für bekannte und beschränkte Eingabemengen können auch perfekte, also kollisionsfreie, Hashfunktionen gefunden werden.

Ein Hashwert wird auch Fingerprint genannt (englisch für Fingerabdruck). Er stellt eine nahezu eindeutige Kennzeichnung einer größeren Datenmenge dar, so wie ein Fingerabdruck einen Menschen nahezu eindeutig identifiziert.

Definition

Kollision

Eine Kollision tritt auf, wenn unterschiedlichen Eingaben derselbe Hashwert zugeordnet wird.

Beispiel: Die einstellige Quersumme als Hashfunktion

  1. 1Die einstellige Quersumme ist eine sehr einfache Hashfunktion.
  2. 225 → 2 + 5 = 7
  3. 352 → 5 + 2 = 7
  4. 4Die Eingaben 25 und 52 sind verschieden, haben aber denselben Hashwert 7. Das ist eine Kollision.

Teste dich

LeichtWann spricht man von einer Kollision?
MittelWas folgt daraus, dass die Menge der Hashwerte meist kleiner ist als die der möglichen Eingaben?

Alles auf einen Blick

Hashfunktion

  • Hashfunktion

    Sie bildet eine große Eingabemenge auf eine kleinere Menge von Hashwerten ab.

  • Kollision

    Verschiedene Eingaben erhalten denselben Hashwert. Das ist meist prinzipiell unvermeidlich.

  • Modulo-Hash

    h(key) = key mod tablesize, also der Rest der Division.

  • Anwendung

    Welche Eigenschaft wichtig ist, hängt davon ab, ob es um Hashtabelle, Prüfsumme oder Passwörter geht.

  • Verschlüsselung

    Mit dem Schlüssel gibt es einen Rückweg zum Klartext, bei einer kryptographischen Hashfunktion praktisch nicht.

Musteraufgabe · Schritt für Schritt

Vier Schlüssel in eine Tabelle der Größe 5 einordnen (ausgedachtes Beispiel)

  1. 1Aufgabe: Ordne die Schlüssel 12, 17, 23 und 30 mit h(key) = key mod 5 den Fächern 0 bis 4 zu.
  2. 212 : 5 = 2 Rest 2, also h(12) = 2
  3. 317 : 5 = 3 Rest 2, also h(17) = 2
  4. 423 : 5 = 4 Rest 3, also h(23) = 3
  5. 530 : 5 = 6 Rest 0, also h(30) = 0
  6. 6Ergebnis: Fach 0 enthält 30, Fach 2 enthält 12 und 17, Fach 3 enthält 23. Die Fächer 1 und 4 bleiben leer.
  7. 712 und 17 kollidieren in Fach 2. Probe: 3 · 5 + 2 = 17

Fehler finden

Prüfe die Rechnung mit Tabellengröße 11 (ausgedachtes Beispiel) In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Eine Kollision liegt vor, wenn Eingaben denselben Hashwert erhalten. Beim Modulo-Hash ist der Hashwert der , wenn du key durch tablesize teilst. Aus einem Klartext entsteht ein Geheimtext durch .

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Hashfunktion

LeichtEin Hashwert wird auch Fingerprint genannt. Was drückt dieser Name aus?
MittelAusgedachtes Beispiel: Eine Hashtabelle hat die Größe 9 und nutzt h(key) = key mod tablesize. Welchen Hashwert hat der Schlüssel 41?
SchwerWelche Größe der Hashtabelle ist bei der Divisionsmethode oft eine gute Wahl?

Weiterlesen in Informatik