HAVAL
Encyclopedia
HAVAL is a cryptographic hash function
. Unlike MD5
, but like most modern cryptographic hash functions, HAVAL can produce hashes of different lengths. HAVAL can produce hashes in lengths of 128 bits, 160 bits, 192 bits, 224 bits, and 256 bits. HAVAL also allows users to specify the number of rounds (3, 4, or 5) to be used to generate the hash.
HAVAL was invented by Yuliang Zheng
, Josef Pieprzyk
, and Jennifer Seberry
in 1992.
numbers. The following demonstrates a 43-byte ASCII
input and the corresponding HAVAL hash (256 bits, 5 passes):
HAVAL("The quick brown fox jumps over the lazy dog", 256, 5) =
b89c551cdfe2e06dbd4cea2be1bc7d557416c58ebb4d07cbc94e49f710c55be4
Even a small change in the message will (with overwhelming probability) result in a completely different hash, e.g. changing the letter d to a c produces the following hash value:
HAVAL("The quick brown fox jumps over the lazy cog", 256, 5) =
60983bb8c8f49ad3bea29899b78cd741f4c96e911bbc272e5550a4f195a4077e
The hash of a zero-length string is:
HAVAL("", 256, 5)
= be417bb4dd5cfb76c7126f4f8eeb1553a449039307b1a3cd451dbfdc0fbbe330
s for HAVAL (128 bits, 3 passes) were announced by Xiaoyun Wang
, Dengguo Feng, Xuejia Lai
, and Hongbo Yu http://eprint.iacr.org/2004/199.pdf.
Cryptographic hash function
A cryptographic hash function is a deterministic procedure that takes an arbitrary block of data and returns a fixed-size bit string, the hash value, such that an accidental or intentional change to the data will change the hash value...
. Unlike MD5
MD5
The MD5 Message-Digest Algorithm is a widely used cryptographic hash function that produces a 128-bit hash value. Specified in RFC 1321, MD5 has been employed in a wide variety of security applications, and is also commonly used to check data integrity...
, but like most modern cryptographic hash functions, HAVAL can produce hashes of different lengths. HAVAL can produce hashes in lengths of 128 bits, 160 bits, 192 bits, 224 bits, and 256 bits. HAVAL also allows users to specify the number of rounds (3, 4, or 5) to be used to generate the hash.
HAVAL was invented by Yuliang Zheng
Yuliang Zheng
Yuliang Zheng is a Professor at the University of North Carolina at Charlotte. He is best known for inventing the Signcryption cryptographic primitive that combines the digital signature and encryption operations into one single step...
, Josef Pieprzyk
Josef Pieprzyk
Josef Pieprzyk is a professor at Macquarie University in Sydney, Australia.He has worked on cryptography, in particular the XSL attack. He collaborated in the invention of the LOKI and LOKI97 block ciphers and the HAVAL cryptographic hash function....
, and Jennifer Seberry
Jennifer Seberry
Jennifer Roma Seberry is an Australian cryptographer, mathematician, and computer scientist, currently a professor at the University of Wollongong, Australia...
in 1992.
HAVAL hashes
The HAVAL hashes (also termed fingerprints) are typically represented as 32-, 40-, 48-, 56- or 64-digit hexadecimalHexadecimal
In mathematics and computer science, hexadecimal is a positional numeral system with a radix, or base, of 16. It uses sixteen distinct symbols, most often the symbols 0–9 to represent values zero to nine, and A, B, C, D, E, F to represent values ten to fifteen...
numbers. The following demonstrates a 43-byte ASCII
ASCII
The American Standard Code for Information Interchange is a character-encoding scheme based on the ordering of the English alphabet. ASCII codes represent text in computers, communications equipment, and other devices that use text...
input and the corresponding HAVAL hash (256 bits, 5 passes):
HAVAL("The quick brown fox jumps over the lazy dog", 256, 5) =
b89c551cdfe2e06dbd4cea2be1bc7d557416c58ebb4d07cbc94e49f710c55be4
Even a small change in the message will (with overwhelming probability) result in a completely different hash, e.g. changing the letter d to a c produces the following hash value:
HAVAL("The quick brown fox jumps over the lazy cog", 256, 5) =
60983bb8c8f49ad3bea29899b78cd741f4c96e911bbc272e5550a4f195a4077e
The hash of a zero-length string is:
HAVAL("", 256, 5)
= be417bb4dd5cfb76c7126f4f8eeb1553a449039307b1a3cd451dbfdc0fbbe330
Security
Research has uncovered weaknesses which make further use of HAVAL (at least the variant with 128 bits and 3 passes) questionable. On 17 August 2004, collisionHash collision
Not to be confused with wireless packet collision.In computer science, a collision or clash is a situation that occurs when two distinct pieces of data have the same hash value, checksum, fingerprint, or cryptographic digest....
s for HAVAL (128 bits, 3 passes) were announced by Xiaoyun Wang
Xiaoyun Wang
Wang Xiaoyun is a researcher and professor in the Department of Mathematics and System Science, Shandong University, Shandong, China....
, Dengguo Feng, Xuejia Lai
Xuejia Lai
Xuejia Lai is a cryptographer, currently a professor at Shanghai Jiao Tong University. His notable work includes the design of the block cipher IDEA, the theory of Markov ciphers, and the cryptanalysis of a number of cryptographic hash functions. His book On the Design and Security of Block...
, and Hongbo Yu http://eprint.iacr.org/2004/199.pdf.
External links
- HAVAL (the official HAVAL page with the research paper on HAVAL, the latest C source code and HAVAL OIDs)
- Online HAVAL calculation with all rounds and lengths