Class CryptoParametersBFVRNS
Defined in File bfvrns-cryptoparameters.h
Page Contents
Inheritance Relationships
Base Type
public lbcrypto::CryptoParametersRNS(Class CryptoParametersRNS)
Class Documentation
-
class lbcrypto::CryptoParametersBFVRNS : public lbcrypto::CryptoParametersRNS
Inheritence diagram for lbcrypto::CryptoParametersBFVRNS:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"5" [label="lbcrypto::Serializable" tooltip="lbcrypto::Serializable"]
"1" [label="lbcrypto::CryptoParametersBFVRNS" tooltip="lbcrypto::CryptoParametersBFVRNS" fillcolor="#BFBFBF"]
"4" [label="lbcrypto::CryptoParametersBase< Element >" tooltip="lbcrypto::CryptoParametersBase< Element >"]
"2" [label="lbcrypto::CryptoParametersRNS" tooltip="lbcrypto::CryptoParametersRNS"]
"3" [label="lbcrypto::CryptoParametersRLWE< DCRTPoly >" tooltip="lbcrypto::CryptoParametersRLWE< DCRTPoly >"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
"4" -> "5" [dir=forward tooltip="public-inheritance"]
"2" -> "3" [dir=forward tooltip="public-inheritance"]
"3" -> "4" [dir=forward tooltip="public-inheritance"]
}](../_images/graphviz-1a922d7e692c6b2a2acfd88886f5353dbe530f94.png)
Collaboration diagram for lbcrypto::CryptoParametersBFVRNS:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"7" [label="lbcrypto::BigIntegerInterface< NativeIntegerT< NativeInt > >" tooltip="lbcrypto::BigIntegerInterface< NativeIntegerT< NativeInt > >"]
"6" [label="intnat::NativeIntegerT< NativeInt >" tooltip="intnat::NativeIntegerT< NativeInt >"]
"5" [label="lbcrypto::Serializable" tooltip="lbcrypto::Serializable"]
"1" [label="lbcrypto::CryptoParametersBFVRNS" tooltip="lbcrypto::CryptoParametersBFVRNS" fillcolor="#BFBFBF"]
"4" [label="lbcrypto::CryptoParametersBase< Element >" tooltip="lbcrypto::CryptoParametersBase< Element >"]
"2" [label="lbcrypto::CryptoParametersRNS" tooltip="lbcrypto::CryptoParametersRNS"]
"3" [label="lbcrypto::CryptoParametersRLWE< DCRTPoly >" tooltip="lbcrypto::CryptoParametersRLWE< DCRTPoly >"]
"6" -> "7" [dir=forward tooltip="public-inheritance"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
"4" -> "5" [dir=forward tooltip="public-inheritance"]
"2" -> "3" [dir=forward tooltip="public-inheritance"]
"2" -> "6" [dir=forward tooltip="usage"]
"3" -> "4" [dir=forward tooltip="public-inheritance"]
}](../_images/graphviz-5d117d26a8c21a5a62975c1883f183cb8ad0e544.png)
Public Functions
-
inline CryptoParametersBFVRNS()
-
inline CryptoParametersBFVRNS(const CryptoParametersBFVRNS &rhs)
-
inline virtual ~CryptoParametersBFVRNS()
-
virtual void PrecomputeCRTTables(KeySwitchTechnique ksTech, ScalingTechnique scalTech, EncryptionTechnique encTech, MultiplicationTechnique multTech, uint32_t numPartQ, uint32_t auxBits, uint32_t extraBits) override
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 override
-
inline virtual uint32_t GetPRENumHops() const override
-
inline virtual double GetNoiseEstimate() const override
-
inline virtual std::string SerializedObjectName() const override
Public Static Functions
-
static inline uint32_t SerializedVersion()
-
inline CryptoParametersBFVRNS()