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 |
---|---|
circuits
|
|
bgv/lintrans
Package lintrans implements homomorphic linear transformations for the BFV/BGV schemes.
|
Package lintrans implements homomorphic linear transformations for the BFV/BGV schemes. |
bgv/polynomial
Package polynomial implements a homomorphic polynomial evaluator for the BFV/BGV schemes.
|
Package polynomial implements a homomorphic polynomial evaluator for the BFV/BGV schemes. |
ckks/bootstrapping
Package bootstrapping implements bootstrapping for fixed-point encrypted approximate homomorphic encryption over the complex/real numbers (CKKS scheme).
|
Package bootstrapping implements bootstrapping for fixed-point encrypted approximate homomorphic encryption over the complex/real numbers (CKKS scheme). |
ckks/comparison
Package comparison implements homomorphic comparisons for the CKKS scheme.
|
Package comparison implements homomorphic comparisons for the CKKS scheme. |
ckks/dft
Package dft implements a homomorphic DFT circuit for the CKKS scheme.
|
Package dft implements a homomorphic DFT circuit for the CKKS scheme. |
ckks/inverse
Package inverse implements a homomorphic inversion circuit for the CKKS scheme.
|
Package inverse implements a homomorphic inversion circuit for the CKKS scheme. |
ckks/lintrans
Package lintrans implements homomorphic linear transformations for the CKKS scheme.
|
Package lintrans implements homomorphic linear transformations for the CKKS scheme. |
ckks/minimax
Package minimax implements a homomorphic minimax circuit for the CKKS scheme.
|
Package minimax implements a homomorphic minimax circuit for the CKKS scheme. |
ckks/mod1
Package mod1 implements a homomorphic mod1 circuit for the CKKS scheme.
|
Package mod1 implements a homomorphic mod1 circuit for the CKKS scheme. |
ckks/polynomial
Package polynomial implements a homomorphic polynomial evaluator for the CKKS scheme.
|
Package polynomial implements a homomorphic polynomial evaluator for the CKKS scheme. |
common/lintrans
Package lintrans bundles generic parts of the homomorphic linear transformation circuit.
|
Package lintrans bundles generic parts of the homomorphic linear transformation circuit. |
common/polynomial
Package polynomial bundles generic parts of the homomorphic polynomial evaluation circuit.
|
Package polynomial bundles generic parts of the homomorphic polynomial evaluation circuit. |
core
|
|
rgsw
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. |
rgsw/blindrot
Package blindrot implements blind rotations evaluation for RLWE schemes.
|
Package blindrot implements blind rotations evaluation for RLWE schemes. |
rlwe
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 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. |
singleparty/ckks_bootstrapping/basics
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. |
singleparty/ckks_bootstrapping/high_precision
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. |
singleparty/ckks_bootstrapping/slim
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. |
singleparty/ckks_scheme_switching
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. |
singleparty/ckks_sigmoid_chebyshev
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. |
singleparty/ckks_sigmoid_minimax
Package main implements an example of smooth function approximation using minimax polynomial interpolation.
|
Package main implements an example of smooth function approximation using minimax polynomial interpolation. |
singleparty/ckks_vectorized_polynomial_evaluation
Package main implements an example of vectorized polynomial evaluation.
|
Package main implements an example of vectorized polynomial evaluation. |
singleparty/rgsw_blind_rotations
Package main implements an example of Blind Rotation (a.k.a.
|
Package main implements an example of Blind Rotation (a.k.a. |
singleparty/templates/bgv
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. |
singleparty/templates/ckks
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. |
Package multiparty implements RLWE-based scheme agnostic multiparty key-generation and proxy re-rencryption.
|
Package multiparty implements RLWE-based scheme agnostic multiparty key-generation and proxy re-rencryption. |
mpbgv
Package mpbgv implements homomorphic decryption to Linear-Secret-Shared-Shares (LSSS) and homomorphic re-encryption from LSSS, as well as interactive bootstrapping for the package `schemes/bgv` See `multiparty/README.md` for additional information on multiparty schemes.
|
Package mpbgv implements homomorphic decryption to Linear-Secret-Shared-Shares (LSSS) and homomorphic re-encryption from LSSS, as well as interactive bootstrapping for the package `schemes/bgv` See `multiparty/README.md` for additional information on multiparty schemes. |
mpckks
Package mpckks implements homomorphic decryption to Linear-Secret-Shared-Shares (LSSS) and homomorphic re-encryption from LSSS, as well as interactive bootstrapping for the package `circuits/bootstrapping` See `multiparty/README.md` for additional information on multiparty schemes.
|
Package mpckks implements homomorphic decryption to Linear-Secret-Shared-Shares (LSSS) and homomorphic re-encryption from LSSS, as well as interactive bootstrapping for the package `circuits/bootstrapping` See `multiparty/README.md` for additional information on multiparty schemes. |
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. |
ringqp
Package ringqp is implements a wrapper for both the ringQ and ringP.
|
Package ringqp is implements a wrapper for both the ringQ and ringP. |
Package schemes contains the implemented cryptosystems.
|
Package schemes contains the implemented cryptosystems. |
bgv
Package bgv implements a unified RNS-accelerated version of the Fan-Vercauteren version of the Brakerski's scale invariant homomorphic encryption scheme (BFV) and Brakerski-Gentry-Vaikuntanathan (BGV) homomorphic encryption scheme.
|
Package bgv implements a unified RNS-accelerated version of the Fan-Vercauteren version of the Brakerski's scale invariant homomorphic encryption scheme (BFV) and Brakerski-Gentry-Vaikuntanathan (BGV) homomorphic encryption scheme. |
ckks
Package ckks implements a RNS-accelerated version of the Homomorphic Encryption for Arithmetic for Approximate Numbers (HEAAN, a.k.a.
|
Package ckks implements a RNS-accelerated version of the Homomorphic Encryption for Arithmetic for Approximate Numbers (HEAAN, a.k.a. |
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. |
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 |
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 of bytes and integers.
|
Package sampling implements secure sampling of bytes and integers. |
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.