Cryptography, Information Theory, and Error-Correction: A Handbook for the 21st Century