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, NativeInteger q, NativeInteger Q, 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 &operator=(const LWECryptoParams &rhs)
inline uint32_t Getn() const
inline uint32_t GetN() const
inline NativeInteger Getq() const
inline NativeInteger GetQ() const
inline 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()