Class KeySwitchBV
Defined in File keyswitch-bv.h
Page Contents
Inheritance Relationships
Base Type
public lbcrypto::KeySwitchRNS
(Class KeySwitchRNS)
Class Documentation
-
class lbcrypto::KeySwitchBV : public lbcrypto::KeySwitchRNS
Inheritence diagram for lbcrypto::KeySwitchBV:
Collaboration diagram for lbcrypto::KeySwitchBV:
Implements BV key switching method from [Fully Homomorphic Encryption from Ring-LWE and Security for Key Dependent Messages (BVScheme)]( https://www.wisdom.weizmann.ac.il/~zvikab/localpapers/IdealHom.pdf ) See the Appendix of https://eprint.iacr.org/2021/204 for more detailed description. Requires the computation of a quadratic number of NTTs.
Public Functions
-
inline KeySwitchBV()
-
inline virtual ~KeySwitchBV()
-
virtual EvalKey<DCRTPoly> KeySwitchGenInternal(const PrivateKey<DCRTPoly> oldPrivateKey, const PrivateKey<DCRTPoly> newPrivateKey) const override
Method for KeySwitchGen
- Parameters
&originalPrivateKey – Original private key used for encryption.
&newPrivateKey – New private key to generate the keyswitch hint.
*KeySwitchHint – is where the resulting keySwitchHint will be placed.
-
virtual EvalKey<DCRTPoly> KeySwitchGenInternal(const PrivateKey<DCRTPoly> oldPrivateKey, const PrivateKey<DCRTPoly> newPrivateKey, const EvalKey<DCRTPoly> evalKey) const override
-
virtual EvalKey<DCRTPoly> KeySwitchGenInternal(const PrivateKey<DCRTPoly> oldPrivateKey, const PublicKey<DCRTPoly> newPublicKey) const override
-
virtual void KeySwitchInPlace(Ciphertext<DCRTPoly> &ciphertext, const EvalKey<DCRTPoly> evalKey) const override
-
virtual std::shared_ptr<std::vector<DCRTPoly>> KeySwitchCore(const DCRTPoly &a, const EvalKey<DCRTPoly> evalKey) const override
-
inline virtual std::string SerializedObjectName() const override
-
inline KeySwitchBV()