CSE206A: Lattices Algorithms and Applications (Winter 2016)

Schedule: Tue,Thu 12:30pm-1:50pm in WLH 2112
Section ID: 861032
Instructor: Daniele Micciancio
Office hour: Tuesday 2-3pm

Course description

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:

Prerequisites and Coursework

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 strictly 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, a number of individual homework assignments (say 4), a team project to be executed in groups of 2 or 3 students, and perhaps scribing some lecture notes. Projects should be discussed with the instructor during the 6th week of classes, and each group should submit a written report and deliver a short presentation.

Homework Assignments

Reading Assignments

The course will be based on a combination of lecture notes, research papers and other online material as posted below. Links will be added to the following list as the course moves forward.

Introductory chapters and surveys on lattice cryptography:

Other courses' webpages:

Implementations: