Kryptographische Hashfunktion

Hash-Werte werden in vielen Bereichen der modernen Informationstechnik eingesetzt. Eine kleine Einführung.

Die Nutzung von "Hashes" kommt in der Kryptographie in vielen Bereichen zum Einsatz. Hash-Funktionen liegen algebraischen Berechnungen zugrunde und sind beispielsweise auch seit Jahren für eine sichere Nutzung des Online-Bankings verantwortlich.


Die wohl bekannteste Hash-Funktion ist sha256. Diese wird auch im Bitcoin-Netzwerk verwendet. Einfach gesprochen wird ein Text (=Input) in eine Box geworfen. Anschließend wird der Inhalt der Box mit festgelegten mathematischen Berechnungen gefüttert. Am Ende erhält man einen entsprechenden Output.

Folgende Eigenschaften hat die sha256 Hash-Funktion:

- der Output ist bei gleichem Input immer identisch

- der Output ist unvorhersehbar - ein anderer Buchstabe/Ziffer beim Input führt zu einem komplett anderen Ergebnis (keine Korrelation zum Input)

- “hashen” geht schnell, auch unabhängig von der Größe des Inputs

- es ist nicht möglich zwei unterschiedliche Outputs mit dem identischen Input zu erzeugen

- Outputs sind immer 256 Bits lang


Es spielt keinerlei Rolle wie "groß" (Anzahl der Zeichen) der Input ist. Am Ende erhält man immer einen 256 Bit langen Output. Diese Eigenschaft kann man sich beispielweise auch bei Spacechains zu Nutze machen. Egal welche Daten man mit SHA256 hasht - anschließend beleibt ein 256 Bit Output. Dieser Output kann anschließend auf der Bitcoin-Blockchain abgelegt werden. Durch den deutlich geringeren Speicherbedarf ist diese deutlich günstiger für die einzelnen Nutzer. Hier erfährst du mehr über Spacechains.


Varianten je Bit

Während sich in der Mathematik die Ziffern 0-9 durchgesetzt haben, kennt der Computer weiterhin "nur" 0 und 1 - sozusagen "elektrischen Signal" An oder Aus. Daher funktioniert die "Denkweise" einer Maschine auch komplett unterschiedlich im Vergleich zu unseren menschlichen Gedankengängen.


Die "Verschlüsselungstiefe" - der Grad an Sicherheit - einer Hash-Funktion basiert daher unter Anderem auf die Anzahl der möglichen Varianten. Aus diesem Grund vergleichen wir nun das Dezimalsystem mit binären Zahlen.


Im Dezimalsystem gibt es die Zahlen 0, 1, 2, 3, 4, 5, 6, 7, 8 und 9. In der Informatik wird jede einzelne Stelle/Zahl als Bit gezählt. Daher ergeben sich folgende Varianten:

Ein Bit        =  10 Varianten (0-9)
Zwei Bit       =  100 unterschiedliche Werte(00-99)
Drei Bit       =  1.000 unterschiedliche Werte (000-999)

Einfacher ist die Berechnung bei einer Vielzahl an Bits natürlich durch "Anzahl Bits hoch 10". Das binäre Zahlensytem beschränkt sich hingegen auf die Ziffern 0 und 1. Daher sind nur 2 Varianten je Bit möglich:

Eine Bit       =  2 unterschiedliche Werte (0, 1)
Zwei Bit       =  4 unterschiedliche Werte (00, 01, 10, 11)
Drei Bit       =  8 unterschiedliche Werte (000-111)

Somit ergeben sich hier Anzahl an Bits hoch 2 mögliche Varianten. Die Hash-Funktion sha256 hat folglich "Anzahl an Bits hoch 256" Möglichkeiten.


Expotentielle Anzahl an Möglichkeiten