Class ParameterGenerationCKKSRNS

Inheritance Relationships

Base Type

Class Documentation

class lbcrypto::ParameterGenerationCKKSRNS : public lbcrypto::ParameterGenerationRNS

Inheritence diagram for lbcrypto::ParameterGenerationCKKSRNS:

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

Collaboration diagram for lbcrypto::ParameterGenerationCKKSRNS:

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

Public Functions

virtual ~ParameterGenerationCKKSRNS() = default
virtual bool ParamsGenCKKSRNSInternal(std::shared_ptr<CryptoParametersBase<DCRTPoly>> cryptoParams, uint32_t cyclOrder, uint32_t numPrimes, uint32_t scalingModSize, uint32_t firstModSize, uint32_t mulPartQ, CompressionLevel mPIntBootCiphertextCompressionLevel) const override

Method for computing all derived parameters based on chosen primitive parameters.

Parameters
  • *cryptoParams – the crypto parameters object to be populated with parameters.

  • cyclOrder – the cyclotomic order.

  • numPrimes – number of modulus towers to support.

  • scalingModSize – the bit-width for plaintexts and DCRTPoly’s.

  • firstModSize – the bit-size of the first modulus

  • numPartQ – number of partitions of Q for HYBRID key switching

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 std::string SerializedObjectName() const

Protected Functions

void CompositePrimeModuliGen(std::vector<NativeInteger> &moduliQ, std::vector<NativeInteger> &rootsQ, uint32_t compositeDegree, uint32_t numPrimes, uint32_t firstModSize, uint32_t dcrtBits, uint32_t cyclOrder, uint32_t registerWordSize) const
void SinglePrimeModuliGen(std::vector<NativeInteger> &moduliQ, std::vector<NativeInteger> &rootsQ, ScalingTechnique scalTech, uint32_t numPrimes, uint32_t firstModSize, uint32_t dcrtBits, uint32_t cyclOrder, uint32_t extraModsize) const