HAVAL ist eine kryptologische Hashfunktion. Im Gegensatz zu MD5 ist es mit HAVAL, wie mit anderen moderneren Algorithmen, möglich, Hashes variabler Länge zu erzeugen, vor allem von 128 Bit, 160 Bit, 192 Bit, 224 Bit und 256 Bit. HAVAL erlaubt außerdem eine variable Anzahl von Runden (3, 4, oder 5).
HAVAL wurde von Yuliang Zheng, Josef Pieprzyk und Jennifer Seberry im Jahr 1992 erfunden.
HAVAL Hash
Die 128 bis 256 Bit langen HAVAL-Hashes (englisch message digests) werden normalerweise als 32-, 40-, 48-, 56- oder 64-stellige Hexadezimalzahl notiert. Folgendes Beispiel zeigt eine 43 Byte lange ASCII-Eingabe und den zugehörigen HAVAL-Hash (in diesem Fall die Variante mit 256 Bit und 5 Runden):
HAVAL("The quick brown fox jumps over the lazy dog", 256, 5) = b89c551cdfe2e06dbd4cea2be1bc7d557416c58ebb4d07cbc94e49f710c55be4
Eine kleine Änderung der Nachricht erzeugt typischerweise einen komplett anderen Hash. Wird das d
durch ein c
ersetzt ergibt sich ein völlig anderes Ergebnis:
HAVAL("The quick brown fox jumps over the lazy cog", 256, 5) = 60983bb8c8f49ad3bea29899b78cd741f4c96e911bbc272e5550a4f195a4077e
Der Hash eines Strings der Länge Null ist:
HAVAL("", 256, 5) = be417bb4dd5cfb76c7126f4f8eeb1553a449039307b1a3cd451dbfdc0fbbe330
Sicherheit
Am 17. August 2004 wurde von Xiaoyun Wang, Dengguo Feng, Xuejia Lai und Hongbo Yu eine mögliche Kollision gefunden, weshalb HAVAL (zumindest die Variante mit 128 Bits und 3 Runden) nur mit Vorsicht benutzt werden sollte.
Einzelnachweise
- ↑ eprint.iacr.org (PDF).