Skip to the content.

What is Lattice-based Cryptography?

Courses and online lectures

Surveys

PhD theses

Other resources

Reading groups and seminars open to the public

Lattice-based primitives selected by NIST for standardization

Name Primitive Description
CRYSTALS-KYBER PKE & KEM Official site
CRYSTALS-DILITHIUM Digital signature Official site
FALCON Digital signature Official site

Implementations of cryptographic primitives

Name Language Author
CRYSTALS-KYBER C Official
CRYSTALS-KYBER Go Symbolic Software
CRYSTALS-KYBER JavaScript Anton Tutoveanu
CRYSTALS-KYBER Java Legion of the Bouncy Castle Inc.
CRYSTALS-KYBER C# Legion of the Bouncy Castle Inc.
CRYSTALS-KYBER Python Giacomo Pope
CRYSTALS-DILITHIUM C Official
CRYSTALS-DILITHIUM Java Legion of the Bouncy Castle Inc.
CRYSTALS-DILITHIUM C# Legion of the Bouncy Castle Inc.
CRYSTALS-DILITHIUM Python Giacomo Pope
FALCON C Official
FALCON Python Thomas Prest
FALCON Java Legion of the Bouncy Castle Inc.
FALCON C# Legion of the Bouncy Castle Inc.
FRODO C Official
FRODO Go Mariia Tuzovska
FRODO Java Legion of the Bouncy Castle Inc.
FRODO C# Legion of the Bouncy Castle Inc.
NTRU Rust Lukas Prokop
NTRU Java Legion of the Bouncy Castle Inc.
NTRU C# Legion of the Bouncy Castle Inc.
NTRU Prime Java Legion of the Bouncy Castle Inc.
NTRU Prime C# Legion of the Bouncy Castle Inc.
SABER Rust Lukas Prokop & Lukas Kiem
SABER Java Legion of the Bouncy Castle Inc.
SABER C# Legion of the Bouncy Castle Inc.

Security estimation tools

Lattice.bib

We provide a .bib file with references to lattice-based cryptography papers. Find it here.

About this page

This page is based on zkp.science’s page, which hosts a number of resources and references on Zero-Knowledge Proofs. Everyone is welcome to contribute to this effort. Additions, corrections and other suggestions are very much welcome!

For more information about the contents and policies we follow, please see here.

For more information about the club meetings and events, please see here.

How to improve this page

You can propose an edit to this page here. (Note that after making your edits, there are 3 confirmations to click through in order to create the “pull request” in the Git repository underlying this page.)

For more broad changes, you can make a pull request here!

If you don’t feel confident or skilled to directly contribute through github, please feel free to reach out any of the existing contributors with your ideas and comments on how to improve this page.