Table of contents : Making paper cryptography tools -- Installing Python -- Programming in the interactive shell -- Strings and writing programs -- The reverse cipher -- The Caesar Cipher -- Hacking the Caesar Cipher with the brute-force technique -- Encrypting with the transposition cipher -- Decrypting with the transposition cipher -- Programming a program to test your program -- Encrypting and decrypting files -- Detecting English programmatically -- Hacking the transposition cipher -- Making a modular arithmetic module for the multiplicative and affine ciphers -- Programming the affine cipher -- Hacking the affine cipher -- The simple substitution cipher -- Hacking the simple substitution cipher -- Programming the vigenere cipher -- Frequency analysis -- Hacking the vigenere cipher -- The one-time pad cipher -- Finding prime numbers -- Generating keys for the RSA cipher -- Public key cryptography and programming the RSA cipher.