ABSTRACT

This chapter is focused on cryptography – from classical cryptography, such as the Caesar cipher, and Vigenère through to more complex variants. The chapter looks at substitution ciphers, frequency distribution and how these are cracked. It includes coding in Python of several types of cryptography. The one-time pad is investigated before leading into modern algorithms and cryptography. Python and Node.js examples are given utilizing libraries and showing how to select the correct modules for modern cryptographic techniques. Hashing is also reviewed and practical examples are given. Steganography in various forms as well as digital watermarking are also looked at in depth.