Lattigo
A lattice-based multiparty homomorphic encryption library in Go
Homomorphic encryption (HE) comprises a special class of cryptographic schemes that enable computing directly on encrypted data, without requiring the data to be decrypted first. It therefore enables a set of operations (polynomial evaluation and approximations of non-polynomial functions) to be "blindly" performed on encrypted sensitive data by an untrustworthy party, with a controlled computational overhead. Lattigo implements HE and its multiparty extension (MHE), that enables several entities to collaboratively compute a function on their confidential or sensitive data, without revealing to each other anything besides the result of this computation. Lattigo's multiparty homomorphic encryption technology is an enabler for secure data sharing in multiple scenarios.
Lattigo is a Go module for Multiparty Homomorphic Encryption, that implements Ring-Learning-With-Errors-based homomorphic encryption primitives. It comprises highly-efficient RNS versions of the BFV and CKKS schemes and their multiparty (N-out-of-N-threshold) counterparts. It also implements a dense-key and sparse-key Bootstrapping procedure for RNS-CKKS.
The Lattigo library was originally exclusively developed by the EPFL Laboratory for Data Security until its version 2.4.0. Starting with the release of version 3.0.0, Lattigo is maintained and supported by Tune Insight SA.
Lattigo 2.0.0 has been code-reviewed by ELCA in November 2020 and, within the allocated time for the code review, no critical or high-risk issues were found.
inactive
—
entered showcase: 2019-08-15
—
entry updated: 2023-03-21
2020/Q1 maturity evaluation
Mature
Library
GoLang
Apache-2.0