Class KeySwitchHYBRID
Defined in File keyswitch-hybrid.h
Page Contents
Inheritance Relationships
Base Type
public lbcrypto::KeySwitchRNS(Class KeySwitchRNS)
Class Documentation
-
class lbcrypto::KeySwitchHYBRID : public lbcrypto::KeySwitchRNS
Inheritence diagram for lbcrypto::KeySwitchHYBRID:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="lbcrypto::KeySwitchHYBRID" tooltip="lbcrypto::KeySwitchHYBRID" fillcolor="#BFBFBF"]
"2" [label="lbcrypto::KeySwitchRNS" tooltip="lbcrypto::KeySwitchRNS"]
"3" [label="lbcrypto::KeySwitchBase< DCRTPoly >" tooltip="lbcrypto::KeySwitchBase< DCRTPoly >"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
"2" -> "3" [dir=forward tooltip="public-inheritance"]
}](../_images/graphviz-5697b7b8e0ad4e06d68dd0ebc2c84bf9ac070bf6.png)
Collaboration diagram for lbcrypto::KeySwitchHYBRID:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="lbcrypto::KeySwitchHYBRID" tooltip="lbcrypto::KeySwitchHYBRID" fillcolor="#BFBFBF"]
"2" [label="lbcrypto::KeySwitchRNS" tooltip="lbcrypto::KeySwitchRNS"]
"3" [label="lbcrypto::KeySwitchBase< DCRTPoly >" tooltip="lbcrypto::KeySwitchBase< DCRTPoly >"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
"2" -> "3" [dir=forward tooltip="public-inheritance"]
}](../_images/graphviz-5697b7b8e0ad4e06d68dd0ebc2c84bf9ac070bf6.png)
Hybrid Keyswitching as described in [ Homomorphic Evaluation of the AES Circuit(GHS Scheme)](https://eprint.iacr.org/2012/099.pdf) Uses a mix of BV and GHS keyswitching for efficient key-switching.
Public Functions
-
KeySwitchHYBRID() = default
-
virtual ~KeySwitchHYBRID() = default
-
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 Ciphertext<DCRTPoly> KeySwitchExt(ConstCiphertext<DCRTPoly> ciphertext, bool addFirst) const override
-
virtual Ciphertext<DCRTPoly> KeySwitchDown(ConstCiphertext<DCRTPoly> ciphertext) const override
-
virtual DCRTPoly KeySwitchDownFirstElement(ConstCiphertext<DCRTPoly> ciphertext) 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
-
KeySwitchHYBRID() = default