Course Description
This course provides an in-depth exploration of privacy-enhancing technologies (PETs), from theoretical foundations to their practical deployment in real-world applications. Students will study advanced cryptographic protocols such as secure multi-party computation, oblivious transfer, ORAM, and zero-knowledge proofs and their implementations in frameworks like MP-SPDZ and ObliVM. The course emphasizes developing efficient, safe systems and using formal verification techniques to analyze their security and improve their scalability. Throughout the course, students will gain hands-on experience with tools and programming frameworks designed for PETs while exploring emerging research in private information retrieval, searchable encryption, and secure enclaves. By the end of the course, students will be equipped to design, analyze, and implement privacy-preserving solutions.
Learning Outcomes
- Understand the theoretical foundations of privacy-enhancing technologies (PETs).
- Understand secure development using formal methods and programming languages.
- Analyze and compare privacy-preserving cryptographic protocols.
- Implement and apply privacy-preserving frameworks.
Grading Policy
Class Participation: 10%: Students are required to attend all lectures, with no more than three unexcused absences permitted. Active engagement in paper discussions is mandatory. Each student is responsible for presenting and leading discussions on two research papers during the course.
Reading Assignment: 30%: Students are required to review 6 selected papers and provide critiques of their peers' reviews on one occasion.
Project: 60%:Students are expected to develop projects focused on privacy-preserving systems. Proposal 15% + Mid-term report and presentation 15% + Final presentation 15% + Final report 15%
Course Schedule (Tentative)
Week | Topic | Required Reading |
---|---|---|
1 | Secure Multiparty Computations, Oblivious Transfer, Garbled Circuits, GMW Protocol |
Yao, A.C.: Protocols for secure computations. Lindell, Y., Pinkas, B.: A Proof of Security of Yao’s Protocol for Two-Party Computation Goldreich, O., Micali, S., Wigderson, A.: How to play any mental game. Naor, M., & Pinkas, B. (2001). Efficient oblivious transfer protocol. Read More: David E., Vladimir K., Mike R.: A Pragmatic Introduction to Secure Multi-Party Computation, Chapter 3 Two Halves Make a Whole: Reducing Data Transfer in Garbled Circuits using Half Gates Recent progress: Garbled Circuits with 1 Bit per Gate Library: EMP-SH2PC |
2 | ORAM and Oblivious Data Structures |
Goldreich, O., & Ostrovsky, R. (1996). Software protection and simulation on oblivious RAMs. Stefanov, E., et al. (2018). Path ORAM: an extremely simple oblivious RAM protocol. Wang, X. S., et al. (2014). Oblivious data structures. |
3 | Multi-Party Computation (MPC) Implementation Frameworks |
Keller, M. (2020). MP-SPDZ: A versatile framework for multi-party computation. Songhori, E. M., et al. TinyGarble: Highly Compressed and Scalable Garbled Circuits. Liu, C., et al. ObliVM: A Programming Framework for Secure Computation. Radhika G., et al. (2024) Scalable Mixed-Mode MPC |
4 | Programming Languages for Obliviousness and MPC |
Rastogi, A., et al. Wysteria: A programming language for generic, mixed-mode multiparty computations. Darais, D., et al. A language for probabilistically oblivious computation. Liu, C., et al. Memory trace oblivious program execution. |
5 | Private Information Retrieval |
Chor, B., et al. Private information retrieval. Devet, C., Goldberg, I., & Heninger, N. (2012). Optimally robust private information retrieval. |
6 | Searchable Encryption |
Song, D. X., Wagner, D., & Perrig, A. (2000). Practical techniques for searches on encrypted data. Pappas, V., et al. Blind seer: A scalable private DBMS. Kamara, S., Papamanthou, C., & Roeder, T. (2012). Dynamic searchable symmetric encryption. |
7 | Private Set Intersection |
Pinkas, B., Schneider, T., & Zohner, M. (2018). Scalable private set intersection based on OT extension. De Cristofaro, E., & Tsudik, G. (2010). Practical private set intersection protocols. Huang, Y., Evans, D., & Katz, J. (2012). Private set intersection: Are garbled circuits better than custom protocols? |
8 | Mid-term project presentation | |
9 | Secure Enclaves |
Costan, V. (2016). Intel SGX explained. Sabt, M., Achemlal, M., & Bouabdallah, A. (2015). Trusted execution environment. |
10 | Zero Knowledge Proof and Verifiable Computation |
Parno, B., Howell, J., Gentry, C., & Raykova, M. (2016). Pinocchio: Nearly practical verifiable computation. Groth, J. (2016). On the size of pairing-based non-interactive arguments. Ben-Sasson, E., et al. SNARKs for C: Verify program executions succinctly and with zero knowledge. |
11 | ZKP Compiler and Acceleration |
Ozdemir, A., et al. (2022). CirC: Compiler infrastructure for proof systems. Wu, H., Zheng, W., Chiesa, A., Popa, R. A., & Stoica, I. (2018). DIZK: A distributed zero-knowledge proof system. |
12 | Formal Verification of ZKP |
Wen, H., et al. (2024). Practical Security Analysis of Zero-Knowledge Proof Circuits. Pailoor, S., et al. (2023). Automated detection of under-constrained circuits in ZK proofs. |
13-14 | Final project presentation |