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 to use these cryptographic techniques 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, this course also provides hands-on experience implementing them using tools from the existing crypto libraries such as CryptoPP and Microsoft SEAL. All the projects are written in C++ as it is the most widely used language in crypto libraries.

Lectures take place every Monday and Wednesday from 3:00 - 4:20 PM, in Salomon 001 and on Zoom.

Resources

Quick Links

Textbooks

Guides

Contact

Assignments

Project Release Due
Project 0: Cipher Jan 27 Feb 5
Project 1: Signal Feb 5 Feb 14
Project 2: Auth Feb 17 Feb 28
Project 3: Vote Mar 3 Mar 21
Project 4: PIR Mar 31 Apr 11
Project 5: Yaos Apr 14 Apr 28
Final Project Mar 31 May 9
Homework Release Due
HW1 (template) Feb 5 Feb 12
HW2 (template) Feb 17 Feb 24
HW3 (template) Mar 3 Mar 10
HW4 (template) Mar 31 Apr 7
HW5 (template) Apr 14 Apr 21

Gearups will be held on Zoom; please see the course calendar for links.

Gearup Date Recording Slides
Cipher/Setup Gearup Jan 27 Recording Slides
Signal Gearup Feb 5 Recording Slides
Auth Gearup Feb 19 Recording Slides
Vote Gearup Mar 7 Recording Slides
PIR Gearup April 3 Recording Slides
Yao's Gearup April 15 Recording Slides

Lectures

* indicates optional reading material.

Date Topics and Readings Pre-Lec
Notes
Post-Lec
Notes
Scribe
Notes
Rec
Jan 22 Topics:
Introduction and overview.

Readings:
[MOV 1.1-1.2] Cryptography goals and primitives.
Course Syllabus
Pre01.pdf Post01.pdf Notes Panopto01

Zoom01
Jan 27 Topics:
Encryption scheme basics.
One-time pad (OTP).
Computational assumptions.
Basic number theory.
RSA assumption and RSA encryption.

Readings:
*[KL 1.2] Kerckhoffs' Principle.
[R 1.2] One-time pad.
*[KL 2.4] Shannon's Theorem.
*[KL 3.1] Computational security.
[MOV 3.3] RSA problem.
*[KL 9.2] Factoring and RSA assumptions.
[KL 12.5.1] Plain RSA encryption.
Pre02.pdf Post02.pdf Notes Panopto02

Zoom02
Jan 29 Topics:
RSA assumption and RSA encryption (continued).
Diffie-Hellman assumptions.
ElGamal encryption.
Diffie-Hellman key exchange.
Message integrity.
RSA signature scheme.

Readings:
*[KL 12.5.2] Padded RSA encryption.
[MOV 3.7, KL 9.3.1-9.3.2] Diffie-Hellman assumptions.
*[BS 15.1-15.3] Elliptic curve groups.
[MOV 8.4] ElGamal encryption.
[MOV 12.6.1] Diffie-Hellman key exchange.
*[KL 9.3.3] Prime-order subgroups of Z_p^*.
*[BS 16.5] Quantum attacks on factoring and discrete log.
Pre03.pdf Post03.pdf Notes Panopto03

Zoom03
Feb 3 Topics:
Chosen-message attack (CMA) security.
RSA signature scheme (continued).
Authenticated encryption.
Cryptographic hash functions.

Readings:
[KL 4.1-4.2] Definition of message authentication codes (MACs).
[KL 13.1-13.2] Definition of digital signatures.
[KL 13.4] RSA signature.
[KL 5.1-5.3] Authenticated encryption.
[R 11.1] Collision-resistant hash functions.
Pre04.pdf Post04.pdf Notes Panopto04

Zoom04
Feb 5 Topics:
Cryptographic hash functions (continued).
Birthday attacks.
Random oracle model.
Applications of hash functions.
Putting it all together: secure messaging.
Signal Diffie-Hellman ratchet.
Pseudorandom generator (PRG).
Pseudorandom function (PRF).
Pseudorandom permutation (PRP).

Readings:
*[KL 6.5] Random oracle model.
*[BS 8.6] SHA256.
[BS 8.7.2, 8.10.5] HMAC and HKDF.
[KL 13.3] Hash-and-Sign paradigm.
Signal double ratchet algorithm.
[R 6.1] Definition of PRF.
Pre05.pdf Post05.pdf Notes Panopto05

