Class CryptoParametersRNS
Defined in File rns-cryptoparameters.h
Page Contents
Inheritance Relationships
Base Type
public lbcrypto::CryptoParametersRLWE< DCRTPoly >
(Template Class CryptoParametersRLWE)
Derived Types
public lbcrypto::CryptoParametersBFVRNS
(Class CryptoParametersBFVRNS)public lbcrypto::CryptoParametersBGVRNS
(Class CryptoParametersBGVRNS)public lbcrypto::CryptoParametersCKKSRNS
(Class CryptoParametersCKKSRNS)
Class Documentation
-
class lbcrypto::CryptoParametersRNS : public lbcrypto::CryptoParametersRLWE<DCRTPoly>
Inheritence diagram for lbcrypto::CryptoParametersRNS:
Collaboration diagram for lbcrypto::CryptoParametersRNS:
main implementation class to capture essential cryptoparameters of any LBC system. As CryptoParametersRNS is not an abstract class and we don’t want to instantiate, then we make all its constructors and the destructor protected
- Template Parameters
Element – a ring element.
Subclassed by lbcrypto::CryptoParametersBFVRNS, lbcrypto::CryptoParametersBGVRNS, lbcrypto::CryptoParametersCKKSRNS
Public Functions
-
virtual void PrecomputeCRTTables(KeySwitchTechnique ksTech, ScalingTechnique scalTech, EncryptionTechnique encTech, MultiplicationTechnique multTech, uint32_t numPartQ, uint32_t auxBits, uint32_t extraBits) = 0
Computes all tables needed for decryption, homomorphic multiplication and key switching. Even though this is a pure virtual function and must be overriden in all derived classes, PrecomputeCRTTables() has its own implementation in the source file. It should be called from derived classes’ PrecomputeCRTTables() only and must not be called from CryptoParametersRNS::load().
- Parameters
ksTech – the technique to use for key switching (e.g., BV or GHS).
scalTech – the technique to use for scaling (e.g., FLEXIBLEAUTO or FIXEDMANUAL).
-
virtual uint64_t FindAuxPrimeStep() const
-
inline bool operator==(const CryptoParametersBase<DCRTPoly> &rhs) const override
== operator to compare to this instance of CryptoParametersBase object.
- Parameters
&rhs – CryptoParameters to check equality against.
-
inline virtual void PrintParameters(std::ostream &os) const override
-
inline enum KeySwitchTechnique GetKeySwitchTechnique() const
Method to retrieve the technique to be used for key switching.
- Returns
the key switching technique.
-
inline enum ScalingTechnique GetScalingTechnique() const
Method to retrieve the technique to be used for scaling.
- Returns
the scaling technique.
-
inline enum EncryptionTechnique GetEncryptionTechnique() const
Method to retrieve the technique to be used for rescaling.
- Returns
the rescaling technique.
-
inline enum MultiplicationTechnique GetMultiplicationTechnique() const
Method to retrieve the technique to be used for rescaling.
- Returns
the rescaling technique.
-
inline uint32_t GetAuxBits() const
-
inline uint32_t GetExtraBits() const
-
inline virtual const std::shared_ptr<ILDCRTParams<BigInteger>> GetParamsPK() const override
-
inline const std::vector<NativeInteger> &GettModqPrecon() const
Method that returns the NTL precomputions for [t]_{q_i}
- Returns
the pre-computed values.
-
inline const NativeInteger &GetNegtInvModq(usint l) const
Get the precomputed table of [-t^{-1}]_{q_i}
- Returns
the pre-computed values.
-
inline const NativeInteger &GetNegtInvModqPrecon(usint l) const
Method that returns the NTL precomputions for [-t^{-1}]_{q_i}
- Returns
the pre-computed values.
-
inline const std::vector<NativeInteger> &GetQlQlInvModqlDivqlModq(size_t i) const
Q^(l) = \prod_{j=0}^{l-1} Gets the precomputed table of [Q^(l)*[Q^(l)^{-1}]_{q_l}/q_l]_{q_i}
- Returns
the precomputed table
-
inline const std::vector<NativeInteger> &GetQlQlInvModqlDivqlModqPrecon(size_t i) const
Q^(l) = \prod_{j=0}^{l-1} Gets the NTL precomputions for [Q^(l)*[Q^(l)^{-1}]_{q_l}/q_l]_{q_i}
- Returns
the precomputed table
-
inline const std::vector<NativeInteger> &GetqlInvModq(size_t i) const
Gets the precomputed table of [q_i^{-1}]_{q_j}
- Returns
the precomputed table
-
inline const std::vector<NativeInteger> &GetqlInvModqPrecon(size_t i) const
Gets the NTL precomputions for [q_i^{-1}]_{q_j}
- Returns
the precomputed table
-
inline const std::shared_ptr<ILDCRTParams<BigInteger>> GetParamsQP() const
Gets Q*P CRT basis Q*P = {q_1,…,q_l,p_1,…,p_k} Used in Hybrid key switch generation
- Returns
the precomputed CRT params
-
inline uint32_t GetNumPartQ() const
Method that returns the number of digits. Used in Hybrid key switch generation
- Returns
the number of digits.
-
inline const std::vector<NativeInteger> &GetPModq() const
Gets the precomputed table of [P]_{q_i} Used in Hybrid key switch generation.
- Returns
the precomputed table
-
inline const std::shared_ptr<ILDCRTParams<BigInteger>> GetParamsP() const
Gets the Auxiliary CRT basis {P} = {p_1,…,p_k} Used in Hybrid key switching
- Returns
the parameters CRT params
-
inline uint32_t GetNumPerPartQ() const
Method that returns the number of towers within every digit. This is the alpha parameter from the paper (see documentation for KeySwitchHHybrid). Used in Hybrid key switching
- Returns
the number of towers per digit.
-
inline uint32_t GetNumberOfQPartitions() const
-
inline const std::shared_ptr<ILDCRTParams<BigInteger>> &GetParamsPartQ(uint32_t part) const
Method that returns the element parameters corresponding to partitions {Q_j} of Q. Used in Hybrid key switching
- Returns
the pre-computed values.
-
inline const std::shared_ptr<ILDCRTParams<BigInteger>> &GetParamsComplPartQ(uint32_t numTowers, uint32_t digit) const
-
inline const std::vector<NativeInteger> &GetPartQlHatInvModq(uint32_t part, uint32_t sublvl) const
Method that returns the precomputed values for QHat^-1 mod qj within a partition of towers, used in HYBRID.
- Returns
the pre-computed values.
-
inline const std::vector<NativeInteger> &GetPartQlHatInvModqPrecon(uint32_t part, uint32_t sublvl) const
Barrett multiplication precomputations getter.
- Parameters
index – The number of towers in the ciphertext.
- Returns
the pre-computed values.
-
inline const std::vector<std::vector<NativeInteger>> &GetPartQlHatModp(uint32_t lvl, uint32_t part) const
Barrett multiplication precomputations getter.
- Parameters
index – The table containing [PartQHat]_{p_j}
- Returns
the pre-computed values.
-
inline const std::vector<DoubleNativeInt> &GetmodComplPartqBarrettMu(uint32_t lvl, uint32_t part) const
Barrett multiplication precomputations getter.
- Parameters
index – The number of towers in the ciphertext.
- Returns
the pre-computed values.
-
inline const std::vector<NativeInteger> &GetPInvModq() const
Gets the precomputed table of [P^{-1}]_{q_i} Used in GHS key switching
See more in “A full RNS variant of approximate homomorphic
encryption” by Cheon, et. al. Section 4.
- Returns
the precomputed table
-
inline const std::vector<NativeInteger> &GetPInvModqPrecon() const
Gets the NTL precomputions for [P^{-1}]_{q_i} Used for speeding up GHS key switching.
- Returns
the precomputed table
-
inline const std::vector<NativeInteger> &GetPHatInvModp() const
Get the precomputed table of [(P/p_j)^{-1}]_{p_j} Used in GHS key switching.
See more in “A full RNS variant of approximate homomorphic
encryption” by Cheon, et. al. Section 4.
- Returns
the precomputed table
-
inline const std::vector<NativeInteger> &GetPHatInvModpPrecon() const
Get the NTL precomputions for [(P/p_j)^{-1}]_{p_j}
- Returns
the precomputed table
-
inline const std::vector<std::vector<NativeInteger>> &GetPHatModq() const
Gets the precomputed table of [P/p_j]_{q_i} Used in GHS key switching.
See more in “A full RNS variant of approximate homomorphic
encryption” by Cheon, et. al. Section 4.
- Returns
the precomputed table
-
inline const std::vector<DoubleNativeInt> &GetModqBarrettMu() const
Gets the Barrett modulo reduction precomputation for q_i
- Returns
the precomputed table
-
inline const std::vector<NativeInteger> &GettInvModq() const
Method that returns the precomputed values for [t^(-1)]_{q_i} Used in ModulusSwitching.
- Returns
the pre-computed values.
-
inline const std::vector<NativeInteger> &GettInvModqPrecon() const
Method that returns the NTL precomputions for [t^{-1}]_{q_i}
- Returns
the pre-computed values.
-
inline const std::vector<NativeInteger> &GettInvModp() const
Method that returns the precomputed values for [t^(-1)]_{p_j} Used in KeySwitching.
- Returns
the pre-computed values.
-
inline const std::vector<NativeInteger> &GettInvModpPrecon() const
Method that returns the NTL precomputions for [t^{-1}]_{p_j}
- Returns
the pre-computed values.
-
inline double GetScalingFactorReal(uint32_t l = 0) const
Method to retrieve the scaling factor of level l. For FIXEDMANUAL scaling technique method always returns 2^p, where p corresponds to plaintext modulus
- Parameters
l – For FLEXIBLEAUTO scaling technique the level whose scaling factor we want to learn. Levels start from 0 (no scaling done - all towers) and go up to K-1, where K is the number of towers supported.
- Returns
the scaling factor.
-
inline double GetScalingFactorRealBig(uint32_t l = 0) const
-
inline double GetModReduceFactor(uint32_t l = 0) const
Method to retrieve the modulus to be dropped of level l. For FIXEDMANUAL rescaling technique method always returns 2^p, where p corresponds to plaintext modulus
- Parameters
l – index of modulus to be dropped for FLEXIBLEAUTO scaling technique
- Returns
the precomputed table
-
inline const NativeInteger GetNegQModt() const
-
inline const NativeInteger GetNegQModtPrecon() const
-
inline const NativeInteger GetNegQrModt() const
-
inline const NativeInteger GetNegQrModtPrecon() const
-
inline const std::vector<NativeInteger> &GettInvModqr() const
Method that returns the precomputed values for [t^(-1)]_{a} where a is from {q_i} U r Used in ModulusSwitching.
- Returns
the pre-computed values.
-
inline const std::shared_ptr<ILDCRTParams<BigInteger>> GetParamsQl(usint l = 0) const
-
inline const std::vector<std::vector<NativeInteger>> &GetQlQHatInvModqDivqModq(usint l) const
-
inline const std::shared_ptr<ILDCRTParams<BigInteger>> GetParamsRl(usint l = 0) const
Gets the Auxiliary CRT basis {R} = {r_1,…,r_k} used in homomorphic multiplication
- Returns
the precomputed CRT params
-
inline const std::shared_ptr<ILDCRTParams<BigInteger>> GetParamsQlRl(usint l = 0) const
Gets the Auxiliary expanded CRT basis {S} = {Q*R} = {{q_i},{r_k}} used in homomorphic multiplication
- Returns
the precomputed CRT params
-
inline const std::vector<NativeInteger> &GetQlHatInvModq(usint l = 0) const
Gets the precomputed table of [(Q/q_i)^{-1}]_{q_i}
- Returns
the precomputed table
-
inline const std::vector<NativeInteger> &GetQlHatInvModqPrecon(usint l = 0) const
Gets the NTL precomputations for [(Q/q_i)^{-1}]_{q_i}
- Returns
the precomputed table
-
inline const std::vector<std::vector<NativeInteger>> &GetQlHatModr(usint l = 0) const
Gets the precomputed table of [Q/q_i]_{r_k}
- Returns
the precomputed table
-
inline const std::vector<std::vector<NativeInteger>> &GetalphaQlModr(usint l = 0) const
Gets the precomputed table of [\alpha*Q]_{r_k}
- Returns
the precomputed table
-
inline const std::vector<NativeInteger> &GetmNegRlQHatInvModq(usint l = 0) const
-
inline const std::vector<NativeInteger> &GetmNegRlQHatInvModqPrecon(usint l = 0) const
-
inline const std::vector<std::vector<NativeInteger>> &GetqInvModr() const
-
inline std::vector<DoubleNativeInt> const &GetModrBarrettMu() const
Gets the Barrett modulo reduction precomputations for r_k
- Returns
the precomputed table
-
inline std::vector<double> const &GetqInv() const
Gets the precomputed table of 1./q_i
- Returns
the precomputed table
-
inline const std::vector<double> &GettRSHatInvModsDivsFrac() const
For S = QR Gets the precomputed table of \frac{[t*R*(S/s_m)^{-1}]_{s_m}/s_m}
- Returns
the precomputed table
-
inline const std::vector<std::vector<NativeInteger>> &GettRSHatInvModsDivsModr() const
For S = QR Gets the precomputed table of [\floor{t*R*(S/s_m)^{-1}/s_m}]_{r_k}
- Returns
the precomputed table
-
inline const std::vector<NativeInteger> &GetRlHatInvModr(usint l = 0) const
Gets the precomputed table of [(R/r_k)^{-1}]_{r_k}
- Returns
the precomputed table
-
inline const std::vector<NativeInteger> &GetRlHatInvModrPrecon(usint l = 0) const
Gets the NTL precomputation for [(R/r_k)^{-1}]_{r_k}
- Returns
the precomputed table
-
inline const std::vector<std::vector<NativeInteger>> &GetRlHatModq(usint l = 0) const
Gets the precomputed table of [R/r_k]_{q_i}
- Returns
the precomputed table
-
inline const std::vector<std::vector<NativeInteger>> &GetalphaRlModq(usint l = 0) const
Gets the precomputed table of [\alpha*P]_{q_i}
- Returns
the precomputed table
-
inline const std::vector<std::vector<NativeInteger>> &GettQlSlHatInvModsDivsModq(usint l) const
-
inline const std::vector<NativeInteger> &GetQlHatModq(usint l) const
-
inline const std::vector<NativeInteger> &GetQlHatModqPrecon(usint l) const
-
inline std::vector<double> const &GetrInv() const
Gets the precomputed table of 1./p_j
- Returns
the precomputed table
-
inline const std::vector<double> &GettQHatInvModqDivqFrac() const
Gets the precomputed table of \frac{t*{Q/q_i}^{-1}/q_i}
- Returns
the precomputed table
-
inline const std::vector<double> &GettQHatInvModqBDivqFrac() const
When log2(q_i) >= 45 bits, B = \floor[2^{\ceil{log2(q_i)/2}} Gets the precomputed table of \frac{t*{Q/q_i}^{-1}*B/q_i}
- Returns
the precomputed table
-
inline const std::vector<NativeInteger> &GettQHatInvModqDivqModt() const
Gets the precomputed table of [\floor{t*{Q/q_i}^{-1}/q_i}]_t
- Returns
the precomputed table
-
inline const std::vector<NativeInteger> &GettQHatInvModqDivqModtPrecon() const
Gets the NTL precomputations for [\floor{t*{Q/q_i}^{-1}/q_i}]_t
- Returns
the precomputed table
-
inline const std::vector<NativeInteger> &GettQHatInvModqBDivqModt() const
When log2(q_i) >= 45 bits, B = \floor[2^{\ceil{log2(q_i)/2}} Gets the precomputed table of [\floor{t*{Q/q_i}^{-1}*B/q_i}]_t
- Returns
the precomputed table
-
inline const std::vector<NativeInteger> &GettQHatInvModqBDivqModtPrecon() const
When log2(q_i) >= 45 bits, B = \floor[2^{\ceil{log2(q_i)/2}} Gets the NTL precomputations for [\floor{t*{Q/q_i}^{-1}*B/q_i}]_t
- Returns
the precomputed table
-
inline const NativeInteger &GetScalingFactorInt(usint l) const
-
inline const NativeInteger &GetScalingFactorIntBig(usint l) const
-
inline const NativeInteger &GetModReduceFactorInt(uint32_t l = 0) const
-
inline std::vector<NativeInteger> const &GetrInvModq() const
Gets the precomputed table of 1./p_{q_i}
- Returns
the precomputed table
-
inline const std::shared_ptr<ILDCRTParams<BigInteger>> GetParamsQr() const
Gets the Auxiliary CRT basis {Qr} = {Q U r} used in BFV encryption in mode EXTENDED
- Returns
the precomputed CRT params
-
inline const std::shared_ptr<ILDCRTParams<BigInteger>> GetParamsQBsk() const
Gets the Auxiliary CRT basis {Bsk} = {B U msk} used in homomorphic multiplication
- Returns
the precomputed CRT params
-
inline std::vector<NativeInteger> const &GetModuliQ() const
Gets the precomputed table of q_i
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GetModuliBsk() const
Gets the precomputed table of bsk_j
- Returns
the precomputed table
-
inline std::vector<DoubleNativeInt> const &GetModbskBarrettMu() const
Gets the Barrett modulo reduction precomputation for bsk_j
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GetmtildeQHatInvModq() const
Gets the precomputed table of [mtilde*(Q/q_i)^{-1}]_{q_i}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GetmtildeQHatInvModqPrecon() const
Gets the NTL precomputations for [mtilde*(Q/q_i)^{-1}]_{q_i}
- Returns
the precomputed table
-
inline std::vector<std::vector<NativeInteger>> const &GetQHatModbsk() const
Gets the precomputed table of [Q/q_i]_{bsk_j}
- Returns
the precomputed table
-
inline std::vector<std::vector<NativeInteger>> const &GetqInvModbsk() const
Gets the precomputed table of [(q_i)^{-1}]_{bsk_j}
- Returns
the precomputed table
-
inline std::vector<uint64_t> const &GetQHatModmtilde() const
Gets the precomputed table of [Q/q_i]_{mtilde}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GetQModbsk() const
Gets the precomputed table of [Q]_{bsk_j}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GetQModbskPrecon() const
Gets the NTL precomputations for [Q]_{bsk_j}
- Returns
the precomputed table
-
inline uint64_t const &GetNegQInvModmtilde() const
Gets the precomputed [-Q^{-1}]_{mtilde}
- Returns
the precomputed value
-
inline std::vector<NativeInteger> const &GetmtildeInvModbsk() const
Gets the precomputed table of [mtilde^{-1}]_{bsk_j}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GetmtildeInvModbskPrecon() const
Gets the NTL precomputations for [mtilde^{-1}]_{bsk_j}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GettQHatInvModq() const
Gets the precomputed table of [t*(Q/q_i)^{-1}]_{q_i}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GettQHatInvModqPrecon() const
Gets the NTL precomputations for [t*(Q/q_i)^{-1}]_{q_i}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GettgammaQHatInvModq() const
Gets the precomputed table of [t*gamma*(Q/q_i)^(-1)]_{q_i}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GettgammaQHatInvModqPrecon() const
Gets the NTL precomputations for [t*gamma*(Q/q_i)^(-1)]_{q_i}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GettQInvModbsk() const
Gets the precomputed table of [t/Q]_{bsk_j}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GettQInvModbskPrecon() const
Gets the NTL precomputations for [t/Q]_{bsk_j}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GetBHatInvModb() const
Gets the precomputed table of [(B/b_j)^{-1}]_{b_j}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GetBHatInvModbPrecon() const
Gets the NTL precomputations for [(B/b_j)^{-1}]_{b_j}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GetBHatModmsk() const
Gets the precomputed table of [B/b_j]_{msk}
- Returns
the precomputed table
-
inline NativeInteger const &GetBInvModmsk() const
Gets the precomputed [B^{-1}]_msk
- Returns
the precomputed value
-
inline NativeInteger const &GetBInvModmskPrecon() const
Gets the NTL precomputions for [B^{-1}]_msk
- Returns
the precomputed value
-
inline std::vector<std::vector<NativeInteger>> const &GetBHatModq() const
Gets the precomputed table of [B/b_j]_{q_i}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GetBModq() const
Gets the precomputed table of [B]_{q_i}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GetBModqPrecon() const
Gets the NTL precomputions for [B]_{q_i}
- Returns
the precomputed table
-
inline uint32_t const &Getgamma() const
Gets auxiliary modulus gamma
- Returns
gamma
-
inline NativeInteger const &Gettgamma() const
Gets t*gamma where t - plaintext modulus, gamma - auxiliary modulus
- Returns
t*gamma
-
inline std::vector<NativeInteger> const &GetNegInvqModtgamma() const
Gets the precomputed table of [-(q_i)^{-1}]_{t*gamma}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GetNegInvqModtgammaPrecon() const
Gets the NTL precomputations for [-(q_i)^{-1}]_{t*gamma}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GetMultipartyQHatInvModqAtIndex(usint l) const
Gets the precomputed table of [*(Q/q_i/q_0)^{-1}]_{q_i}
- Returns
the precomputed table
-
inline std::vector<NativeInteger> const &GetMultipartyQHatInvModqPreconAtIndex(usint l) const
Gets the NTL precomputations for [*(Q/q_i/q_0)^{-1}]_{q_i}
- Returns
the precomputed table
-
inline std::vector<std::vector<NativeInteger>> const &GetMultipartyQHatModq0AtIndex(usint l) const
Gets the precomputed table of [Q/q_i/q_0]_{q_0}
- Returns
the precomputed table
-
inline std::vector<std::vector<NativeInteger>> const &GetMultipartyAlphaQModq0AtIndex(usint l) const
Gets the precomputed table of [\alpha*Q/q_0]_{q_0} for 0 <= alpha <= 1
- Returns
the precomputed table
-
inline std::vector<DoubleNativeInt> const &GetMultipartyModq0BarrettMu() const
Gets the Barrett modulo reduction precomputation for q_0
- Returns
the precomputed table
-
inline std::vector<double> const &GetMultipartyQInv() const
Gets the precomputed table of \frac{1/q_i}
- Returns
the precomputed table
-
inline COMPRESSION_LEVEL GetMPIntBootCiphertextCompressionLevel() const
Gets the Multi-Party Interactive Bootstrapping Ciphertext Compression Level
- Returns
m_MPIntBootCiphertextCompressionLevel
-
inline virtual std::string SerializedObjectName() const override
Public Static Functions
-
static inline uint32_t SerializedVersion()
Protected Functions
-
inline CryptoParametersRNS()
-
inline CryptoParametersRNS(const CryptoParametersRNS &rhs)
Constructor that initializes values. Note that it is possible to set parameters in a way that is overall infeasible for actual use. There are fewer degrees of freedom than parameters provided. Typically one chooses the basic noise, assurance and security parameters as the typical community-accepted values, then chooses the plaintext modulus and depth as needed. The element parameters should then be choosen to provide correctness and security. In some cases we would need to operate over already encrypted/provided ciphertext and the depth needs to be pre-computed for initial settings.
- Parameters
params – element parameters.
&plaintextModulus – plaintext modulus.
distributionParameter – noise distribution parameter.
assuranceMeasure – assurance level.
securityLevel – security level.
digitSize – the size of the relinearization window.
secretKeyDist – sets the secretKeyDist of operation: GAUSSIAN or UNIFORM_TERNARY
maxRelinSkDeg – the maximum power of secret key for which the relinearization key is generated
ksTech – key switching method
scalTech – scaling method
mPIntBootCiphertextCompressionLevel – compression level
-
inline virtual ~CryptoParametersRNS()
Protected Attributes
-
enum KeySwitchTechnique m_ksTechnique
-
enum ScalingTechnique m_scalTechnique
-
enum EncryptionTechnique m_encTechnique
-
enum MultiplicationTechnique m_multTechnique
-
uint32_t m_auxBits = 0
-
uint32_t m_extraBits = 0
-
std::vector<NativeInteger> m_tModqPrecon
-
std::vector<NativeInteger> m_negtInvModq
-
std::vector<NativeInteger> m_negtInvModqPrecon
-
std::vector<std::vector<NativeInteger>> m_QlQlInvModqlDivqlModq
-
std::vector<std::vector<NativeInteger>> m_QlQlInvModqlDivqlModqPrecon
-
std::vector<std::vector<NativeInteger>> m_qlInvModq
-
std::vector<std::vector<NativeInteger>> m_qlInvModqPrecon
-
std::shared_ptr<ILDCRTParams<BigInteger>> m_paramsQP
-
uint32_t m_numPartQ = 0
-
std::vector<NativeInteger> m_PModq
-
std::shared_ptr<ILDCRTParams<BigInteger>> m_paramsP
-
uint32_t m_numPerPartQ = 0
-
std::vector<std::shared_ptr<ILDCRTParams<BigInteger>>> m_paramsPartQ
-
std::vector<std::vector<std::shared_ptr<ILDCRTParams<BigInteger>>>> m_paramsComplPartQ
-
std::vector<std::vector<std::vector<NativeInteger>>> m_PartQlHatInvModq
-
std::vector<std::vector<std::vector<NativeInteger>>> m_PartQlHatInvModqPrecon
-
std::vector<std::vector<std::vector<std::vector<NativeInteger>>>> m_PartQlHatModp
-
std::vector<std::vector<std::vector<DoubleNativeInt>>> m_modComplPartqBarrettMu
-
std::vector<NativeInteger> m_PInvModq
-
std::vector<NativeInteger> m_PInvModqPrecon
-
std::vector<NativeInteger> m_PHatInvModp
-
std::vector<NativeInteger> m_PHatInvModpPrecon
-
std::vector<std::vector<NativeInteger>> m_PHatModq
-
std::vector<DoubleNativeInt> m_modqBarrettMu
-
std::vector<NativeInteger> m_tInvModp
-
std::vector<NativeInteger> m_tInvModpPrecon
-
std::vector<double> m_scalingFactorsReal
-
std::vector<double> m_scalingFactorsRealBig
-
std::vector<double> m_dmoduliQ
-
double m_approxSF = 0
-
std::vector<NativeInteger> m_scalingFactorsInt
-
std::vector<NativeInteger> m_scalingFactorsIntBig
-
std::vector<NativeInteger> m_qModt
-
NativeInteger m_fixedSF = NativeInteger(1)
-
NativeInteger m_negQModt
-
NativeInteger m_negQModtPrecon
-
std::vector<NativeInteger> m_tInvModq
-
std::vector<NativeInteger> m_tInvModqPrecon
-
std::vector<NativeInteger> m_tInvModqr
-
std::shared_ptr<ILDCRTParams<BigInteger>> m_paramsQr
-
NativeInteger m_negQrModt
-
NativeInteger m_negQrModtPrecon
-
std::vector<NativeInteger> m_rInvModq
-
std::vector<double> m_tQHatInvModqDivqFrac
-
std::vector<double> m_tQHatInvModqBDivqFrac
-
std::vector<NativeInteger> m_tQHatInvModqDivqModt
-
std::vector<NativeInteger> m_tQHatInvModqDivqModtPrecon
-
std::vector<NativeInteger> m_tQHatInvModqBDivqModt
-
std::vector<NativeInteger> m_tQHatInvModqBDivqModtPrecon
-
std::vector<std::shared_ptr<ILDCRTParams<BigInteger>>> m_paramsQl
-
std::vector<std::vector<double>> m_QlQHatInvModqDivqFrac
-
std::vector<std::vector<std::vector<NativeInteger>>> m_QlQHatInvModqDivqModq
-
std::vector<std::shared_ptr<ILDCRTParams<BigInteger>>> m_paramsRl
-
std::vector<std::shared_ptr<ILDCRTParams<BigInteger>>> m_paramsQlRl
-
std::vector<std::vector<NativeInteger>> m_QlHatInvModq
-
std::vector<std::vector<NativeInteger>> m_QlHatInvModqPrecon
-
std::vector<std::vector<std::vector<NativeInteger>>> m_QlHatModr
-
std::vector<std::vector<std::vector<NativeInteger>>> m_alphaQlModr
-
std::vector<DoubleNativeInt> m_modrBarrettMu
-
std::vector<double> m_qInv
-
std::vector<double> m_tRSHatInvModsDivsFrac
-
std::vector<std::vector<NativeInteger>> m_tRSHatInvModsDivsModr
-
std::vector<std::vector<NativeInteger>> m_RlHatInvModr
-
std::vector<std::vector<NativeInteger>> m_RlHatInvModrPrecon
-
std::vector<std::vector<std::vector<NativeInteger>>> m_RlHatModq
-
std::vector<std::vector<std::vector<NativeInteger>>> m_alphaRlModq
-
std::vector<double> m_rInv
-
std::vector<std::vector<NativeInteger>> m_negRlQHatInvModq
-
std::vector<std::vector<NativeInteger>> m_negRlQHatInvModqPrecon
-
std::vector<std::vector<NativeInteger>> m_qInvModr
-
std::vector<std::vector<NativeInteger>> m_QlHatModq
-
std::vector<std::vector<NativeInteger>> m_QlHatModqPrecon
-
std::vector<std::vector<double>> m_tQlSlHatInvModsDivsFrac
-
std::vector<std::vector<std::vector<NativeInteger>>> m_tQlSlHatInvModsDivsModq
-
std::shared_ptr<ILDCRTParams<BigInteger>> m_paramsQBsk
-
uint32_t m_numq = 0
-
uint32_t m_numb = 0
-
NativeInteger m_mtilde = NativeInteger(BasicInteger(1) << 16)
-
NativeInteger m_msk
-
std::vector<NativeInteger> m_moduliQ
-
std::vector<NativeInteger> m_moduliB
-
std::vector<NativeInteger> m_rootsBsk
-
std::vector<NativeInteger> m_moduliBsk
-
std::vector<DoubleNativeInt> m_modbskBarrettMu
-
std::vector<NativeInteger> m_mtildeQHatInvModq
-
std::vector<NativeInteger> m_mtildeQHatInvModqPrecon
-
std::vector<std::vector<NativeInteger>> m_QHatModbsk
-
std::vector<std::vector<NativeInteger>> m_qInvModbsk
-
std::vector<uint64_t> m_QHatModmtilde
-
std::vector<NativeInteger> m_QModbsk
-
std::vector<NativeInteger> m_QModbskPrecon
-
uint64_t m_negQInvModmtilde = 0
-
std::vector<NativeInteger> m_mtildeInvModbsk
-
std::vector<NativeInteger> m_mtildeInvModbskPrecon
-
std::vector<NativeInteger> m_tQHatInvModq
-
std::vector<NativeInteger> m_tQHatInvModqPrecon
-
std::vector<NativeInteger> m_tgammaQHatInvModq
-
std::vector<NativeInteger> m_tgammaQHatInvModqPrecon
-
std::vector<NativeInteger> m_tQInvModbsk
-
std::vector<NativeInteger> m_tQInvModbskPrecon
-
std::vector<NativeInteger> m_BHatInvModb
-
std::vector<NativeInteger> m_BHatInvModbPrecon
-
std::vector<NativeInteger> m_BHatModmsk
-
NativeInteger m_BInvModmsk
-
NativeInteger m_BInvModmskPrecon
-
std::vector<std::vector<NativeInteger>> m_BHatModq
-
std::vector<NativeInteger> m_BModq
-
std::vector<NativeInteger> m_BModqPrecon
-
uint32_t m_gamma = 1 << 26
-
NativeInteger m_tgamma
-
std::vector<NativeInteger> m_negInvqModtgamma
-
std::vector<NativeInteger> m_negInvqModtgammaPrecon
-
std::vector<std::vector<NativeInteger>> m_multipartyQHatInvModq
-
std::vector<std::vector<NativeInteger>> m_multipartyQHatInvModqPrecon
-
std::vector<std::vector<std::vector<NativeInteger>>> m_multipartyQHatModq0
-
std::vector<std::vector<std::vector<NativeInteger>>> m_multipartyAlphaQModq0
-
std::vector<DoubleNativeInt> m_multipartyModq0BarrettMu
-
std::vector<double> m_multipartyQInv
-
COMPRESSION_LEVEL m_MPIntBootCiphertextCompressionLevel