Documentation
¶
Overview ¶
Package lattigo is the open-source community-version of Tune Insight's Homomorphic Encryption library. It provides a pure Go implementation of state-of-the-art Homomorphic Encryption (HE) and Multiparty Homomorphic Encryption (MHE) schemes, enabling code-simplicity, cross-platform compatibility and easy builds, while retaining the same performance as C++ libraries.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package examples contains several example Go applications that use lattigo in both the single- and multiparty settings, as well as several example parameter sets.
|
Package examples contains several example Go applications that use lattigo in both the single- and multiparty settings, as well as several example parameter sets. |
|
multi_party/int/pir
command
|
|
|
multi_party/int/psi
command
|
|
|
multi_party/setup/one_round
command
|
|
|
multi_party/setup/threshold
command
|
|
|
single_party/hebin/blind_rotations
command
Package main implements an example of Blind Rotation (a.k.a.
|
Package main implements an example of Blind Rotation (a.k.a. |
|
single_party/hefloat/advanced/bootstrapping/basics
command
Package main implements an example showcasing the basics of the bootstrapping for fixed-point approximate arithmetic over the reals/complexes.
|
Package main implements an example showcasing the basics of the bootstrapping for fixed-point approximate arithmetic over the reals/complexes. |
|
single_party/hefloat/advanced/bootstrapping/high_precision
command
Package main implements an example showcasing high-precision bootstrapping for high-precision fixed- point approximate arithmetic over the reals/complexes.
|
Package main implements an example showcasing high-precision bootstrapping for high-precision fixed- point approximate arithmetic over the reals/complexes. |
|
single_party/hefloat/advanced/bootstrapping/slim
command
Package main implements an example showcasing slim for bootstrapping for fixed-point approximate arithmetic over the reals/complexes numbers.
|
Package main implements an example showcasing slim for bootstrapping for fixed-point approximate arithmetic over the reals/complexes numbers. |
|
single_party/hefloat/advanced/polynomial_evaluation
command
Package main implements an example of smooth function approximation using Chebyshev polynomial interpolation.
|
Package main implements an example of smooth function approximation using Chebyshev polynomial interpolation. |
|
single_party/hefloat/advanced/scheme_switching
command
Package main showcases how lookup tables can complement fixed-point approximate homomorphic encryption to compute non-linear functions such as sign.
|
Package main showcases how lookup tables can complement fixed-point approximate homomorphic encryption to compute non-linear functions such as sign. |
|
single_party/hefloat/basics
command
Package main provides an example showcasing the basics of encrypted fixed-point approximate arithmetic over the reals/complexes using the package `hefloat`.
|
Package main provides an example showcasing the basics of encrypted fixed-point approximate arithmetic over the reals/complexes using the package `hefloat`. |
|
single_party/hefloat/template
command
Package main is a template encrypted arithmetic with floating point values, with a set of example parameters, key generation, encoding, encryption, decryption and decoding.
|
Package main is a template encrypted arithmetic with floating point values, with a set of example parameters, key generation, encoding, encryption, decryption and decoding. |
|
single_party/heint/template
command
Package main is a template encrypted modular arithmetic integers, with a set of example parameters, key generation, encoding, encryption, decryption and decoding.
|
Package main is a template encrypted modular arithmetic integers, with a set of example parameters, key generation, encoding, encryption, decryption and decoding. |
|
Package he implements scheme agnostic functionalities for RLWE-based Homomorphic Encryption schemes implemented in lattigo.
|
Package he implements scheme agnostic functionalities for RLWE-based Homomorphic Encryption schemes implemented in lattigo. |
|
hebin
Package hebin implements blind rotations evaluation for RLWE schemes.
|
Package hebin implements blind rotations evaluation for RLWE schemes. |
|
hefloat
Package hefloat implements Homomorphic Encryption with fixed-point approximate arithmetic over the complex or real numbers.
|
Package hefloat implements Homomorphic Encryption with fixed-point approximate arithmetic over the complex or real numbers. |
|
hefloat/bootstrapping
Package bootstrapping implements bootstrapping for fixed-point encrypted approximate homomorphic encryption over the complex/real numbers.
|
Package bootstrapping implements bootstrapping for fixed-point encrypted approximate homomorphic encryption over the complex/real numbers. |
|
hefloat/cosine
Package cosine method is the Go implementation of the polynomial-approximation algorithm by Han and Ki in
|
Package cosine method is the Go implementation of the polynomial-approximation algorithm by Han and Ki in |
|
heint
Package heint provides Homomorphic Encryption for encrypted modular arithmetic over the integers.
|
Package heint provides Homomorphic Encryption for encrypted modular arithmetic over the integers. |
|
Package mhe implements RLWE-based scheme agnostic multiparty key-generation and proxy re-rencryption.
|
Package mhe implements RLWE-based scheme agnostic multiparty key-generation and proxy re-rencryption. |
|
mhefloat
Package mhefloat implements homomorphic decryption to Linear-Secret-Shared-Shares (LSSS) and homomorphic re-encryption from LSSS, as well as interactive bootstrapping for the package `he/hefloat` See `mhe/README.md` for additional information on multiparty schemes.
|
Package mhefloat implements homomorphic decryption to Linear-Secret-Shared-Shares (LSSS) and homomorphic re-encryption from LSSS, as well as interactive bootstrapping for the package `he/hefloat` See `mhe/README.md` for additional information on multiparty schemes. |
|
mheint
Package mheint implements homomorphic decryption to Linear-Secret-Shared-Shares (LSSS) and homomorphic re-encryption from LSSS, as well as interactive bootstrapping for the package `he/heint` See `mhe/README.md` for additional information on multiparty schemes.
|
Package mheint implements homomorphic decryption to Linear-Secret-Shared-Shares (LSSS) and homomorphic re-encryption from LSSS, as well as interactive bootstrapping for the package `he/heint` See `mhe/README.md` for additional information on multiparty schemes. |
|
Package rgsw implements an RLWE-based GSW encryption and external product RLWE x RGSW -> RLWE.
|
Package rgsw implements an RLWE-based GSW encryption and external product RLWE x RGSW -> RLWE. |
|
Package ring implements RNS-accelerated modular arithmetic operations for polynomials, including: RNS basis extension; RNS rescaling; number theoretic transform (NTT); uniform, Gaussian and ternary sampling.
|
Package ring implements RNS-accelerated modular arithmetic operations for polynomials, including: RNS basis extension; RNS rescaling; number theoretic transform (NTT); uniform, Gaussian and ternary sampling. |
|
Package rlwe implements the generic cryptographic functionalities and operations that are common to R-LWE schemes.
|
Package rlwe implements the generic cryptographic functionalities and operations that are common to R-LWE schemes. |
|
Package utils implements various helper functions.
|
Package utils implements various helper functions. |
|
bignum
Package bignum implements arbitrary precision arithmetic for integers, reals and complex numbers.
|
Package bignum implements arbitrary precision arithmetic for integers, reals and complex numbers. |
|
buffer
Package buffer implement methods for efficiently writing and reading values to and from io.Writer and io.Reader that also expose their internal buffers.
|
Package buffer implement methods for efficiently writing and reading values to and from io.Writer and io.Reader that also expose their internal buffers. |
|
concurrency
Package concurrency implements a simple channel based ressource manager for concurrent operations.
|
Package concurrency implements a simple channel based ressource manager for concurrent operations. |
|
factorization
Package factorization implements various algorithms for efficient factoring integers of small to medium size.
|
Package factorization implements various algorithms for efficient factoring integers of small to medium size. |
|
sampling
Package sampling implements secure sampling.
|
Package sampling implements secure sampling. |
|
structs
Package structs implements helpers to generalize vectors and matrices of structs, as well as their serialization.
|
Package structs implements helpers to generalize vectors and matrices of structs, as well as their serialization. |
Click to show internal directories.
Click to hide internal directories.