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 |
---|---|
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. |
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. |
single_party/applications/bin_blind_rotations
Package main implements an example of Blind Rotation (a.k.a.
|
Package main implements an example of Blind Rotation (a.k.a. |
single_party/applications/reals_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. |
single_party/applications/reals_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. |
single_party/applications/reals_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. |
single_party/applications/reals_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. |
single_party/applications/reals_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. |
single_party/applications/reals_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. |
single_party/applications/reals_vectorized_polynomial_evaluation
Package main implements an example of vectorized polynomial evaluation.
|
Package main implements an example of vectorized polynomial evaluation. |
single_party/templates/int
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. |
single_party/templates/reals
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 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 implements Homomorphic Encryption for encrypted modular arithmetic over the integers.
|
Package heint implements 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 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. |
schemes
|
|
bfv
Package bfv provides an RNS-accelerated implementation of the Fan-Vercauteren version of Brakerski's (BFV) scale-invariant homomorphic encryption scheme.
|
Package bfv provides an RNS-accelerated implementation of the Fan-Vercauteren version of Brakerski's (BFV) scale-invariant homomorphic encryption scheme. |
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. |
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.