General description

Cryptography provides important tools for ensuring the confidentiality and integrity of sensitive digital data. This course covers the design and application of important cryptographic objects, including basic cryptographic tools, such as encryption, message authentication, and digital signatures, as well as advanced cryptographic objects and protocols, such as zero-knowledge proofs, secure multi-party computation, and fully homomorphic encryption. For each cryptographic object, we formalize its security goal, show schemes that achieve the desired security, and study security attacks or security proofs that establish the insecurity or security of the scheme at hand. Through this course, we aim to give an overview of the discipline of cryptography, the proper usage and application of important cryptographic tools, and methodologies that modern cryptography offers for developing cryptographic solutions to natural security problems.

Pre-req: CSE 312 and CSE 332. The class will be self-contained. But students are expected to be ready to understand mathematical definitions and proofs, and write simple ones. Exposure to basic probability / algebra / number theory, and theory of computing is also expected. (Contact the instructor if in doubt.)


Resources

There is no mandatory textbook. Slides and reading materials will be posted throughout the class. However, the following are good references about basic cryptography. (Be aware that different textbooks make very different notational choices to explain the same concepts.) A good overview on secure multi-party computation (from an applier perspective) is available in this textbook (available for free!)


Policies

Accommodations: We will follow UW policies for disability accommodations and religious accommodations.
Academic conduct: Please also refer to UW policies on student conduct and academic integerity
Class attendence and Recordings: This class will take place in person, so are the sessions and office hours. Attendence is mandatory. The lectures will be recorded and recordings will be available on Canvas.
DRS accommodation: If you want DRS accommodations, you should email DRS as soon as possible. DRS will contact us directly to get these accomodations set up for you.
Homework policy: Exams policy: All exams (midterm and final) will take place in the classroom. The final exam will be cumulative. The exams will be closed book, but you will be allowed to use a cheatsheet (more information will be provided at due time).


Grading

The following grading distribution may be slightly adjusted during the course of the quarter, according to the performance of the class. Exams grades will be curved upwards only. This means if the medium score is low, all scores will be shifted upwards, but if the medium score is high, no adjustment will be made. In other words, in the case of hard exams, the absolute scores do not matter.


Schedule

This is a tentative schedule meant to give an overview of the topics we are going to cover. The actual pace of the class may vary. See Edstem for updates

WkDate Lecture contents Homework Schedule
1 01/06 Introduction
  • Welcome / organizational details
  • What is this class about? Why study cryptography?
  • The Provable Security Angle
01/08 Introduction to Encryption
  • Symmetric Encryption
  • Attack types
  • Breaking monoalphaetic substitution
01/10 One-time Pads, Perfect Secrecy, and its Limitations
  • The one-time pad
  • Shannon and perfect secrecy
  • Limitations of perfect secrecy
  • Intro to computational hardness
2 01/13 Block Ciphers and Pseudorandom Permutations I
  • Definition of Block Ciphers
  • Definition of random permutations
01/15 Block ciphers and Pseudorandom Permutations II
  • Distinguishing Advantage
  • Definition of Pseudorandom Permutations
  • Design of AES
  • HW1 out
01/17 Symmetric Encryption: Definition
  • The design of AES
  • Insecurity of ECB
  • Introduction to semantic security
3 01/20 Martin Luther King Jr. Day
01/22 Symmmetric Encryption from PRFs I
  • Definition of IND-CPA security
  • Definition of PRFs
  • The PRF/PRP Switching Lemma and collision probabilities
01/24 Symmmetric Encryption from PRFs II
  • Security proof for the simple encryption scheme
  • Proofs via hybrid oracles
  • Basic reductions
  • HW1 due, HW2 out
4 01/27 Modes of Operation + Padding-Oracles Intro
  • CTR encryption
  • CBC encryption
  • Padding Schemes
01/29 Padding-Oracle Attacks
  • Fixing IND-CPA security for variable-length messages
  • Padding oracle attacks
  • Intro to ciphertext integrity
01/31 Hash Functions
  • Definition of collision-resistance
  • Applications of Hash Functions
  • The Merkle-Damgaard transform
  • HW2 due
5 02/03 Hash Functions & MACs
  • Security of Merkle-Damgaard
  • Seeded hash functions
  • Introduction to MACs
02/05 MACs
02/07 In-Class Midterm
  • HW3 out
6 02/10 Authenticated Encryption
02/12 Computational Number Theory
  • Motivation of public-key cryptography
  • Groups
  • Modular arithmetic
02/14 Computational Number Theory II
  • Exponentiation
  • Cyclic groups
  • The discrete logarithm problem
  • HW3 due, HW4 out
7 02/17 Key Exchange
  • The Diffie-Hellman Protocol
  • The hardness of the DL problem
02/19 Elliptic Curves
02/21 Public-key Encryption and RSA
  • How to build public-key encryption from two-round Key Exchange
  • The ElGamal cryptosystem
  • Plain RSA
  • HW4 due, HW5 out
8 02/24 RSA & Factoring
  • RSA & Padding
  • IND-CCA security & OAEP
  • Hardness of factoring
02/26 Digital Signatures I
  • Handling large RSA decryption exponents
  • Fault & side-channel attacks
  • Introduciton to digital signatures
02/28 Digital Signatures II
  • HW5 due, HW6 out
903/03 Authenticatd Key-Exchange & TLS
03/05 Secure Messaging
  • Secure messaging desiderata
  • Symmetric Ratchet
  • Continuous Key-Agreement
03/07 Introduction to Cryptographic Protocols
  • Two-party computation and ideal functionalities
  • HW6 due, HW7 out
10 03/10 Two-party Computation I
  • Garbling an AND gate
  • Oblivious Transfer
03/12 Two-party Computation II
  • Yao's protocol & Garbled Circuits
  • DDH-based PSI protocol
03/14 Secret-Sharing and Multi-Party Computation
  • Problem statement
  • Secret sharing
  • Protocol for addition
  • A general solution