Teaching

University of Texas at Austin

CS 388H: Cryptography (Graduate)

This course surveys the foundations of cryptography from formal notions of security to fundamental protocols, including one-way functions, encryption, pseudorandom generators, signature schemes, and zero-knowledge proofs.

Course Websites: Fall 2022, Fall 2021

CS 346: Cryptography (Undergraduate)

This course provides an introduction to modern cryptography. Topics include symmetric cryptography, public-key cryptography, digital signatures, key agreement, and zero-knowledge proofs. We will also cover proper usage of cryptographic primitives.

Course Websites: Fall 2023, Spring 2023

CS 395T: Topics in Cryptography

This course covers recent developments in cryptography, including concepts like cryptographic proof systems, homomorphic encryption, functional encryption, and more. Topics will vary each year.

Course Websites: Spring 2024, Spring 2022

University of Virginia

CS 6222: Introduction to Cryptography

This course will provide an introduction to modern cryptography and its applications to computer security. This course will cover the fundamentals of symmetric cryptography (i.e., encryption and message authentication) and public-key cryptography (i.e., key-exchange and signatures) as well as cryptographic protocols like zero-knowledge proof systems.

Course Websites: Spring 2021, Spring 2020

CS 4102: Algorithms

This course introduces the analysis of algorithms and the effects of data structures on them. Algorithms selected from areas such as sorting, searching, shortest paths, greedy algorithms, backtracking, divide-and-conquer, and dynamic programming. Data structures include heaps and search, splay, and spanning trees. Analysis techniques include asymtotic worst case, expected time, amortized analysis, and reductions between problems.

Course Websites: Fall 2020, Fall 2019

CS 6501: Advanced Topics in Cryptography

This course will cover a collection of advanced topics in modern cryptography. We will begin with the theoretical foundations of cryptography, and then move on to discuss zero-knowledge proof systems, multiparty computation, elliptic-curve cryptography, post-quantum cryptography, and more.

Course Website: Spring 2019

Stanford University

CS 355: Advanced Topics in Cryptography

An advanced course in cryptography. Topics include foundations of cryptography, cryptographic protocols, elliptic-curve cryptography, post-quantum cryptography, and recent real-world applications of cryptography.

Course Website: Spring 2018

CS 359C: Classics of Cryptography

This seminar course revisits some of the greatest discoveries in modern cryptography: zero-knowledge proofs, factoring algorithms, elliptic-curve cryptography, post-quantum cryptography, and more. The course readings will be a combination of the original “classic” papers as well as more modern treatments of the same topics.

Course Website: Spring 2017