Class MultipartyCKKSRNS

Inheritance Relationships

Base Type

Class Documentation

class lbcrypto::MultipartyCKKSRNS : public lbcrypto::MultipartyRNS

Inheritence diagram for lbcrypto::MultipartyCKKSRNS:

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

Collaboration diagram for lbcrypto::MultipartyCKKSRNS:

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

Public Functions

inline virtual ~MultipartyCKKSRNS()
virtual DecryptResult MultipartyDecryptFusion(const std::vector<Ciphertext<DCRTPoly>> &ciphertextVec, Poly *plaintext) const override

Threshold FHE: Method for combining the partially decrypted ciphertexts and getting the final decryption in the clear as a Poly.

Parameters
  • &ciphertextVec – vector of “partial” decryptions.

  • *plaintext – the plaintext output as a Poly.

Returns

the decoding result.

DecryptResult MultipartyDecryptFusion(const std::vector<Ciphertext<DCRTPoly>> &ciphertextVec, NativePoly *plaintext) const override
Ciphertext<DCRTPoly> IntMPBootAdjustScale(ConstCiphertext<DCRTPoly> ciphertext) const override
Ciphertext<DCRTPoly> IntMPBootRandomElementGen(std::shared_ptr<CryptoParametersCKKSRNS> params, const PublicKey<DCRTPoly> publicKey) const override
std::vector<Ciphertext<DCRTPoly>> IntMPBootDecrypt(const PrivateKey<DCRTPoly> privateKey, ConstCiphertext<DCRTPoly> ciphertext, ConstCiphertext<DCRTPoly> a) const override
std::vector<Ciphertext<DCRTPoly>> IntMPBootAdd(std::vector<std::vector<Ciphertext<DCRTPoly>>> &sharesPairVec) const override
Ciphertext<DCRTPoly> IntMPBootEncrypt(const PublicKey<DCRTPoly> publicKey, const std::vector<Ciphertext<DCRTPoly>> &sharesPair, ConstCiphertext<DCRTPoly> a, ConstCiphertext<DCRTPoly> ciphertext) const override
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 std::string SerializedObjectName() const