Class SchemeBFVRNS

Inheritance Relationships

Base Type

Class Documentation

class lbcrypto::SchemeBFVRNS : public lbcrypto::SchemeRNS

Inheritence diagram for lbcrypto::SchemeBFVRNS:

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

Collaboration diagram for lbcrypto::SchemeBFVRNS:

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

The BFV scheme in the RNS representation: instantiates the BFV parameter generation, PKE, PRE, leveled SHE, advanced SHE, multiparty and FHE components.

Public Functions

inline SchemeBFVRNS()
inline virtual ~SchemeBFVRNS()
inline bool operator==(const SchemeBase<DCRTPoly> &sch) const override

Compares two schemes by type.

Parameters

sch – the scheme to compare to.

Returns

true if sch is also a SchemeBFVRNS.

virtual void Enable(PKESchemeFeature feature) override

Instantiates the BFV implementation of the given feature (PKE, PRE, LEVELEDSHE, MULTIPARTY, ADVANCEDSHE or FHE) if it has not been instantiated yet. KEYSWITCH is set up separately by SetKeySwitchingTechnique().

Parameters

feature – the feature to enable; unsupported features throw.

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