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:

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