# Codebreaking at Cal Fall 2022 Archive

This is an archive of the Fall 2022 offering of the course. Note that many of these materials are now changed in the current iteration.

## Week 0

- 8/30
**Lecture 0**Introduction (Slides)**Lab 0**Setup (Due 9/4)**Note 0**Math Notation

## Week 1

- 9/6
**Lecture 1**Substitution Ciphers - Part 1 (Slides)**Lab 1**Polyalphabetic Substitution (Due 9/11)**Note 1**Substitution Ciphers

## Week 2

- 9/13
**Lecture 2**Substitution Ciphers - Part 2 (Slides)**Lab 2**Information Theory (Due 9/18)**Note 2**OTP and XOR

## Week 3

- 9/20
**Lecture 3**Asymmetric Encryption - Part 1 (Slides)**Lab 3**RSA, Diffie-Hellman**Note 3.1**Modular Arithmetic**Note 3.2**RSA, Diffie-Hellman

## Week 4

- 9/27
**Lecture 4**Asymmetric Encryption - Part 2 (Slides)**Lab 4**Discrete Logarithm and Pollardâ€™s Rho Algorithm**Note 4**Factorization and Discrete Logarithm

## Week 5

- 10/4
**Lecture 5**Hashing (Slides)**Lab 5**Hashing and Length-Extension Attacks**Note 5**Hashing, Birthday Paradox

## Week 6

- 10/11
**Lecture 6**Message Authentication Codes, Signatures (Slides)**Lab 6**MACs and Digital Signatures**Note 6**MACs and Digital Signatures

## Week 7

- 10/18
**Lecture 7**Randomness (Slides)**Lab 7**Exploiting Weak Randomness**Note 7**Random Number Generation

## Week 8

- 10/25
**Lecture 8**Steganography (Slides)**Lab 8**Steganography**Note 8**Steganography

## Week 9

- 11/1
**Lecture 9**Modern Encryption - Part 1 (Slides)**Lab 9**Block and Stream Ciphers**Note 9**Block and Stream Ciphers

## Week 10

- 11/8
**Lecture 10**Modern Encryption - Part 2 (Slides)**Lab 10**Elliptic Curve Cryptography**Note 10**Elliptic Curve Cryptography

## Week 11

- 11/15
**Lecture 11**Cryptography in Network Security (Slides)**Project**Final Project Part 1 (Spec)**Project**Final Project Part 2 (Spec)

## Week 12

- 11/22
**Lecture 12**Zero-Knowledge Proofs (Slides)**Project**Final Project Part 1 (Spec)**Project**Final Project Part 2 (Spec)

## Week 13

- 11/29
**Lecture 13**Post-Quantum Cryptography (Slides)**Project**Final Project Part 2 (Spec)