Deployable Cryptography for Privacy: From Theory to Implementation

Instructor: Ning Luo

Time: Tuesday-Thursday 9:00-10:20 AM | Location: ECEB 2013

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

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