I have taught the following classes at Oregon State University: (OSU has a quarter system with three terms a year, each of which has 10 weeks + 1 finals week)
We (the students and I) wrote a short paper on the security properties of a verifiable random function called ECVRF: [ePrint]
(I am not sure why it was CS 529 in spring 2023 and CS 599 in winter 2025...)
We covered the area of Password-Authenticated Key Exchange (PAKE) in some depth. Slides are included below.
Lec 1: Review of Basic Cryptography [pptx]
Lec 2: PAKE Basics [pptx]
Lec 3: Game-Based Security Definition for PAKE [pptx]
Lec 4: Game-Based Security Definition for PAKE (cont'd) [pptx]
Lec 5: Ideal Functionality for PAKE [pptx]
Lec 6: Universal Composability [pptx]
Lec 7: UC-(In)Secure PAKE Protocols [pptx]
Lec 8-11: UC-Security of Encrypted Key Exchange [pdf] (I used a pdf handout for these four lectures because I had no idea how to show a UC proof on slides)
Lec 12: Variants of EKE [pptx]
Lec 13: Smooth Projective Hash Functions [pptx]
Lec 14: PAKE Based on SPHF [pptx]
Lec 15: PAKE Based on SPHF (cont'd) [pptx]
Lec 16: Asymmetric PAKE [pptx]
Lec 17: Asymmetric PAKE (cont'd) [pptx]
Lec 18: (s)aPAKE Protocols [pptx]
Lec 19: Review [pptx]
This combined undergraduate/graduate course covers the basics of modern cryptography/provable security from a theoretical computer science perspective. Topics include hash functions, message authentication codes, private-key encryption schemes, key exchange protocols, public-key encryption schemes, and digital signatures.
This course covers (part of) the Chomsky hierarchy, including finite state machines, regular expressions, context-free grammar, pushdown automata, and Turing machines.