Hashfunktion        zurück ]      [ Stichworte ]      [ Literatur ]      [ Die Hyper-Bibliothek ]      [ Systemtheorie ].

Das Bitcoin-Verfahren entspricht dem SHA-256-Hashing-Algorithmus zur Erstellung der Blockchain (weshalb ich hier über Hash schreibe).

Als Hashfunktion [ y=f(x) ] bezeichne ich eine Wertzuordnung (Funktion) zwischen zwei Mengen, bei welcher eine große Eingabemenge (die Schlüssel) auf eine kleinere Zielmenge (die Hashwerte) abbildet werden. Dabei wird in Kauf genommen, dass zwei verschiedene Eingaben zu demselben Hashwert führen.

Wenn die Funktion nicht bekannt ist (und nicht mit begrenztem Aufwand) rekonstruiert werden kann, kann die Funktion der Verschlüsselung dienen, was im Bitcoin-Verfahren mit dem SHA-256-Hashing-Algorithmus gemacht wird.

Die Funktion kann Eingabedaten beliebiger Länge einen Datensatz fester Länge zuordnen. Gleiche Daten führen immer zum gleichen Hash. Verschiedene Eingaben können zu demselben Hash führen.

Wenn die Funktion als Verschüsselung verwendet wird, müssen kleine Veränderungen in der Eingabe grosse Veränderungen in der Ausgabe erzeugen.


Quelle: Wikipedia

Die informationstechnische Idee besteht zunächst darin, aussagekräftige Daten in nichtinterpretierbare Daten zu übersetzen, wobei die Hash meistens skalar sind und wesentlich kürzer als die Eingaben sind, weil viel Redundanz abgebaut wird.
Im nebenstehenden Beispiel:
Die Namen von Personen enthalten viel zu viele Buchstaben, wenn ich sie nur unterscheiden will, es kommt dabei aber sogar vor, dass zwei verschiedene Personen gleich heissen (was wie die Kollision auch ein zu behandelndes Problem ist).

Wenn ich die Hashfunktion stark mache, kann ich Kollisionen, das heisst, bei unterschiedlichen Eingabedaten derselbe Hashwert, nicht vermeiden. Wenn ich beim Fingerabdruck nur 10 (statt 100) Stellen beobachte, sind Kollisionen möglich(er).
Ein Algorithmus muss die Kollisionen erkennen und korrigieren.

Typische Anwendungen:
Datenbank
Prüfziffern
Kryptologie


Einfaches Beispiel: Karteikarten von Personen

Der Name der Person wird gehasht: Die Buchstabenkette wir in 5 Gruppen a je 3 Buchstaben unterteilt (allenfals mit aufgefüllt. Zu jeder Buchstabengruppe wird eine Zahl berechnet, die der Summe der Alpabethsplätze entspricht (a=1, b=2, usw.) Auss dieser Zahl wird Mod 5 gemacht. So ergibt jeder Name ein 5stellige Ziffer, die den Platz in der Tabelle ergibt

Beispiel: Todesco
1) Tod esc o00 000 000
2) 20 15 4 für "tod", 5 19 3 für "esc", 15 0 0 für "o00"
3) 4 2 0 Modulo 5 = 42000 daraus folgt dieser Platz in der Tabelle

Beim Suchen wird der Name wieder mir derselben Funktion gehasht und so die Karteikarte gefunden.



[Hashfunktion einfach erklärt]
[wp]