Class RingGSWCryptoParams

Inheritance Relationships

Base Type

Class Documentation

class lbcrypto::RingGSWCryptoParams : public lbcrypto::Serializable

Inheritence diagram for lbcrypto::RingGSWCryptoParams:

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::RingGSWCryptoParams" tooltip="lbcrypto::RingGSWCryptoParams" fillcolor="#BFBFBF"] "1" -> "2" [dir=forward tooltip="public-inheritance"] }

Collaboration diagram for lbcrypto::RingGSWCryptoParams:

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::RingGSWCryptoParams" tooltip="lbcrypto::RingGSWCryptoParams" fillcolor="#BFBFBF"] "1" -> "2" [dir=forward tooltip="public-inheritance"] }

Class that stores all parameters for the RingGSW scheme used in bootstrapping.

Public Functions

RingGSWCryptoParams() = default
inline explicit RingGSWCryptoParams(uint32_t N, NativeInteger Q, NativeInteger q, uint32_t baseG, uint32_t baseR, BINFHE_METHOD method, double std, SecretKeyDist keyDist = UNIFORM_TERNARY, bool signEval = false, uint32_t numAutoKeys = 10)

Main constructor for RingGSWCryptoParams

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

  • Q – modulus for RingGSW/RLWE used in bootstrapping

  • q – ciphertext modulus for additive LWE

  • baseG – the gadget base used in the bootstrapping

  • baseR – the base for the refreshing key

  • method – bootstrapping method (DM or CGGI or LMKCDEY)

  • std – standar deviation

  • keyDist – secret key distribution

  • signEval – flag if sign evaluation is needed

  • numAutoKeys – number of automorphism keys in LMKCDEY bootstrapping

void PreCompute(bool signEval = false)

Performs precomputations based on the supplied parameters

inline uint32_t GetN() const
inline const NativeInteger &GetQ() const
inline const NativeInteger &Getq() const
inline uint32_t GetBaseG() const
inline uint32_t GetDigitsG() const
inline uint32_t GetBaseR() const
inline uint32_t GetNumAutoKeys() const
inline const std::vector<NativeInteger> &GetDigitsR() const
inline const std::shared_ptr<ILNativeParams> GetPolyParams() const
inline const std::vector<NativeInteger> &GetGPower() const
inline const std::vector<int32_t> &GetLogGen() const
inline const std::map<uint32_t, std::vector<NativeInteger>> &GetGPowerMap() const
inline const DiscreteGaussianGeneratorImpl<NativeVector> &GetDgg() const
inline const std::vector<NativeInteger> &GetGateConst() const
inline const NativePoly &GetMonomial(uint32_t i) const
inline BINFHE_METHOD GetMethod() const
inline SecretKeyDist GetKeyDist() const
inline bool operator==(const RingGSWCryptoParams &other) const
inline bool operator!=(const RingGSWCryptoParams &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
inline void Change_BaseG(uint32_t BaseG)

Public Static Functions

static inline uint32_t SerializedVersion()