Context
This page contains notes designed for a 5-lecture mini-course on applications of codes and lattices in cryptography aimed mostly at students and faculty of the Department of Mathematics of FCT - Universidade Nova de Lisboa in May-June 2023. This course covers the basics of provable security followed by applications of coding theory and lattices in cryptography. No prior background in cryptography is assumed.
These notes are optimized for breadth over depth, and they necessarily skim over some formal definitions and arguments. Nevertheless, efforts have been made to include in-depth discussions of some particularly nice technical nuggets.
The course structure and material was inspired by insightful discussions with Huck Bennett, Alex Davidson, Chen-Da Liu Zhang, Maciej Obremski, Guilherme Rito, Pratik Soni, Sri AravindaKrishnan Thyagarajan, and Daniele Venturi and by great (and more in-depth) grad-level courses on lattice-based and information-theoretic cryptography, which I strongly recommend:
Aayush Jain's course on lattice-based cryptography at CMU (link);
Vinod Vaikuntanathan's course on lattice-based cryptography at MIT (link);
Daniele Micciancio's course on lattice algorithms at UCSD (link);
Oded Regev's course on lattices at NYU (link);
Daniel Dadush's and Léo Ducas' course on lattice algorithms and cryptography for Mastermath (link);
The Simons Institute semester program on "Lattices: Algorithms, Complexity, and Cryptography" (link);
Tal Malkin's course on information-theoretic cryptography at Columbia (link);
The 10th Bar-Ilan Winter School on Cryptography (link).
The surveys of Peikert on lattice-based cryptography (link) and Regev on the Learning With Errors problem (link) are also excellent sources.
Notes for the "Codes and Lattices in Cryptography" mini-course:
Notes 0: Where to look for cryptography research
Notes 1: Basics of provable security
Notes 2: Cryptography from LWE and SIS
Notes 3+4: Hardness of SIS, LWE, and lattice problems
Notes 5: Information-theoretic cryptography