Merkle Damgard Revisited: how to Construct a hash Function Jean-Sebastien Coron Yevgeniy Dodis Cecile Malinaud Prashant Puniya.