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

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.