Zoom05
Feb 10 Topics:
Pseudorandom function/permutation (PRF/PRP, continued).
Block cipher and modes of operation.

Readings:
[R 6.1, 6.3, 6.5] PRF/PRP and block cipher.
[R 8.1] Block cipher modes of operation.
[R 5.1, 6.2] PRG from block cipher.
Pre06.pdf Post06.pdf Notes Panopto06

Zoom06
Feb 12 Topics:
CBC-MAC.
Password-based authentication.
Two-factor authentication.

Readings:
[R 10.3] CBC-MAC.
[BS 18.3-18.4] Password-based authentication.
Pre07.pdf Post07.pdf Notes Panopto07

Zoom07
Feb 17 NO LECTURE (Long Weekend)
Feb 19 Topics:
Two-factor authentication (continued).
Putting it all together: secure authentication.
Certificates and public key infrastructure (PKI).
Case study: secure shell protocol (SSH).
Case study: secure messaging and group chats.

Readings:
[BS 13.8] Certificates and PKI.
*[Paper] Security of group chats in Signal, Whatsapp, and Threema.
Pre08.pdf Post08.pdf Notes Panopto08

Zoom08
Feb 24 Topics:
Case study: Single Sign-On (SSO) authentication.
Definition of zero-knowledge proofs.
Example: Schnorr's identification protocol.
Example: Diffie-Hellman tuple.

