Hashing

Aus Siwecos
Wechseln zu: Navigation, Suche

Hashing

Das Hashing ist ein Verfahren, welches jedem Text eine eindeutige Signatur zuweist. Als Beispiel für ein Hashverfahren nehme ich ein „Selbstgebautes“. Im echten Leben ist es natürlich nicht ganz so einfach. Wir schreiben einen Text „Hallo“, jetzt schreiben wir von jedem Buchstaben den Index auf. A ist der erste Buchstabe des Alphabets und hat daher den Index 1, B hat den Index 2 usw. Z hat die 26.

So ergibt sich für unser Beispiel H=8,a=1,l=12,l=12,o=15, Hallo ist in Zahlen also 8 1 12 12 15. Nun multiplizieren wir alle Indizies, also nehmen alle Buchstaben mal. 8*1*12*12*15 = 17280. „Hallo“ hat also die Signatur 17280. „Hallu“ hätte schon eine ganz andere Signatur, obwohl nur ein Buchstabe geändert ist, nämlich 8*1*12*12*21 = 24192.

Das ist recht nützlich. Wenn ich jemandem eine Nachricht schicke und ihm vorher sage, dass die Signatur 17280 ist, eine Kontrolle aber anzeigt, dass der Text die Signatur 24192 hat, könnte es sein, dass ein Angreifer den Text verändert hat.

Wie gesagt, meine Methode ist nicht praxistauglich, da „Hallo“ und „Ollah“ beispielsweise dieselbe Signatur haben. Andererseits zeigt dies auch das Problem beim Hashing. Wünscheswert wäre es, dass jeder Text eine andere Signatur hat. Das lässt sich aber schwer bis gar nicht realisieren.

Es gibt unterschiedliche Hashfunktionen, hier ein paar Beispielwerte unterschiedlicher Hashfunktionen für den Text "hallo":

MD5
SHA1
RMD160
SHA224
SHA256

= 59 8D 4C 20 04 61 B8 15 22 A3 32 85 65 C2 5F 7C
= FD4C EF7A 4E60 7F1F CC92 0AD6 329A 6DF2 DF99 A4E8
= 83EE 05F7 8FF6 4F84 24A2 DD62 96D3 540A FEC0 537D
= 3DD85BA1 B76430F6 FF55CF0D 8419807A 7564BFFA 4C1D189A DED9D348
= D3751D33 F9CD5049 C4AF2B46 2735457E 4D3BAF13 0BCBB87F 389E349F BAEB20B9