**Building a Collision-Resistant Compression Function from Non-Compressing Primitives**

*Thomas Shrimpton and Martijn Stam*

**Abstract: **We consider how to build an efficient compression function from a small number of random, non-compressing primitives.
Our main goal is to achieve a level of collision resistance as close as possible to the optimal birthday bound. We present a $2n$-to-$n$ bit compression function based on three independent $n$-to-$n$ bit random functions, each called only once. We show that if the three random functions are treated as black boxes finding collisions requires $\Theta(2^{n/2}/n^c)$ queries for $c\approx 1$. This result remains valid if two of the three random functions are replaced by a fixed-key ideal cipher in Davies-Meyer mode (i.e., $E_K(x)\xor x$ for permutation $E_K$). We also give a heuristic, backed by experimental results, suggesting that the security loss is at most four bits for block sizes up to 256 bits.

We believe this is the best result to date on the matter of building a collision resistant compression function from non-compressing functions. It also relates to an open question from Black et al. (Eurocrypt'05), who showed that compression functions that invoke a single non-compressing random function cannot suffice.

We also explore the relationship of our problem with that of doubling the output of a hash function and we show how our compression function can be used to double the output length of ideal hashes.

**Category / Keywords: **Hash Functions, Random Oracle Model, Compression Functions, Collision Resistance

**Publication Info: **Full version of paper appearing at ICALP'08

**Date: **received 25 Oct 2007, last revised 6 Jul 2008

**Contact author: **martijn stam at epfl ch

**Available format(s): **PDF | BibTeX Citation

**Version: **20080706:103157 (All versions of this report)

**Short URL: **ia.cr/2007/409

**Discussion forum: **Show discussion | Start new discussion

[ Cryptology ePrint archive ]