Modern Cryptography: Cryptography Hashes. Message Digests. Overview. Cryptographic hash functions are functions that: Map an arbitrary-length (but finite) input to a fixed-size output. Are one-way (hard to invert).
Message digest functions are collision-resistant, one-way hash functions:
Message digest functions can be used to ascertain data integrity:
After padding, constants are initialized to the following hexadecimal values:
for j = 16 to 79
for j = 0 to 79
TEMP = Circular_Left_Shift_5(A) + fj(B,C,D) + E + Wj+ Kj
E = D; D = C; C = Circular_Left_Shift_30(B); B = A; A = TEMP
key-dependent message digest function:
MAC(Key,Message) = h
MACs can be used to protect data integrity and authenticity:
Question: Does this structure look familiar?
mhash: Supports SHA1, GOST, HAVAL256, HAVAL224, HAVAL192, HAVAL160, HAVAL128, MD5, MD4, RIPEMD160, TIGER, TIGER160, TIGER128, CRC32B and CRC32 checksums. Free (GNU LGPL).
java.security: Offers a number of classes for applications needing crypto primitives. MessageDigest, for instance, is a class that produces digests according to MD5 or SHA.
OpenSSL: Secure sockets, MDs, MACs, ciphers (DES, AES, etc), big numbers, PRNGs, and lots of good stuff.