Introduction
Chapter 1: Making Paper Cryptography Tools
Chapter 2: Installing Python
Chapter 3: The Interactive Shell
Chapter 4: Strings and Writing Programs
Chapter 5: The Reverse Cipher
Chapter 6: The Caesar Cipher
Chapter 7: Hacking the Caesar Cipher with the Brute-Force Technique
Chapter 8: Encrypting with the Transposition Cipher
Chapter 9: Decrypting with the Transposition Cipher
Chapter 10: Programming a Program to Test Our Program
Chapter 11: Encrypting and Decrypting Files
Chapter 12: Detecting English Programmatically
Chapter 13: Hacking the Transposition Cipher
Chapter 14: Making a Modular Arithmetic Module for the Multiplicative and Affine Ciphers
Chapter 15: Programming the Affine Cipher
Chapter 16: Hacking the Affine Cipher
Chapter 17: The Simple Substitution Cipher
Chapter 18: Hacking the Simple Substitution Cipher
Chapter 19: The Vigenere Cipher
Chapter 20: Frequency Analysis
Chapter 21: Hacking the Viginere Cipher
Chapter 22: The One-Time Pad Cipher
Chapter 23: Finding Prime Numbers
Chapter 24: Generating Keys for the RSA Cipher
Chapter 25: Public Key Cryptography and Programming the RSA Cipher
Appendix: Debugger