These are my notes for an undergraduate cryptography class (CS4830 at Cornell), with an emphasis on mathematical formality---definitions, theorems, and proofs---and perhaps on mathematical beauty as well, rather than on practical applications. They are largely inspired by a similar course taught by Shafi Goldwasser and Vinod Vaikuntanathan (6.875 at MIT), and the version of this class that I co-taught with Yael Kalai in 2019.

The notes are organized (roughly!) into chunks that can be covered in 75-minute lectures, though the notes often go into far more detail than I do in lectures.

Note that I'm not quite a cryptographer, but rather a theoretical computer scientist with an interest in cryptography. So, perhaps my writings on cryptography should be taken with a grain of salt---perhaps particularly when it comes to multiparty computation. With that said, I hope people find these to be useful. You might also consider looking at, e.g., Pass and shelat's course in cryptography, or simply Googling whatever cryptographic topic you're interested in.

Please let me know if you find any typos or mistakes, by e-mailing me. Thanks to the Spring 2023 CS4830 students for finding many typos in earlier versions of these notes.