Understanding the Security of Cryptographic Hash Functions
jeffcarp.com