Analysis and Design of Cryptographic Hash Functions by