Introduction

**Chapter 1:** Making Paper Cryptography Tools**Chapter 2:** Installing Python**Chapter 3: Programming in the Interactive Shell (AVAILABLE NOW)****Chapter 4: Strings and Writing Programs (AVAILABLE NOW)****Chapter 5: The Reverse Cipher (AVAILABLE NOW)****Chapter 6: The Caesar Cipher (AVAILABLE NOW)****Chapter 7: Hacking the Caesar Cipher with Brute-Force (AVAILABLE NOW)****Chapter 8: Encrypting with the Transposition Cipher (AVAILABLE NOW)****Chapter 9: Decrypting with the Transposition Cipher (AVAILABLE NOW)****Chapter 10: Programming a Program to Test Your Program (AVAILABLE NOW)****Chapter 11: Encrypting and Decrypting Files (AVAILABLE NOW)****Chapter 12: Detecting English Programmatically (AVAILABLE NOW)****Chapter 13: Hacking the Transposition Cipher (AVAILABLE NOW)****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:** Programming the Vigenère Cipher**Chapter 20:** Frequency Analysis**Chapter 21:** Hacking the Vigenère 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