Contents 1 Introduction 2 Preliminaries 3 The sign of differences and their properties 4 Weaknesses of MD5 algorithm 5 Selection of weak input differences 6 Construct differential path and deduce sufficient conditions 7 Collision searching 8 MD5 collision attacks with only a single block 9 Conclusion and some suggestions on future research