Cryptography Engineering by Bruce Schneier & Niels Ferguson