Applied Cryptography Protocols, Algorithms and Source Code In C by Bruce Schneier