Course Description: This course is about techniques and tools for secure computation. Secure multi-party computation (MPC) allows a set of mutually-distrusting parties, each with their own individual input, to compute the output of a function without leaking anything about their inputs, beyond what is inferred by the function's output. The course will cover secure computation on encrypted data in both interactive settings (i.e., interactive MPC) and non-interactive settings (tools such as fully-homomorphic encryption, functional encryption and attribute-based encryption). We will discuss themes such as (a) weakening cryptographic assumptions for performing secure computation, and (b) improving communication and computational complexity of MPC protocols.
Course Official Website: Piazza containing all announcements and other information.
Background: Students are assumed to have basic familiarity with cryptography (e.g., any of CS 458/658, CS 758, C&O 487, or equivalent) and mathematical maturity.
Syllabus:
Information-Theoretically-Secure MPC based on Secret Sharing
Computationally-Secure MPC (Garbled Circuits, Fully-Homomorphic Encryption (FHE))
MPC in the minimal number of rounds
Zero Knowledge Proofs: Non-Interactive/Interactive and SNARKs
MPC for Specific Tasks: Private-Information Retrieval (PIR), PSI
Hiding Access Structure (ORAM, Garbled RAM)
Paper Reading and Presentations
Grading: Participation, discussion and scribe notes: 25% , Assignments (one or two): 25% , Research Investigation and Report: 50%
Resources: We won't follow any textbooks, but the following are good to look at:
(1) Oded Goldreich: Foundations of Cryptography
https://www.wisdom.weizmann.ac.il/~oded/foc-book.html
(2) Katz-Lindell: Introduction to Modern Cryptography
http://www.cs.umd.edu/~jkatz/imc.html
(3) Yehuda Lindell: How to simulate it https://eprint.iacr.org/2016/046
(4) Mike Rosulek: The joy of cryptography
https://joyofcryptography.com/
Assignment: Assignment