Thursday, Sept. 2 — Reading: Intro and pp. 1-14 of Singh — Steganogrpahy, Ciphers, Codes, Transposition Ciphers, Substitution Ciphers — Rail Fence Notebook
Week 2 — Substitution Ciphers
Monday, Sept. 6 — Reading: pp. 14-32 of Singh — Substitution Cipher Breaking using Frequency Analysis — Problem Set 1: 3-line Rail Fence Notebook — Rail Fence with Arbitrary Key
Thursday, Sept. 9 — Reading: pp. 32-44 of Singh — Substitution Cipher — Problem Set 2: Frequency Counting
Week 3 — Cracking Substitution Ciphers and Introducing the Vigenere Cipher
Monday, Sept. 13 — Reading: pp. 45-63 of Singh — The Vigenere Cipher — Problem Set 3: Crack Stage 1 and Stage 2 of Singh’s Cipher Challenge — Stage 1 we completed by hand after using your frequency counting program to get an indication of which letters are E, T, and A; Stage 2 do by brute force, (e.g., by writing a program that tries all 25 keys) — Introducing Functions and Unit Tests
Thursday, Sept. 16 — Reading: pp. 63-78 of Singh — Babbage Breaks the Vigenere Cipher — Problem Set 4 for Thursday: Encipher with the Vigenere Cipher (this notebook has all the steps for setting up a new project with the important code in functions and with unit tests to test those functions) — Introduction to the Python Debugger
Week 4 — Cracking the Vigenere Cipher and the Playfair Cipher and Introducing the ADFGVX Cipher
Monday, Sept. 20 — Reading: Finish Chapter 2 of Singh — Problem Set 5 for Monday: You are going to crack Stage 4 of Singh’s Challenge by starting with Notebook 2.2 which finds repetitions and separations of words (usually of length 4); once the key length is known, apply frequency analysis to the Caesar ciphers
Thursday, Sept. 23 — Reading 1: Start Chapter 3 of Singh pp. 101-124 — Reading 2: Introducing the ADFGX and ADFGVX ciphers (Singh Appendix F) — Problem Set 6: Upgrade your Vigenere-cracking notebook to use matplotlib.pyplot for bar charts of frequencies, and to use list comprehensions — Notebook with Singh Challenge 4 Cracked
Thursday, Sept. 30 — Continue working on the two readings from Monday — The goal is to understand Friedman in a completely detailed way and to generally understand Konheim — Complete the notebook that introduces tuples and implements the ADFGVX Cipher
Week 6 — The Mechanization of Secrecy
Monday, Oct. 4 — In Singh, read the remainder of Chapter 3, “The Mechanization of Secrecy,” which is pp. 124-142 — For understanding the Enigma operator’s procedure, it is helpful to see an actual Monthly Key Sheet — Notebook with my ADFGVX Cipher Solution — As the next assignment, apply the method that Friedman describes on pp. 65-69 to crack the following two messages:
Monday, Oct. 11 — Read pp. 71-115 of Welchman — The Enigma Notebook goes much further into objects (your assignment is to finish implementing ScramblerWheel at which point all the tests of ScramblerWheel and ReversedScramblerWheel should pass, and the encryption of TOTHEPRESIDENTOFTHEUNITEDSTATES should agree with the emulator)