Point lattices are powerful mathematical objects that can be used to efficiently solve many important problems in computer science, most notably in the areas of cryptography and combinatorial optimization. This course gives a general introduction to the theory of point lattices, their algorithms, computational complexity, mathematical techniques, and applications to cryptography. Specific topics touched by the course include:
The main prerequisites for the course are general mathematical maturity, knowledge of basic mathematics (good linear algebra and probability theory, basic abstract algebra, and a little bit of calculus) and introductory level algorithms and complexity theory (mathematical models of computation, analysis of algorithms, polynomial time solvability, NP-hardness, etc.) Some prior knowledge of cryptography is useful, but not required. No prior knowledge of advanced complexity theory, Fourier analysis, or algebraic number theory is assumed, but you should be prepared to learn a bit about all this through the course.
Coursework for students enrolled in the course will include a substantial amount of reading, 4 individual homework assignments, and a team project to be executed in groups of 2 or 3 students. Projects should be discussed with the instructor by the end of the 5th week of classes, and will be due during the 10th week. Each group should submit a written report, and possibly deliver a short presentation.
Homework assignments will be posted here and submitted through gradescope
The course will be based on a combination of lecture notes, research papers and other online material as posted below. The following links are from the last offering of this course, and may be updated throughout the course.
Point Lattices: Lattices, Bases, Gram-Schmidt orthogonalization, and Lattice determinant. slides
Minkowski’s Theorem: The Shortest Vector Problem (SVP) and Minkowski’s Theorems. slides
PRG Cryptanalysis: Subsetsum and Linear Congruential Generators, and their cryptanalysis
The LLL Algorithm: The Basis Reduction algorithm of Lenstra, Lenstra and Lovasz. Approximating SVP and CVP with 2O(n) in polynomial time.
Duality: The dual lattice and the Closest Vector Problem (CVP)
Computational Complexity: reductions and NP-hardness
Reductions between lattice problems:
NP-hardness:
Block basis reduction: improving LLL approximation factor using low dimensional SVP solvers
CVP Algorithms for Special Lattices
Worst-case/Average-case connection:
Random Lattices and Lattice Cryptography: Random lattices, the SIS and LWE problems, and construction of basic cryptographic primitives, like one-way functions and collision resistant hashing.
Harmonic Analysis
lecture notes and slides
See also Improved Discrete
Gaussian and Subgaussian Analysis for Lattice Cryptography (PKC
2020)
Average-case Hardness of SIS Lecture notes. Relevant references:
For the LWE problem, see
Exact algorithms for SVP and CVP
Ring Lattices and the Number Theoretic Transform
A collection of Links to papers and other resources on lattice cryptography and algorithms (not very actively) maintained by Daniele Micciancio, mostly for his own personal use.
The two main libraries implementing the lattice reduction algorithms studied in this course are: