HAVAL (hash)

Disambiguazione – "HAVAL" rimanda qui. Se stai cercando l'azienda cinese, vedi Haval.

L'HAVAL è una funzione crittografica di hashing utilizzata per generare message digest ("impronta del messaggio"), stringhe di lunghezza predefinita partendo da un messaggio di lunghezza variabile, inventata da Yuliang Zheng, Josef Pieprzyk e Jennifer Seberry nel 1992.

A differenza di altri algoritmi di hash quali l'MD5, che producono digest di lunghezza fissa, l'HAVAL può produrre hash di differenti lunghezze: 128, 160, 192, 224 e 256 bit. L'HAVAL permette anche di impostare il numero di passaggi (3, 4 o 5) da utilizzare per la generazione dell'hash.

Hash dell'HAVAL

Gli hash dell'HAVAL (spesso indicati come impronte digitali) sono generalmente rappresentati da numeri esadecimali a 32, 40, 48, 56 o 64 cifre. Ecco un esempio di hash di un messaggio generato utilizzando 5 passaggi e richiedendo una lunghezza del digest di 256 bit:

HAVAL("The quick brown fox jumps over the lazy dog", 256, 5) =
b89c551cdfe2e06dbd4cea2be1bc7d557416c58ebb4d07cbc94e49f710c55be4

Anche un piccolo cambiamento nel messaggio genera un hash molto differente; ecco cosa si ottiene, per esempio, cambiando una d con una c nel precedente messaggio:

HAVAL("The quick brown fox jumps over the lazy cog", 256, 5) = 
60983bb8c8f49ad3bea29899b78cd741f4c96e911bbc272e5550a4f195a4077e

Questo è invece l'hash di una stringa di lunghezza zero:

HAVAL("", 256, 5)
 = be417bb4dd5cfb76c7126f4f8eeb1553a449039307b1a3cd451dbfdc0fbbe330

Sicurezza

Nel 2004 Xiaoyun Wang ha presentato uno studio in cui dimostra come si può condurre un attacco di collisione all'HAVAL a 128 bit con 3 passaggi[1].

Note

Collegamenti esterni