Namespace lbcrypto
Page Contents
Detailed Description
The namespace of lbcrypto
Base class for key switching algorithms.
The namespace of lbcrypto
Hybrid key switching method first introduced in https://eprint.iacr.org/2012/099.pdf RNS version was introduced in https://eprint.iacr.org/2019/688. See the Appendix of https://eprint.iacr.org/2021/204 for more detailed description.
GHS Keyswitching : Pros : Smaller noise growth than BV and is more efficient as it only requires a linear number of NTTs Cons : need to double dimension,N, or reduce size of ciphertext modulus, Q, by a factor of 2
The namespace of lbcrypto
Base class for Lattice-based cryptography(LBC) Somewhat Homomorphic Encryption(SHE) algorithms.
Implements BV scheme from [Fully Homomorphic Encryption from Ring-LWE and Security for Template Class Key Dependent Messages (BVScheme)]( https://www.wisdom.weizmann.ac.il/~zvikab/localpapers/IdealHom.pdf ) see the Appendix of https://eprint.iacr.org/2021/204 for more details
Hybrid key switching implementation. See Appendix of https://eprint.iacr.org/2021/204 for details.
WARNING FOR PARAMETER SELECTION IN GENERIC SAMPLER
MAKE SURE THAT PRECISION - BERNOULLI FLIPS IS ALWAYS DIVISIBLE BY LOG_BASE WHEN CHOOSING A STANDARD DEVIATION SIGMA_B FOR BASE SAMPLER, MAKE SURE THAT SIGMA_B>=4*SQRT(2)*N WHERE N IS THE SMOOTHING PARAMETER
Namespaces
Classes
Enums
Functions
Function lbcrypto::Cholesky(const Matrix<int32_t>&, Matrix<double>&)
Function lbcrypto::convertToCKKSDataType(const std::string&)
Function lbcrypto::convertToCompressionLevel(const std::string&)
Function lbcrypto::convertToDecryptionNoiseMode(const std::string&)
Function lbcrypto::convertToEncryptionTechnique(const std::string&)
Function lbcrypto::convertToExecutionMode(const std::string&)
Function lbcrypto::ConvertToInt32(const Matrix<BigInteger>&, const BigInteger&)
Function lbcrypto::ConvertToInt32(const Matrix<BigVector>&, const BigInteger&)
Function lbcrypto::ConvertToInt32(const MatrixStrassen<BigInteger>&, const BigInteger&)
Function lbcrypto::ConvertToInt32(const MatrixStrassen<BigVector>&, const BigInteger&)
Template Function lbcrypto::ConvertToInt32(const Matrix<T>&, const T&)
Template Function lbcrypto::ConvertToInt32(const Matrix<V>&, const typename V::Integer&)
Function lbcrypto::convertToKeySwitchTechnique(const std::string&)
Function lbcrypto::convertToMultipartyMode(const std::string&)
Function lbcrypto::convertToMultiplicationTechnique(const std::string&)
Function lbcrypto::convertToMultiplicationTechnique(uint32_t)
Function lbcrypto::convertToProxyReEncryptionMode(const std::string&)
Function lbcrypto::convertToScalingTechnique(const std::string&)
Function lbcrypto::convertToSecretKeyDist(const std::string&)
Function lbcrypto::convertToSecurityLevel(const std::string&)
Function lbcrypto::DisablePrecomputeCRTTablesAfterDeserializaton
Function lbcrypto::EnablePrecomputeCRTTablesAfterDeserializaton
Function lbcrypto::Fill(const std::vector<std::complex<double>>&, uint32_t)
Function lbcrypto::Fill(const std::vector<double>&, uint32_t)
Function lbcrypto::Fill(const std::vector<int64_t>&, uint32_t)
Function lbcrypto::Fill(std::initializer_list<std::complex<double>>, uint32_t)
Function lbcrypto::Fill(std::initializer_list<double>, uint32_t)
Function lbcrypto::Fill(std::initializer_list<int64_t>, uint32_t)
Template Function lbcrypto::Fill(const std::vector<VecDType>&, uint32_t)
Template Function lbcrypto::Fill(std::initializer_list<VecDType>, uint32_t)
Template Function lbcrypto::fillVec(const T&, const PlaintextModulus&, std::vector<int64_t>&)
Template Function lbcrypto::fillVec(const P&, const PlaintextModulus&, std::vector<int64_t>&)
Function lbcrypto::FindGeneratorCyclic(const NativeInteger&)
Template Function lbcrypto::FindGeneratorCyclic(const IntType&)
Function lbcrypto::GetCyclotomicPolynomial(usint, const NativeInteger&)
Template Function lbcrypto::GetCyclotomicPolynomial(usint, const typename IntVector::Integer&)
Template Function lbcrypto::GetDigits(const IntType&, uint64_t, uint32_t)
Function lbcrypto::GetDigits(const NativeInteger&, uint64_t, uint32_t)
Template Function lbcrypto::GetMultiplicativeDepthByCoeffVector
Function lbcrypto::GreatestCommonDivisor(const NativeInteger&, const NativeInteger&)
Template Function lbcrypto::GreatestCommonDivisor(const IntType&, const IntType&)
Template Function lbcrypto::internalEvalChebyshevSeriesLinearWithPrecomp
Template Function lbcrypto::internalEvalChebyshevSeriesPSWithPrecomp
Template Function lbcrypto::internalEvalPolyLinearWithPrecomp
Function lbcrypto::IsGenerator(const NativeInteger&, const NativeInteger&)
Template Function lbcrypto::IsGenerator(const IntType&, const IntType&)
Function lbcrypto::IsNotEqualOne(std::complex<double>, double)
Function lbcrypto::IsNotEqualZero(std::complex<double>, double)
Function lbcrypto::LongDivisionChebyshev(const std::vector<int64_t>&, const std::vector<int64_t>&)
Function lbcrypto::LongDivisionChebyshev(const std::vector<double>&, const std::vector<double>&)
Function lbcrypto::LongDivisionPoly(const std::vector<int64_t>&, const std::vector<int64_t>&)
Function lbcrypto::LongDivisionPoly(const std::vector<double>&, const std::vector<double>&)
Function lbcrypto::MillerRabinPrimalityTest(const NativeInteger&, const usint)
Template Function lbcrypto::MillerRabinPrimalityTest(const IntType&, const usint)
Function lbcrypto::NextPrime(const NativeInteger&, uint64_t)
Template Function lbcrypto::NextPrime(const IntType&, uint64_t)
Template Function lbcrypto::operator*(const Ciphertext<Element>&, const Ciphertext<Element>&)
Template Function lbcrypto::operator*(Element const&, MatrixStrassen<Element> const&)
Template Function lbcrypto::operator*(Element const&, Matrix<Element> const&)
Template Function lbcrypto::operator-(const Ciphertext<Element>&, const Ciphertext<Element>&)
Template Function lbcrypto::operator-(const Ciphertext<Element>&)
Function lbcrypto::operator<<(std::ostream&, PKESchemeFeature)
Function lbcrypto::operator<<(std::ostream&, ScalingTechnique)
Function lbcrypto::operator<<(std::ostream&, ProxyReEncryptionMode)
Function lbcrypto::operator<<(std::ostream&, MultipartyMode)
Function lbcrypto::operator<<(std::ostream&, const SchSwchParams&)
Function lbcrypto::operator<<(std::ostream&, DecryptionNoiseMode)
Function lbcrypto::operator<<(std::ostream&, KeySwitchTechnique)
Template Function lbcrypto::operator<<(std::ostream&, const std::vector<T>&)
Function lbcrypto::operator<<(std::ostream&, EncryptionTechnique)
Function lbcrypto::operator<<(std::ostream&, MultiplicationTechnique)
Function lbcrypto::operator<<(std::ostream&, PlaintextEncodings)
Function lbcrypto::operator<<(std::ostream&, CompressionLevel)
Function lbcrypto::operator<<(std::ostream&, const std::shared_ptr<EncodingParamsImpl>&)
Template Function lbcrypto::operator<<(std::ostream&, const MatrixStrassen<Element>&)
Function lbcrypto::operator<<(std::ostream&, const Field2n&)
Template Function lbcrypto::operator<<(std::ostream&, const DCRTPolyImpl<VecType>&)
Template Function lbcrypto::operator<<(std::ostream&, const PolyImpl<VecType>&)
Function lbcrypto::operator<<(std::ostream&, BINFHE_PARAMSET)
Template Function lbcrypto::operator<<(std::ostream&, const Matrix<Element>&)
Function lbcrypto::operator==(const Plaintext&, const Plaintext&)
Function lbcrypto::PollardRhoFactorization(const NativeInteger&)
Template Function lbcrypto::PollardRhoFactorization(const IntType&)
Function lbcrypto::PolyMod(const NativeVector&, const NativeVector&, const NativeInteger&)
Function lbcrypto::PolynomialMultiplication(const NativeVector&, const NativeVector&)
Template Function lbcrypto::PolynomialMultiplication(const IntVector&, const IntVector&)
Function lbcrypto::PreviousPrime(const NativeInteger&, uint64_t)
Template Function lbcrypto::PreviousPrime(const IntType&, uint64_t)
Function lbcrypto::PrimeFactorize(NativeInteger, std::set<NativeInteger>&)
Template Function lbcrypto::PrimeFactorize(IntType, std::set<IntType>&)
Function lbcrypto::RootsOfUnity(usint, const std::vector<NativeInteger>&)
Template Function lbcrypto::RootsOfUnity(usint, const std::vector<IntType>&)
Function lbcrypto::Rotate(const std::vector<int64_t>&, int32_t)
Template Function lbcrypto::Rotate(const std::vector<VecDType>&, int32_t)
Function lbcrypto::Rotate(const std::vector<std::complex<double>>&, int32_t)
Template Function lbcrypto::RotateTwoHalves(const std::vector<VectorDataType>&, int32_t)
Function lbcrypto::RotateTwoHalves(const std::vector<int64_t>&, int32_t)
Template Function lbcrypto::RotateTwoHalves(const std::vector<VecDType>&, int32_t)
Function lbcrypto::RotateVecResult(MatrixStrassen<Poly> const&)
Template Function lbcrypto::RotateVecResult(Matrix<Element> const&)