Course description:

In the recent years, both academia and industry have seen much excitement around cryptosystems, systems that harness the power of advanced cryptography to provide strong security guarantees while enabling complex functionalities. With cryptosystems, hospitals can collaboratively train a machine learning model to predict outbreaks without sharing sensitive patient data in the clear; organizations can outsource and compute directly on encrypted data in the public cloud; and users can search a website without revealing their queries.

In this course, we will explore how to build such cryptosystems from two aspects: theoretic concepts and practical systems building. We will learn about beautiful cryptographic concepts (e.g., homomorphic encryption, secure multi-party computation, zero-knowledge proof, oblivious computation) and how systems make use of such techniques in practice (e.g., in encrypted databases, federated and collaborative machine learning learning, blockchains). Throughout the course, we will think about how cryptographic concepts can help protect existing applications and enable new applications, and how systems techniques can make advanced cryptography more efficient, scalable, and usable. We will also explore the technical and social challenges that people face today in building and deploying such systems.

Schedule: MW 10:10 - 11:30 am

Location: GHC 4102

Instructor: Wenting Zheng

Office hours: Mondays 2 - 3 pm in GHC 9015 or Zoom

Assignments: Since this is a graduate-level course, the main focus will be on reading papers, discussing these papers in a conference-style setting, and executing a final project.

Grading: 20% paper reviews, 30% class participation (paper presentation & discussion), 50% final project.