34 namespace PrivateRecommendationsUtils {
46 paillierCryptoProvider(paillierCryptoProvider),
47 dgkCryptoProvider(dgkCryptoProvider),
48 l(Utils::Config::GetInstance().GetParameter<size_t>(configurationPath +
".l")),
49 minusThreshold(paillierCryptoProvider.GetEncryptedZero(false)),
50 twoPowL(BigInteger(2).GetPow(static_cast<unsigned long>(l))),
51 encryptedTwoPowL(paillierCryptoProvider.EncryptInteger(twoPowL)),
53 dgkComparisonServer(std::make_shared<
DgkComparisonServer>(paillierCryptoProvider, dgkCryptoProvider, l)) {
65 paillierCryptoProvider(paillierCryptoProvider),
66 dgkCryptoProvider(dgkCryptoProvider),
67 l(Utils::Config::GetInstance().GetParameter<size_t>(configurationPath +
".l")),
68 minusThreshold(paillierCryptoProvider.EncryptInteger(-similarityTreshold)),
69 twoPowL(BigInteger(2).GetPow(static_cast<unsigned long>(l))),
70 encryptedTwoPowL(paillierCryptoProvider.EncryptInteger(twoPowL)),
72 dgkComparisonServer(std::make_shared<
DgkComparisonServer>(paillierCryptoProvider, dgkCryptoProvider, l)) {
PaillierCiphertext Ciphertext
Provide public access to the T_Ciphertext type.
Implementation of the public-key DGK Cryptosystem.
const std::shared_ptr< DgkComparisonServer > dgkComparisonServer
A reference to the DgkComparisonServer.
T_CryptoProvider::Ciphertext encryptedR
void SetClient(const std::shared_ptr< SecureComparisonClient > &secureComparisonClient)
Setter for this->secureComparisonClient.
Paillier::Ciphertext encryptedTwoPowL
const std::shared_ptr< DgkComparisonServer > & GetDgkComparisonServer() const
Getter for this->dgkComparisonServer.
T_CryptoProvider::Ciphertext encryptedRDivTwoPowL
Paillier::Ciphertext Compare(const Paillier::Ciphertext &a, const Paillier::Ciphertext &b)
Interactive secure comparison of two encrypted values (for generic applications)
Paillier::Ciphertext compare(const Paillier::Ciphertext &a, const Paillier::Ciphertext &minusB)
Interactive secure comparison implementation.
Stores precomputed random data.
SecureComparisonServer(const Paillier &paillierCryptoProvider, const Dgk &dgkCryptoProvider, const std::string &configurationPath)
Constructor for Compare(a, b)
Definition of class SecureComparisonServer.
Implementation of the public-key Paillier Cryptosystem.
std::weak_ptr< const SecureComparisonClient > secureComparisonClient
A reference to the SecureComparisonClient.
RandomizerCache< BlindingFactorContainer > blindingFactorCache
Blinding factor cache instance.
Definition of class SecureComparisonClient.
Comparison blinding factor cache parameter container struct.
Paillier::Ciphertext minusThreshold
(scaled value)