COS 433 - Cryptography (Spring 2017)
Course Information
Instructor: | Mark Zhandry () |
|      Office Hours: Mondays 3-4pm (COS 314) |
TA: | Fermi Ma () |
|      Office Hours: Fridays 2-3pm (Theory lounge, COS 3rd floor) |
Lecture: | MW 1:30am - 2:50pm, Room TBA |
Grading: | 50% for roughly weekly homeworks, 20% take-home midterm, 30% take-home final |
Piazza: | https://piazza.com/princeton/spring2017/cos433mat473_s2017 |
Textbook: | There is no official text for this course,
however Introduction to Modern Cryptography by Katz and Lindell (KL)
is a good resource. Each lecture will have pointers to the appropriate sections of KL for those following along with
the book. |
Course Description
Cryptography is an ancient practice dating back almost 4000 years. However, cryptography practiced today is very different than the cryptography
used as recently as a few decades ago. For one, traditional cryptography was mostly synonymous with encryption: translating data into secret codes. Today, however,
cryptography extends far beyond basic codes to encompass concepts such as authentication and integrity, and can be used to solve seemingly impossible tasks such as
public key encryption (exchanging secret messages without ever having met in person to share a secret key) and zero knowledge proofs (proving theorems without revealing the proof).
Another new feature in modern cryptography is its foundations. Until recently, cryptography was largely an art form based on intuition and ad hoc tweaks to block vulnerabilities.
Modern crytpography is instead more of a science, characterized by rigorous mathematical definitions and theorems that guide the design of new systems.
This course is an introduction to modern cryptography, focusing on the theoretical foundations, with some attention to practical considerations. We will cover a variety of
topics, including secret key and public key encryption, authentication, commitments, pseudorandom generators, and zero knowledge proofs.
Prerequisites: Basic probability theory. Basic complexity theory (as in COS340) recommended. No programming knowledge is required, though there may be an occasional
extra credit exercise that will involve minimal programming (in a language of your choice).
Tentative Schedule (subject to change)
Lecture | Topic | KL Section | Notes |
1 - M, 2/6 | Course introduction, A Brief History of Cryptography | 1.3 | [1] |
2 - W, 2/8 | Definitions in Cryptography, the One-time Pad | 1.4-2.2 | [2] |
3 - M, 2/13 | Multiple Message Security, Issues, Randomized Encryption | | [3] |
4 - W, 2/15 | Limitations of Information-Theoretic Security, Stream Ciphers,
PRGs, and Computational Assumptions | 2.3-3.3 | [4] |
5 - M, 2/20 | Constructing PRGs | 6.1 | [5] |
6 - W, 2/22 | CPA security and PRFs | 3.4-3.5 | [6] |
7 - M, 2/27 | PRPs, Block Ciphers, Modes of Operation | 3.6, 6.2 | [7] |
8 - W, 3/1 | Constructing Block Ciphers | 6.2 | [8] |
9 - M, 3/6 | Attacks on Block Ciphers | 6.2 | [9] |
10 - W, 3/8 | Message Integrity, MACs | 4.1-4.4, 4.6 | [10] |
11 - M, 3/13 | Authenticated Encryption, CCA Security | 4.5 | [11] |
12 - W, 3/15 | Collision Resistant Hashing, Random Oracle Model | 5.1-5.4, 6.3 | [12] |
M, 3/20 | No Class - Spring Break |
W, 3/22 |
13 - M, 3/27 | Commitment Schemes | | [13] |
14 - W, 3/29 | Number-theoretic constructions of symmetric primitives | 8.3-8.4 | [14] |
15 - M, 4/3 | One-way permutations, hardcore
predicates | 7.1 | [15] |
16 - W, 4/5 | Relationships between Symmetric Primitives | 7.2 | [16] |
17 - M, 4/10 | Diffie Hellman Key Exchange | 10.3 | [17] |
18 - W, 4/12 | Public Key Encryption | 11.1-11.4 | [18] |
19 - M, 4/17 | RSA, Trapdoor Permutations | 11.5, 13.1 | [19] |
20 - W, 4/19 | Digital Signatures | 12.1-12.4 | [20] |
21 - M, 4/24 | Digital Signatures from One-way Functions | 12.6 | [21] |
22 - W, 4/26 | Identification Protocols | 12.5 | [22] |
23 - M, 5/1 | Zero Knowledge | | [23] |
24 - W, 5/1 | CCA-secure Public Key Encryption without Random Oracles | | [24] |
Handouts
Basic Number Theory
Homework Assignments
Homework 1 (Due Feb 14)
Homework 2 (Due Feb 21)
Homework 3 (Due Feb 28)
Homework 4 (Due Mar 7)
Homework 5 (Due April 4)
Homework 6 (Due April 11)
Homework 7 (Due April 18)
Homework 8 (Due April 25)
Homework 8 (Due May 7)
Homeworks will be assigned roughly every week. Homework assignments will be posted on the course webpage early in the week (hopefully by
Monday, definitely by Tuesday) and will be due the following Tuesday. Expect there to be a homework assignment
due every week except the first week of class,
midterm week, and the week following Spring Recess (for a total of 9 assignments).
Format: Please type up your solutions. Please let the teaching staff know if this will be a problem. LaTeX is strongly preferred. Learning
LaTex will require a learning curve, but will pay off in the long run. Once you are accustomed to LaTex, you will be able to typeset technical material
such as equations very quickly.
Submission: Assignments will be due at 11:59pm on the due date of the assignment. Please submit your solutions digitally through Blackboard.
Collaboration Policy: You are encouraged to discuss homework assignments with other students in the class. However, students must write up solutions individually,
and must not share their written solutions with classmates. Please identify your collaborators on your homework submissions.
Formalism: You must always show all of your work. Unless otherwise stated, any cryptosystem derived in the homework assignment must analyzed for both correctness and security. That is, you
must
prove both the correctness and security of the scheme. When asked to prove a statement (correctness/security or otherwise), the proof needs to be well
written and rigorous. Your proofs do not need to be overly formal, but should not contain any logical gaps or errors. Any statements proved in lecture can be used in the
solutions without proof, but any other statement should be proved as a part of the solution.
Extra Credit: There may be an occasional extra credit problem on the homework assignments. You are not required to attempt these problems, and will not be
penalized for skipping them.
Flexibility: If you do not turn in an assignment, or turn in an assignment late, you will receive a zero for that assignment. However, your
two lowest homework
scores will automatically be dropped. You do not need to tell us which homework scores you would like to drop, and you do not need to let us know if you plan on
not turning in an assignment — we will take care of the dropping for you. Any extra credit problems attempted in a dropped homework will still be considered in the overall grade.
Take Home Midterm
TBA
Take Home Final
TBA