Cryptographic hash functions: theory and practice
Keying Hash Functions for Message Authentication