Instructor: Kartik Nayak (kartik@cs.duke.edu)
When: Mondays and Wednesdays – 05:15PM to 06:30PM
Where: Zoom
Office hours: Mondays 4.15-5.15 pm, or by appointment
Office hour location: https://duke.zoom.us/j/99032885486

Teaching assistant: Sravya Yandamuri (sravya.yandamuri@duke.edu)
TA office hours: Tuesdays 2-3 pm, or by appointment
TA office hour location: https://duke.zoom.us/j/99032885486

Piazza: We will be using Piazza for discussions.
Lecture videos will be uploaded on Warpwire
Gradescope: Assignments will be shared through Gradescope


Modern cryptography is an integral part of any computer system today. In the past decade, as we have moved to use the cloud for outsourcing our data, cryptography plays a vital role in keeping our data private and securing its integrity. Similarly, while we see a push in the industry to use blockchains, cryptography underpins the security and efficiency of blockchain designs. This course focuses on applied cryptography, emphasizing recent developments in privacy-preserving computation, and blockchains. This course will contain three modules:

Module 1: Basics of cryptography
Private key encryption, message authentication codes, hash functions, public-key encryption, and digital signature schemes.

Module 2: Applications of cryptography in privacy-preserving computation
We will address the following questions (not exhaustive):

– How can we contact trace entities who are exposed to COVID-19 while providing privacy to all parties involved?
– How do we privately access outsourced private data?
– How do we privately access public data?
– How to enable a search on your encrypted data?
– How can a group of parties compute a function of their private inputs?

Module 3: Applications of cryptography in consensus and Blockchains
We will address the following topics (not exhaustive):
– Bitcoin and Nakamoto consensus
– Consensus and digital signatures
– Secret sharing and verifiable secret sharing

Textbooks and resources:

The following textbooks/resources are highly recommended:
Introduction to Modern Cryptography by Jonathan Katz and Yehuda Lindell
A Pragmatic Introduction to Secure Multi-Party Computation by David Evans, Vladimir Kolesnikov, and Mike Rosulek
Decentralized thoughts
Foundations of Blockchains by Elaine Shi