Merkle-Damgård Revisited: How to Construct a Hash Function. - Jean-Sébastien Coron; Yevgeniy Dodis; Cécile Malinaud; Prashant Puniya (CRYPTO, 2005)