(Winter 2023) CS 485/585 - Intro to Cryptography
Resources
Useful readings
- Advice on reading and writing mathematical proofs.
- Notes on discrete probability and on algebra by Luca Trevisan.
- MIT 6.042 Mathematics for computer science, and the excellent companion draft book.
- Basic number theory fact sheet [part I PDF, Part II PDF] by Dan Boneh.
Texts
- KL (required) Introduction to Modern Cryptography (3rd edition) by Jonathan Katz and Yehuda Lindell. Chapman and Hall/CRC Press, Dec. 2020. Jon Katz is maintaining a webpage with errata and other updates about the book.
- [BS] A Graduate Course on Applied Cryptography by Boneh and Shoup (Version 0.5 posted on Jan. 2020).
- [G] Foundations of Cryptography by Oded Goldreich. Two-volume bible for the advanced and theory-savy readers.
Books on applied crypto
These are excellent references for more examples of cryptosystems used in practice. Use the princples from this course to critically evaluate the merits or deficiencies of them (as well as 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.
Books on 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.
Crypto courses offered at other institutes
- Boaz Barak’s course (Fall 2021 at Harvard).
- Luca Trevisan’s course (Spring 2009 at Stanford)
- Dan Boneh’s online course on Coursera.
LaTex
- A Not so short intro to LaTex PDF, a thorough introduction to LaTeX, and guide on good style.
- Online TeX editors, such as Overleaf, are convinent to get you started. Overleaf also maintains a nice set of tutorials. It’s most effective just to open a template tex file and tweak it!