- Feb 9th: Noisy Channels, Encoding/Decoding, Binary Symmetric Channel, Maximum Likelihood Decoding, Error Probabilties, Repetition Codes, Hamming Weight
- Feb 11th: Hamming Distance, Block Codes, Alphabets, Error Correcting, Error Detecting, General Hamming Code, The Main Coding Theory Problem. List of best known codes
- Feb 16th: Simple Linear Codes, examples, generator matrix, parity-check matrix, syndromes, "Hamming Hangman", \(A_2(n,d) = A_2(n+1, d+1)\) when \(d\) is odd, sphere packing bound, perfect codes.
- Feb 18th: Beginning of Abstract Algebra sub-course. Introduced Groups, Fields, Rings, Modular Arithmetic.
- Feb 23rd: Algebra Part 2: Dihedral Groups, Permuation Groups, Subgroups, Vector Spaces, Finite Fields, Cosets
- Feb 25th: Algebra Part 3: Generators, Bases, Orders, Fermat's Little Theorem, Euler Fermat Theorem, Legendre's Theorem, Subspaces.
- Mar 2nd: From Vector Spaces to Linear Codes. Notes on cloud.sagemath.com
- Mar 4th: Building a Generator and Parity Check Matrix.
- Mar 9th: Golay codes, dual codes, decoding linear codes. Notes on Sage cloud.
- Mar 11th: A look back at everything, decoding Golay codes. Notes on Sage cloud.
- Mar 16th: Test 1
- Mar 18th: Intro to crypto Notes on Sage Cloud
- Mar 23rd: Attacking Historical Ciphers, Substitution Playground, Basic Complexity Theory
- A nice substitution attack
**Vigenere**with a length 4 key.TOHJKJTJPHSFKBOYFRHYANAFMQSRTCWHBJBSHAPJKCKNXWSWFXJJWCCFEJFLXAVTNBSMBBKNYNYSHFWSZQWXGJHZKNTNZDFJWCVFMQSBHDZIYXFLXCVNLWSBTMRWXBGFGMPJNWOGENHTYRBIARGBTHVTFNOKMNFBHAYXHBVJPACYXCVJTMRWXBGTYCVJGNKMHVSTGJDNXLSTYYOUXAHMTCGMXVOIXQWRIDHNGQWXLQWWMYCHDNHFMUISVQHNFNHMTCRFRCVJIACKXBGTKQOITWWSLYWWBWUNWNOMXYIQENRYANDFINFTNCCKARGUHLYJMJBINBSIBCHTLLFNUKZJWXKSLXAJVJZHNUOYBXBXYRBIBWUFYUOBANHMKNKYANDFINFFPJMNGMWXZDGYTCHMXNBIHOHMXMODANFJTUWEXMVJAJRYAACBGJKFRQWXTMRWXBGMXWCBAJRSHRRJTFVJKNVJERJJWYIYMRBLARGRBWRYHFCWDQSHTVSZIFWYAJDQTWVJPXIQWPCYHQWXHURMHDGJTWRFPJWYKNGHNNVNLFWKXFCZEMGZKNZDKNOQBISYAJHMXFOXEXGYTWRLHCCMBBCQWQCZLNHTIRQPARAZIDBKHAHZGJHJEHKMXWVJTAFNONRFMQWXHURMHDGJMQSWXFOXGXGNZWCKARGBBOSTGUMFLVOQEPWWEBHFGMWSZRBKKXBYHOHMXQCZLNSCVDGJFNZNMCZJZRFQANGFBMPZMMCDHDVFIYSSMXYSHFKMXASYANDJHYZJPQCZLNRYHUWAXQSWXVCAXMHTBCGTDJMITMRDLJWIMQSQBCHQXPWWEVCRFHGJGCAJMXUJMHCZFXFFEXBJWXBYUNGZKYFNLNRNYCVJIACKXBGTKMCJLWHPGXKDHDFSTVSGRCVJXWRTYCVJLNAJLCSWFXFFECKTUNUQTMMTNADFKNBYLJFJGCAFMQSRTCWHBJBXBOMTNADFKNBYLJFJFJHMXVOYBLWFGBWSMACINLSDHDFXXUTFGMUJMCVJFCCMXUDDHDHMKXILACVJVXIWLN

- Perfectly Secret Encryption, One-Time Pad, Light Pseudo-Random Number Generation (check this one out), Breaking the one-time pad (when used terribly).
- Apr 6th: Computational Security (as opposed to the information theory security we've seen), computational models, Negligible Functions, Length of Message Leaks
- Apr 8th: Pseudo-Random Generators, Indistinguishability, Intro to Stream and Block Ciphers, from PRG to PKE
- Apr 13th: Security for multiple encrpytions, pitfalls of determinism, CPA-security, from block cipher to CPA-multiple-security
- Apr 15th: Block Cipher Modes of Operation, basic forge contest for MACs
- Apr 20th: Class-level walkthrough of DES worked from NIST handout
- Apr 22nd: TAKE HOME TEST 2. Shared Power Point Slides on the DES experience Introduced discrete log problem and Diffie-Hellman key-sharing.
- Apr 27th: Blackhat challenge is out, some quick thoughts. Public-Key Encryption, ElGamal, good discrete log settings
- Apr 29th: RSA challenge and mini frequency tool
- May 4th: Pollard's p-1 and Pollard's Rho factoring techniques, and the birthday problem
- May 6th: Trivium and RC4/Spritz also these cool slides on AES
- May 11th: In-class research scavenger hunt
- What is a message authentication code?
- What is the challenge model for a MAC-scheme?
- How is MAC different than a digital signature scheme?
- Use construction 4.5 to make a fixed-length MAC from the take-home PRG (100::111:101:001:110:000:011:010) and give a tag for message 110, confirm or deny the authenticity of the message tag pair (101, 010).
- Use construction 4.7 to make a tag for message 110 011 001 100 using the identity permutation as your PRG (I know it's not a good shuffler).
- What is a hash function?
- What is the challenge model for a hash function?
- What the in the world is Merkle-Damgard (and why does Andy think it is so cool)?
- Use a hash function to build a MAC scheme (make a choice).
- Explain the meaningful collisions attack.

- May 13th: Group secrets!
- How do you require \(N\) people to coordinate to share a secret?
- How do you allow \(t\) people (from a set of \(N\)) to decrypt, while \(t-1\) cannot decrypt?
- Polynomial Interpolation and Shamir's method

- May 18th:
Crowd-sourced crypto-in-the-wild.

In your group: find a news-worthy crypto attack / cyber-security breach / possible-exploit and answer the following:

- What are the major details (who what when where)?
- What institution(s) were impacted?
- What systems were involved? (email, ssh, http, etc)
- What was the technical weakness that lead to the attack?
- What could have been done to prevent the problem?

At 5:45 we'll hear one rep from each group.