Cryptographic hash functions

Authors: P.Gauravaram and L.R.Knudsen

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