Practical Cryptography by Bruce Schneier & Niels Ferguson