Crypto courses offered at other institutes
- Salil Vadhan’s course (Fall 2006 at Harvard).
- Luca Trevisan’s course (Spring 2009 at UC Berkeley)
- Theoretical foundations of Cryptography by Chris Peikert (Spring 2011 at Gorgia Tech).
- Yevgeniy Dodis’s course (Fall 2012 at NYU).
- Boaz Barak’s course (Spring 2016 at Harvard).
- Dan Boneh’s online course on Coursera.
- (Required) Introduction to Modern Cryptography (2nd edition) by Jonathan Katz and Yehuda Lindell. Chapman and Hall/CRC Press, Nov 2014. Katz is maintaining a webpage with errta and other updates about the book.
- We will refer to Boneh and Shoup’s onging book occasionally: A Graduate Course on Applied Cryptography.
- For thoery-oriented students, Goldreich’s two volume text on theory of cryptography is the place to go: Foundations of Cryptography.
These tend to be less careful and precise about definitions and proofs, but they are excellent references for more examples of concrete cryptosystems used in practice. After this course, you should understand how to critically evaluate the merits or deficiencies of the cryptosystems described below (and any new cryptographic constructions you encounter).
- Handbook of Applied Cryptography by Alfred J. Menezes, Paul C. van Oorschot, and Scott A. Vanstone.
- Cryptography: Theory and Practice by Douglas R. Stinson.
- Applied Cryptography by Bruce Schneier.
Math, algorithms, and complexity
- Introduction to Algorithms by Thomas Cormen, Charles Leiserson, Ron Rivest, and Cliff Stein.
- A Computational Introduction to Number Theory and Algebra by Victor Shoup.
- Introduction to the Theory of Computation by Michael Sipser.
- Probability and Computing: Randomized Algorithms and Probabilistic Analysis, by Michael Mitzenmacher & Eli Upfal.
- Basic number theory fact sheet [part I PDF, Part II PDF] by Dan Boneh.
- A Primer on Algebra and Number Theory for Computer Scientists by Victor Shoup.
- Notes on discrete probability and on algebra by Luca Trevisan.
- MIT 6.042 Mathematics for computer science and the draft book.
- Advice on reading and writing mathematical proofs.
- A thorough introduction to LaTeX, and guide on good style.