Readings:
*[Paper Sec. 2] Kerberos overview.
[Lindell's notes Sec. 6] Definition of zero-knowledge proof.
[BS 19.1.1] Honest verifier zero knowledge (HVZK).
[BS 19.1] Schnorr's identification protocol.
[BS 19.4] Sigma protocols.
[BS 19.5.2] Chaum-Pedersen protocol for Diffie-Hellman tuples.
Pre09.pdf Post09.pdf Notes Panopto09

Zoom09
Feb 26 Topics:
Anonymous online voting: an overview.
Example: Diffie-Hellman tuple (continued).
Non-interactive zero-knowledge (NIZK) proofs.
Fiat-Shamir heuristic.
Homomorphism of ElGamal encryption.

Readings:
[BS 19.5.2] Chaum-Pedersen protocol for Diffie-Hellman tuples.
[BS 20.3] Fiat-Shamir heuristic.
[BS 19.2] Schnorr signature.
*[BS 19.3] ECDSA signature.
Pre10.pdf Post10.pdf Notes Panopto10

Zoom10
Mar 3 Topics:
ZKP for OR statements (continued).
Anonymous online voting (continued).
ElGamal threshold encryption.
RSA blind signature scheme.

Readings:
[BS 19.7] ZKP for OR statements.
[KL 15.3.3] ElGamal threshold encryption.
[BS Exercise 13.15] Blind signatures.
Pre11.pdf Post11.pdf Notes Panopto11

Zoom11
Mar 5 Topics:
RSA blind signature (continued).
Putting it all together: anonymous online voting.
More examples of sigma protocols.
Zero-knowledge proofs for all NP.

Readings:
[BS 19.5.1, 19.5.3] More examples of sigma protocols.
[Lindell's notes Sec. 7] Zero-knowledge proofs for all NP.
Pre12.pdf Post12.pdf Notes Panopto12

Zoom12
Mar 10 Topics:
Zero-knowledge proofs for all NP (continued).
Succinct Non-Interactive Arguments (SNARGs).
SNARGs from PCP.

Readings:
[Thaler's book Sec. 7] Compiling a PCP into a succinct argument.
Pre13.pdf Post13.pdf Notes Panopto13

Zoom13
Mar 12 Topics:
SNARGs from PCP (continued).
Cryptography in blockchain.

Readings:
*[Paper] Bitcoin.
Pre14.pdf Post14.pdf Notes Panopto14

Zoom14
Mar 17 Topics:
Introduction to fully homomorphic encryption.
Somewhat homomorphic encryption over integers.
Learning with errors (LWE) assumption.

Readings:
[Halevi's tutorial Sec. 1] Introduction to FHE.
*[Paper] A conceptually simple construction of FHE over integers.
*[Paper] Security of lattice-based cryptosystems.
Pre15.pdf Post15.pdf Notes Panopto15

Zoom15
Mar 19 Topics:
LWE assumption (continued).
Regev encryption.
BFV: SWHE from RLWE.

Readings:
[KL 14.3] Regev encryption.
*[Paper Sec. 3-4] BFV protocol for SWHE.
Pre16.pdf Post16.pdf Notes Panopto16

Zoom16
Mar 24 NO LECTURE (Spring Break)
Mar 26 NO LECTURE (Spring Break)
Mar 31 Topics:
Putting it all together: private information retrieval.
Bootstrapping SWHE to FHE.
Secure hardware: secure enclaves (Intel SGX).

Readings:
*[Paper] PIR from SWHE (BFV).
*[Paper] Intel SGX explained.
Pre17.pdf Post17.pdf Notes Panopto17

Zoom17
Apr 2 Topics:
Secure hardware: hardware security module (HSM).
Introduction to secure multi-party computation (MPC).
Feasibility results of MPC.
Oblivious transfer (OT).

Readings:
[Lindell's note Sec. 1-2, 5] Motivation, definition, and practical use cases of MPC.
[Lindell's note Sec. 3] Feasibility results of MPC.
Pre18.pdf Post18.pdf Notes Panopto18

Zoom18
Apr 7 Topics:
GMW: MPC for any function.
GMW compiler: malicious MPC for any function.

Readings:
[EKR 3.2] GMW protocol.
[EKR 6.5.1] GMW compiler.
Pre19.pdf Post19.pdf Notes Panopto19

Zoom19
Apr 9 Topics:
Yao's garbled circuits.
Construction of oblivious transfer.

Readings:
[Yakoubov's note Sec. 1.1] Yao's garbled circuits.
[Paper Sec. 1] A simple OT protocol.
Pre20.pdf Post20.pdf Notes Panopto20

Zoom20
Apr 14 Topics:
Putting it all together: semi-honest 2PC for any function.
Optimizations of garbled circuits.
Cut-and-choose for garbled circuits.

Readings:
[Yakoubov's note Sec. 1.2] Optimizations for garbled circuits.
*[Paper] Three halves optimization for garbled circuits.
*[Paper] Malicious 2PC via cut-and-choose for garbled circuits.
Pre21.pdf Post21.pdf Notes Panopto21

Zoom21
Apr 16 Topics:
Private set intersection.
Privacy-preserving machine learning.

Readings:
[Paper Sec. 3.1] DDH-based PSI-Cardinality.
*[Paper] Privacy-preserving machine learning.
Pre22.pdf Post22.pdf Notes Panopto22
Apr 21 Topics:
Federated learning.
Differential privacy.
Elliptic curve cryptography.

Readings:
*[Paper] Secure aggregation for federated learning.
*[Paper] Vadhan's tutorial on differential privacy.
*[Paper] Deep learning with differential privacy.
Pre23.pdf Post23.pdf Notes Panopto23

Zoom23
Apr 23 Topics:
Elliptic curve cryptography (continued).
Practical constructions of block cipher.

Readings:
*[BS 15.1-15.3] Elliptic curve cryptography.
[KL 7.2] Practical constructions of block cipher.
Pre24.pdf Post24.pdf Notes Panopto24

Zoom24

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, both theoretical and applied.
How to pronounce my name.
Pronouns: she/her/hers

John Wilkinson

HTA | jwilkin7

I'm a senior from Dedham, MA studying CS and Archaeology. In the summers I'm a sailing instructor, and in my free time I love windsurfing!

Robert Daly

UTA | rdaly5

Hi! I'm Robert. I like to study pure math, compete in CTFs, and chase rabbits on the main green.

Ian Hajra

UTA | ihajra

Hi there! I'm a junior from Michigan studying APMA/CS. I love to play jazz piano, go hiking, climb, and spend time with friends!

Nya Haseley-Ayende

UTA | nhaseley

Hi everyone! I’m a senior from Pelham, NY studying APMA/CS! You can also find me working at the IT Center at acapella performances for The Ursa Minors. I’m excited to meet you all!

Chris Jeong

UTA | cjeong6

Hey! I'm Chris, a junior concentrating in CS and Math from Oregon. In my free time I like to lift, review movies, and play clash of clans.

Karan Kashyap

UTA | kkashyap

Hi! I'm a senior studying CS. I enjoy playing tennis, swimming in the ocean, and listening to music. I'm also a big fan of formal methods, optimization, deep learning, and cryptography.

Dagar Rehan

UTA | drehan

I'm currently a Master's student in Computer Science. I love cryptography and novels (especially horror genre)! Pronouns: he/him/his