34 namespace PrivateRecommendationsDataPacking {
40 paillierCryptoProvider(paillierCryptoProvider),
41 dgkCryptoProvider(dgkCryptoProvider),
42 dgkComparisonClient(std::make_shared<
DgkComparisonClient>(paillierCryptoProvider, dgkCryptoProvider)) {
58 if (encryptedBucketsCount == emptyBuckets.size()) {
59 for (
size_t i = 0; i < emptyBuckets.size() - 1; ++i) {
60 this->
zi.emplace_back((plaintextZ % emptyBuckets[i + 1]) / emptyBuckets[i]);
62 this->
zi.emplace_back(plaintextZ / emptyBuckets[emptyBuckets.size() - 1]);
65 for (
size_t i = 0; i < encryptedBucketsCount; ++i) {
66 this->
zi.emplace_back((plaintextZ % emptyBuckets[i + 1]) / emptyBuckets[i]);
PaillierCiphertext Ciphertext
Provide public access to the T_Ciphertext type.
Implementation of the public-key DGK Cryptosystem.
Definition of class SecureComparisonServer.
void UnpackZ(const Paillier::Ciphertext &z, const std::deque< BigInteger > &emptyBuckets, const size_t encryptedBucketsCount)
Computes .
virtual BigInteger DecryptInteger(const Ciphertext &ciphertext) const
Decrypt number.
std::deque< BigInteger > zi
SecureComparisonClient(const Paillier &paillierCryptoProvider, const Dgk &dgkCryptoProvider)
Constructor.
const std::shared_ptr< DgkComparisonClient > dgkComparisonClient
A reference to the DgkComparisonClient.
void SetZi(const size_t i) const
Specifies which to send to the dgkComparisonClient for the current comparison.
const Paillier & paillierCryptoProvider
Reference to the Paillier crypto provider.
void SetServer(const std::shared_ptr< SecureComparisonServer > &secureComparisonServer)
Setter for this->secureComparisonServer.
Definition of class SecureComparisonClient.
Implementation of the public-key Paillier Cryptosystem.
const std::shared_ptr< DgkComparisonClient > & GetDgkComparisonClient() const
Getter for this->dgkComparisonClient.
std::shared_ptr< const SecureComparisonServer > secureComparisonServer
A reference to the SecureComparisonServer.
void DebugPaillierEncryption(const Paillier::Ciphertext &input) const
Decrypts and prints a Paillier encrypted integer.