CSCI 1515
Applied Cryptography
Introduction
Welcome to Applied Cryptography (CSCI 1515) at Brown!
This course teaches cryptography from a practical perspective and provides hands-on experience in building secure systems.
We first introduce foundational cryptographic algorithms including secret-key and public-key encryption schemes, message authentication codes, digital signatures, and hash functions, from which you will build secure communication and authentication systems.
More advanced topics that are covered include zero-knowledge proofs, secure multi-party computation, fully homomorphic encryption, post-quantum cryptography, and differential privacy. You will learn how these cryptographic techniques can be used to develop more advanced applications such as secure online anonymous voting, secure computation, and private information retrieval.
Besides the high-level design of these cryptosystems, you will also get hands-on experience implementing them using tools from the existing crypto libraries written in C++.
Lectures take place every Tuesday and Thursday from 9:00 - 10:20 AM, in CIT 368 and on Zoom.
Resources
Quick Links
Textbooks
- [MOV] Handbook of Applied Cryptography by Alfred J. Menezes, Paul C. van Oorschot, and Scott A. Vanstone
- [BS] A Graduate Course in Applied Cryptography by Dan Boneh and Victor Shoup
- [KL] Introduction to Cryptography by Jonathan Katz and Yehuda Lindell
- [R] The Joy of Cryptography by Mike Rosulek
Guides
Contact
Assignments
Project | Release | Due |
---|---|---|
Project 0: Cipher | Jan 27 | Feb 7 |
Project 1: Signal | Feb 8 | Feb 17 |
Project 2: Auth | Feb 18 | Mar 7 |
Project 3: Vote | Mar 8 | Mar 24 |
Project 4: Yaos | Mar 25 | Apr 14 |
Project 5: PIR | Apr 15 | Apr 28 |
Final Project | Apr 15 | May 19 |
Homework | Release | Due |
---|---|---|
HW1 | Feb 8 | Feb 14 |
HW2 | Feb 18 | Feb 24 |
HW3 | Mar 8 | Mar 17 |
HW4 | Mar 25 | Apr 7 |
HW5 | Apr 15 | Apr 21 |
Gearups will be held on Zoom; please see the course calendar for links.
Gearup | Date | Recording |
---|---|---|
Cipher/Setup Gearup | Jan 30 | - |
Signal Gearup | Feb 10 | - |
Auth Gearup | Feb 24 | - |
Vote Gearup | Mar 10 | - |
Yaos Gearup | Apr 3 | - |
PIR Gearup | Apr 17 | - |
Lectures
* indicates optional reading material.
Date | Topic and Readings | Pre-Lec Notes |
Post-Lec Notes |
Scribe Notes |
Zoom Rec |
---|---|---|---|---|---|
Jan 26 | Topics: Introduction and overview. Readings: [MOV 1.1-1.2] Cryptography goals and primitives. |
Pre01.pdf | Post01.pdf | Link | Rec01 |
Jan 31 | Topics: One-time pad. Secret-key/public-key encryption. ElGamal and RSA encryption schemes. Diffie-Hellman key exchange. Readings: [R 1.2] One-time pad. *[KL 2.4] Shannon's Theorem. *[MOV 3.3] RSA problem. [MOV 8.2.1] RSA encryption. [MOV 3.7] [BS 10.5] DDH assumption. [MOV 8.4] ElGamal encryption. [MOV 12.6.1] Diffie-Hellman key exchange. |
||||
Feb 2 | Topics: Secure authentication schemes. Message authentication codes and digital signatures. RSA and DSA signature schemes. Readings: [MOV 11.3.1] RSA signature. [MOV 11.5.1] DSA signature. |
||||
Feb 7 | Putting it together: secure messaging. | ||||
Feb 9 | Topics: Hash functions and applications. Block cipher. Readings: [MOV 7.2.1-7.2.2] Block cipher and modes of operation. [MOV 7.4] DES. |
||||
Feb 14 | Public key infrastructure (PKI). | ||||
Feb 16 | Putting it together: secure authentication. | ||||
Feb 21 | NO LECTURE (Long Weekend) | ||||
Feb 23 | Password leakage. Two-factor authentication. | ||||
Feb 28 | Introduction to zero-knowledge proofs. | ||||
Mar 2 | Sigma protocols. | ||||
Mar 7 | Putting it together: anonymous online voting. | ||||
Mar 9 | 3COL: Zero-knowledge proofs for all NP. | ||||
Mar 14 | Non-interactive zero-knowledge proofs. | ||||
Mar 16 | Introduction to secure multi-party computation. | ||||
Mar 21 | Yao's garbled circuit, oblivious transfer. | ||||
Mar 23 | Putting it together: 2PC for any function. | ||||
Mar 28 | NO LECTURE (Spring Break) | ||||
Mar 30 | NO LECTURE (Spring Break) | ||||
Apr 4 | GMW: MPC for any function. | ||||
Apr 6 | Introduction to fully homomorphic encryption. | ||||
Apr 11 | Somewhat homomorphic encryption. | ||||
Apr 13 | Putting it together: private information retrieval. | ||||
Apr 18 | Bootstrapping and fully homomorphic encryption. | ||||
Apr 20 | Differential privacy and practical applications. | ||||
Apr 25 | Privacy concerns in machine learning. | ||||
Apr 27 | Cryptography in blockchain. |
Calendar
Zoom links are included in the Google Calendar event, as well as in the Hours queue.
Staff

Peihan Miao
Professor | pmiao
Hello! I work on cryptography, theory, and security. I'm excited about bridging the gap between theory and practice in cryptography. Pronouns: she/her/hers

Jack Cheng 🐣
HTA | jcheng46
hi! I'm a junior and I enjoy exploring. Pronouns: he/him/his

Nick Young 🐝
HTA | nyoung10
Hi! I'm from Vancouver and I enjoy climbing, mixology, and keyboards! Pronouns: he/him/his

Anna Wei 🍃
UTA | qwei3
CS, math, dance, creative writing, nature, poetry, music, photography!

Jiahua Chen 🐫
UTA | jchen345
heya! I'm a junior studying math+computer science.

Ocean Pak 🌊
UTA | cpak4
halo! I'm Ocean, a senior from Hong Kong studying comp sci. You'll probably find me snacking, sleeping, climbing, listening to cantopop and playing board and card games.

Sudatta Hor 😈
UTA | shor1
Hi! I'm Sudatta, a third-year concentrating in Mathematics-Computer Science and Physics. I'm interested in ML, cryptography, and quantum computing research. Outside of class, I enjoy boxing and eating ramen.