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.
Objectives: Learning about the fundamentals of secure multi-party computation: security defintions and methods for constructing sound protocols. Students will learn how the basic tools used to MPC, how to capture threat models in terms of rigorous security definitions and how reason about the security of protocols with respect to various security nations.
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 in the minimal number of rounds (Multi-Key/Spooky FHE)
MPC for Specific Tasks: Private-Information Retrieval (PIR), PSI
Hiding Access Structure (ORAM, Garbled RAM)
Paper Reading and Presentations (Topics: secure ML, Proofs of Work, Recent advances in non-interactive zero knowledge, differential privacy and MPC)
Grading: Participation, discussion and scribe notes: 20%, In-Class Presentations: 40%, Research Investigation: Report: 40%
Resources: We won't follow any textbooks, but the following are good to look at:
Oded Goldreich: Foundations of Cryptography
https://www.wisdom.weizmann.ac.il/~oded/foc-book.html
A Pragmatic Introduction to Secure Multi-Party Computation. Not tediously formal but explains the basic MPC topics very well.
https://securecomputation.org/
Katz-Lindell: Introduction to Modern Cryptography http://www.cs.umd.edu/~jkatz/imc.html
Yehuda Lindell: How to simulate it https://eprint.iacr.org/2016/046
Mike Rosulek: The joy of cryptography https://joyofcryptography.com/