Lattigo: lattice-based multiparty homomorphic encryption library in Go

Lattigo is a Go module that implements full-RNS Ring-Learning-With-Errors-based homomorphic-encryption primitives and Multiparty-Homomorphic-Encryption-based secure protocols. The library features:

  • Optimized arithmetic for power-of-two cyclotomic rings
  • Advanced and scheme-agnostic implementation of RLWE-based primitives, key-generation, and their multiparty version.
  • Implementation of the BFV/BGV and CKKS schemes and their multiparty version
  • Support for RGSW, external product and LMKCDEY blind rotations
  • A pure Go implementation, enabling cross-platform builds, including WASM compilation for browser clients, with comparable performance to state-of-the-art C++ libraries

Lattigo is meant to support HE in distributed systems and microservices architectures, for which Go is a common choice thanks to its natural concurrency model and portability.

The library implementation started in 2019 at the EPFL Laboratory for Data Security by Jean-Philippe Bossuat and supervised by Christian Mouchet and Juan Troncoso. Since then and up to 2022, Lattigo has been actively developed within the LDS laboratory.

As of today, and thanks to its efficient implementations of state of the art schemes, Lattigo is acknowledged by the community as a state-of-the-art library for homomorphic encryption and described as “really convenient and research friendly” by developers and researchers, making it a widely used library in academic research all around the world.

Its performance and intuitive low level API also make it a prime choice for competitions where efficient implementations of case-specific applications involving homomorphic encryption are required. One example is the iDash Privacy and Security Workshop competition, in which Lattigo is featured every year among the libraries used by the winning teams.

Lattigo is also one of the libraries acknowledged by the HomomorphicEncryption.org standardization group. It is one of the upcoming reference backends for the HEBench organization, and part of the current draft Homomorphic Encryption Standard. Lattigo is also listed on the HAmazon AWS Cryptographic Computing site, with C++ bindings available on AWS Labs Github.

The code base of Lattigo was reviewed by ELCA Security in 2020 with no major security issues found.

Since 2022, the Lattigo ownership has been transferred to Tune Insight SA and the library is fully maintained in-house, with monthly development cycles focused on improving the maintainability of the code base, improving its usability, keeping up with the state of the art, and adding new functionalities.

Jean-Philippe Bossuat
Jean-Philippe Bossuat
Cryptography Research Scientist & Software Specialist

My research interests include applied lattice based cryptography, privacy preserving machine learning and secure analytics.