Overview of the course:

Over the last couple of years, advanced cryptographic solutions have been proposed by the community in order to guarantee both privacy and functionality in cloud-based services by offering fine-grained access control policies over encrypted data. The purpose of this class is to introduce these advanced primitives and the current challenges in research.

We will cover several recent advances in cryptographic protocols, such as:

  • Identity-based encryption
  • Fully-homomorphic encryption
  • Attribute-based encryption
  • Functional encryption
  • Indistinguishability obfuscation
We will cover definitions and security models for each notion, and detail constructions and security reductions to the hardness of algorithmic problems that are conjectured hard, especially lattice-based problems such as the learning with errors problem.

Course objectives:

  • Understand advanced notions of cryptography: Definitions, security requirements, and their limitations.
  • Acquire a toolkit for modern research in cryptography.
  • Be able to read state-of-the art articles in cryptography.


There is no requirement for attending this class but it is highly recommended to have taken an introductory class on cryptography before. Students should also know basics in complexity theory, algorithms, probabilities, and algebra.


Homework and class participation (50%) and article presentation (50%). Presentations will be 20-minute talks followed by 10 minutes of questions.

Lecture notes:

Zip folder of all the lecture notes.

  • Class 1 and 2: The mathematics of lattices
  • Class 3 and 4: LLL, enumeration, BKZ, SIS
  • Class 5: SIS-based cryptography (hash functions, signatures)
  • Class 6 and 7: LWE, encrypting with LWE
  • Class 8 and 9: Lattice trapdoors, GPV signatures and IBE
  • Class 10: Fully homomorphic encryption (GSW)
  • Class 11 and 12: ABB IBE and Boneh et al. ABE
  • Class 13: Yao's garbled circuits, GPKVZ FE
  • Class 14: IO and IO from FE
  • Class 15 and 16: XiO, IO from XiO, heuristic construction of IO from FHE