Merkle-damgård revisited: How to construct a hash function

Jean Sébastien Coron, Yevgeniy Dodis, Cécile Malinaud, Prashant Puniya

Research output: Chapter in Book/Report/Conference proceedingConference contribution


The most common way of constructing a hash function (e.g., SHA-1) is to iterate a compression function on the input message, The compression function is usually designed from scratch or made out of a block-cipher. In this paper, we introduce a new security notion for hash-functions, stronger than collision-resistance. Under this notion, the arbitrary length hash function H must behave as a random oracle when the fixed-length building block is viewed as a random oracle or an ideal block-cipher. The key property is that if a particular construction meets this definition, then any cryptosystem proven secure assuming H is a random oracle remains secure if one plugs in this construction (still assuming that the underlying fixed-length primitive is ideal). In this paper, we show that the current design principle behind hash functions such as SHA-1 and MD5 - the (strengthened) Merkle-Damgård transformation - does not satisfy this security notion. We provide several constructions that provably satisfy this notion; those new constructions introduce minimal changes to the plain Merkle-Damgård construction and are easily implementable in practice.

Original languageEnglish (US)
Title of host publicationAdvances in Cryptology - CRYPTO 2005 - 25th Annual International Cryptology Conference, Proceedings
Number of pages19
StatePublished - 2006
Event25th Annual International Cryptology Conference, CRYPTO 2005 - Santa Barbara, CA, United States
Duration: Aug 14 2005Aug 18 2005

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume3621 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349


Other25th Annual International Cryptology Conference, CRYPTO 2005
Country/TerritoryUnited States
CitySanta Barbara, CA

ASJC Scopus subject areas

  • Theoretical Computer Science
  • General Computer Science


Dive into the research topics of 'Merkle-damgård revisited: How to construct a hash function'. Together they form a unique fingerprint.

Cite this