CPSC 4440/5440: Real-World Cryptography (‘26 Spring)
Course information⬆️
Time and Location
- TBA
Staff
- Instructor: Fan Zhang
- OH: TBD
- Location: AKW 503
- TA: TBD
Course Description⬆️
Cryptography provides strong security and privacy guarantees in well-defined mathematical models, but applying it to real-world systems is an art—one that must account for performance, cost, evolving adversarial threats, and even user behavior. This course focuses on the practical art of designing and applying cryptography in real systems, examining how cryptographic tools underpin today’s digital infrastructure and protect users against powerful and evolving threats, including rogue governments, privacy-prying corporations, and malicious AI content. Topics include secure channels, authentication, anonymity, end-to-end encrypted messaging, and Trusted Execution Environments (TEEs).
Prerequisites⬆️
Students are expected to be familiar with concepts in computer security and cryptography (e.g., from CPSC 413, CPSC 467, or similar courses). To set the stage, we will go over the content of Katz and Lindell (https://www.cs.umd.edu/~jkatz/imc.html) in the first few lectures at a quick pace.
Grading⬆️
Coursework includes homework and written responses to reading assignments. Graduate students will present at the end of the semester.
- For undergraduate students: Participation (20%), Paper critiques (20%), Problem sets and labs (60%)
- For graduate students: Participation (20%), Paper critiques (20%), Problem sets and labs (40%), Presentation (20%)
Homeworks
We provide a LaTeX templates for homework submissions: template.
Late days
- Each student gets 1 free late days
- One late day equals a 24-hour extension.
- 10% grade reduction for each non-free late day
- We honor Dean’s extensions. No other late days will be granted.
📆 Schedule⬆️
Basic
- Course intro
- Crash course on useful cryptographic tools
- ⚙️ Lab1: Roll your own crypto
TLS, the most important Real-World Crypto
- Authenticated Key Exchange (AKE), TLS Handshake, and Real-world Attacks
- Encryption, TLS Record layer, and Real-world Attacks
- Watching the Gatekeepers: Certificate Transparency
- Provenance of TLS sessions (“zkTLS”)
- Presentations:
- One on Revocation: Clubcards for the WebPKI: smaller certificate revocation tests in theory and practice (IEEE S&P'25) or AccuRevoke: Enhancing Certificate Revocation with Distributed Cryptographic Accumulators (IEEE S&P'25)
- zkTLS: Proxying Is Enough: Security of Proxying in TLS Oracles and AEAD Context Unforgeability in AFT'25. https://eprint.iacr.org/2024/733.
- ⚙️ Lab 2: Decrypting TLS traffic
Messaging under Strong Adversary
- Mixnets, Onion routing, Tor
- DC nets, Dissent
- E2EE encrypted messaging
- Censorship
- Presentations:
- Attacking and Improving the Tor Directory Protocol (S&P'24, RWC'25)
- Censorship, GFW study
Identity and Credentials
- Passwords, Password Authenticated Key Exchange, OPAQUE
- Anonymous tokens
- OAuth & zkLogin
- Key transparency
- CONIKS, Parakeet, etc
- DID and Decentralized Social Network
- atproto
- Presentations:
- “Modern” Anonymous Credential (zk-cred)
- Protecting End-to-End Encryption from a Malicious Zoom Server
- ⚙️ Lab 3: zkLabeler
Securing data in use (Trustworthy Computing)
- Secure enclave
- SGX in-depth (Memory Isolation)
- SGX in-depth (Remote Attestation & Sealing)
- TEE side channel attacks
- TEE and everything we’ve learned so far
- ⚙️ Lab 4: Controlled Side Channel CTF
AI <> Cryptography
- What crypto can/cannot do for AI?
- How to curb the potential negative impacts of AI?
- Watermarking?