Class LWECryptoParams

Inheritance Relationships

Base Type

Class Documentation

class lbcrypto::LWECryptoParams : public lbcrypto::Serializable

Inheritence diagram for lbcrypto::LWECryptoParams:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "2" [label="lbcrypto::Serializable" tooltip="lbcrypto::Serializable"] "1" [label="lbcrypto::LWECryptoParams" tooltip="lbcrypto::LWECryptoParams" fillcolor="#BFBFBF"] "1" -> "2" [dir=forward tooltip="public-inheritance"] }

Collaboration diagram for lbcrypto::LWECryptoParams:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "2" [label="lbcrypto::Serializable" tooltip="lbcrypto::Serializable"] "1" [label="lbcrypto::LWECryptoParams" tooltip="lbcrypto::LWECryptoParams" fillcolor="#BFBFBF"] "1" -> "2" [dir=forward tooltip="public-inheritance"] }

Class that stores all parameters for the LWE scheme.

Public Functions

LWECryptoParams() = default
inline explicit LWECryptoParams(uint32_t n, uint32_t N, const NativeInteger &q, const NativeInteger &Q, const NativeInteger &q_KS, double std, uint32_t baseKS, SecretKeyDist keyDist = UNIFORM_TERNARY)

Main constructor for LWECryptoParams

Parameters
  • n – lattice parameter for additive LWE scheme

  • N – ring dimension for RingGSW/RLWE used in bootstrapping

  • q – modulus for additive LWE

  • Q – modulus for RingGSW/RLWE used in bootstrapping

  • q_KS – modulus for key switching

  • std – standard deviation

  • baseKS – the base used for key switching

  • keyDist – the key distribution

inline LWECryptoParams(const LWECryptoParams &rhs)
inline LWECryptoParams(LWECryptoParams &&rhs) noexcept
inline LWECryptoParams &operator=(const LWECryptoParams &rhs)
inline LWECryptoParams &operator=(LWECryptoParams &&rhs) noexcept
inline uint32_t Getn() const
inline uint32_t GetN() const
inline const NativeInteger &Getq() const
inline const NativeInteger &GetQ() const
inline const NativeInteger &GetqKS() const
inline uint32_t GetBaseKS() const
inline const DiscreteGaussianGeneratorImpl<NativeVector> &GetDgg() const
inline const DiscreteGaussianGeneratorImpl<NativeVector> &GetDggKS() const
inline SecretKeyDist GetKeyDist() const
inline bool operator==(const LWECryptoParams &other) const
inline bool operator!=(const LWECryptoParams &other) const
template<class Archive>
inline void save(Archive &ar, std::uint32_t const version) const
template<class Archive>
inline void load(Archive &ar, std::uint32_t const version)
inline virtual std::string SerializedObjectName() const override

Public Static Functions

static inline uint32_t SerializedVersion()