Abstract:
Cryptographic hash functions are an important tool
of cryptography and play a fundamental role in efficient
and secure information processing. A hash
function processes an arbitrary finite length input
message to a fixed length output referred to as the
hash value. As a security requirement, a hash value
should not serve as an image for two distinct input
messages and it should be difficult to find the input
message from a given hash value. Secure hash functions
serve data integrity, non-repudiation and authenticity
of the source in conjunction with the digital
signature schemes. Keyed hash functions, also
called message authentication codes (MACs) serve
data integrity and data origin authentication in the
secret key setting.The building blocks of hash functions
can be designed using block ciphers, modular
arithmetic or from scratch.The design principles of
the popular Merkle–Damgård construction are followed
in almost all widely used standard hash functions
such as MD5 and SHA-1.
In the last few years, collision attacks on theMD5
and SHA-1 hash functions have been demonstrated
and weaknesses in the Merkle–Damgård construction
have been exposed. The impact of these attacks
on some important applications has also been analysed.
This successful cryptanalysis of the standard
hash functions has made National Institute of Standards
and Technology (NIST), USA to initiate an
international public competition to select the most
secure and efficient hash function as the
Advanced Hash Standard (AHS) which will be referred to as
SHA-3. This chapter studies hash functions. Several approaches
to design hash functions are discussed. An
overviewof the generic attacks and short-cut attacks
on the iterated hash functions is provided. Important
hash function applications are described. Several
hash based MACs are reported. The goals of
NIST’s SHA-3 competition and its current progress
are outlined.
Keywords: Compression function, Hash function, Cryptanalysis, Generic attacks