1
Instructor:
Nadia Heninger
(nadiah at cs dot ucsd dot edu)
Office hours: Tuesday 3:45-4:45pm, EBU3B 3138
TA:
Eugene Lau
Office hours: Thursday 4:00-5:00pm, EBU3B B270A
Tutor:
Ekin Celik
Office hours: Wednesday 1:00-2:00pm, EBU3B B215a
Lectures:
Tuesday/Thursday 2pm-3:20pm PODEM 1A18
Discussion:
Monday 6pm-6:50pm CSB 001
Class Resources:
Gradebook and links on Canvas
Assignment submission on Gradescope
Asynchronous Q&A on Piazza, Synchronous Q&A on Discord, links on Canvas
Grading:
40%: Homework assignments
20%: Midterm
40%: Final
This course is an introduction to modern cryptography. Cryptography, broadly speaking, is about communicating in the presence of an adversary, with goals like preservation of privacy and integrity of communicated data. We will cover symmetric (private key) and asymmetric (public key) cryptography, including block ciphers, symmetric encryption, hash functions, message authentication, authenticated encryption, asymmetric encryption, digital signatures, factoring, discrete logarithm, ellilptic curve, and basic post-quantum cryptography, certificates, public-key infrastructure, key distribution, and various applications and protocols like TLS.
This is not a general computer security course. If you are interested in web security, network security, OS security, application exploitation, or other topics like these please take CSE 127.
| Topic | References | Assignments | |
| 1/6 | Introduction Lecture Slides | Katz and Lindell Ch. 1 | |
| 1/8 | Shannon secrecy, one-time pad Lecture Slides | Katz and Lindell Ch. 2 | |
| 1/12 | Discussion | Homework 1 available, with starter code | |
| 1/13 | Stream ciphers and pseudorandom generators Lecture Slides | Katz and Lindell Ch. 3.1-3.4 | |
| 1/15 | Chosen plaintext attacks, pseudorandom functions
Lecture Slides | Katz and Lindell Ch. 3.4 | |
| 1/19 | No discussion: MLK Day | ||
| 1/20 | Block ciphers Lecture Slides | Katz and Lindell Ch. 3.5, 3.6 | |
| 1/22 | Message authentication codes Lecture Slides | Katz and Lindell Ch. 4 | |
| 1/23 | Homework 2 available, with starter code | ||
| 1/26 | Discussion | ||
| 1/27 | Hash functions Lecture Slides | Katz and Lindell Ch. 6 | |
| 1/29 | Hash functions in practice and HMAC Lecture Slides | Katz and Lindell Ch. 6.3 | |
| 2/2 | Discussion | Homework 2 due at 11:59pm Homework 3 available, with starter code | |
| 2/3 | Authenticated encryption Lecture Slides | Katz and Lindell Ch. 5 | |
| 2/5 | Computational number theory
Lecture Slides | Katz and Lindell Ch. 9 | |
| 2/9 | Discussion+Midterm Review | Homework 3 due at 11:59pm | |
| 2/10 | Midterm Location: PODEM1A18 One 8.5"x11" cheat sheet allowed | ||
| 2/12 | Diffie-Hellman key exchange Lecture Slides | Katz and Lindell Ch. 9.3, Ch. 11 | |
| 2/16 | No Discussion: Presidents day | ||
| 2/17 | RSA Lecture Slides | Katz and Lindell Ch. 10.2.2, Ch. 11, Ch. 12 | |
| 2/19 | Public-Key Cryptography and Hybrid Encryption Lecture Slides | Katz and Lindell Ch. 12 | |
| 2/20 | Homework 4 available, with starter code | ||
| 2/23 | Discussion | ||
| 2/24 | Digital Signatures Lecture Slides | Katz and Lindell Ch. 13 | |
| 2/26 | Elliptic Curve Cryptography Lecture Slides | Katz and Lindell Ch. 9.3.4, 12.4.4, 13.5.3 | |
| 2/27 | Homework 4 due at 11:59pm Homework 5 available, with starter code | ||
| 3/3 | Authenticated Key Exchange and TLS Lecture Slides | Katz and Lindell Ch. 13.7 | 3/5 | Side-channel attacks Guest Lecture: Hovav Shacham |
| 3/6 | Homework 5 due at 11:59pm Homework 6 available, with starter code | ||
| 3/9 | Discussion | ||
| 3/10 | Post-Quantum Cryptography Guest Lecture: Adam Suhl Lecture Slides | ||
| 3/12 | Final Exam Review
| ||
| 3/16 | Homework 6 due at 11:59pm | ||
| 3/19 3-6pm | Final Exam Location: PODEM 1A18 One 8.5"x11" cheat sheet allowed |
We will be following Katz and Lindell Introduction to Modern Cryptography for most of this course. The 3rd edition is the latest, but probably any edition is fine.
You will have several problem sets over the quarter. They will be a combination of written proof-based exercises and programming exercises using the Python-based Playcrypt library.
You are expected to write up your homework solutions yourself. You may discuss the problems with small groups of your fellow classmates. Please credit your collaborators on your homework submission.
Late work policy: You have four late days that you can use for any reason. You can use at most two late days per assignment to turn it in late and receive credit. A late day is a full 24 hour period. These should cover all of your normal extension needs. If you have an unforeseen and truly extenuating circumstance that will impact all of your courses for an extended period, please reach out to us and contact the Office of Student Affairs for help with coordination.
Academic Integrity: Failure to follow the collaboration policy on assignments or exams, turning in other people's work as your own, using AI coding tools to write your homeworks, or dishonesty is an academic integrity violation.