29 #ifndef CLIENT_HEADER_GUARD
30 #define CLIENT_HEADER_GUARD
53 using namespace PrivateRecommendationsUtils;
56 #define FIRST_USER_ONLY
58 namespace PrivateRecommendationsDataPacking {
66 Client (
const std::shared_ptr<ServiceProvider> &serviceProvider,
const std::shared_ptr<PrivacyServiceProvider> &privacyServiceProvider,
const PaillierPublicKey &publicKey);
78 void ComputeRecommendations ();
142 std::deque<BigInteger> computeEmptyBuckets (
const size_t L)
const;
145 ServiceProvider::PackedData packUserSparseRatings (
const std::deque<unsigned long> &userPlaintextSparseRatings,
const std::deque<BigInteger> &userEmptyBuckets)
const;
156 #endif//CLIENT_HEADER_GUARD
std::deque< BigInteger > emptyBuckets
Empty buckets , where is the bit size of the ratings.
RandomizerCache< BlindingFactorContainer > URSumDecryptionBlindingFactorCache
decryption blinding factor cache instance
RandomizerCache< BlindingFactorContainer > LdecryptionBlindingFactorCache
decryption blinding factor cache instance
~Client()
Destructor - void implementation.
unsigned int digitsToPreserve
Number of digits preserved from the normalized user ratings.
Definition of template class RandomizerCache.
std::deque< EncryptedUserData > EncryptedUserDataContainer
Container for encrypted user data.
Definition of struct BlindingFactorCacheParameters.
Definition of class Config.
size_t hatL
The upper bound of most similar users ( )
const std::shared_ptr< ServiceProvider > serviceProvider
A reference to the ServiceProvider.
Stores precomputed random data.
const std::shared_ptr< PrivacyServiceProvider > privacyServiceProvider
A reference to the PrivacyServiceProvider.
static const std::string configurationPath
Service Provider configuration path.
std::deque< std::deque< unsigned long > > plaintextSparseRatings
size_t scaledNormalizedRatingBitSize
k - The size of the scaled normalized ratings (in bits)
std::deque< PackedData > PackedItems
Packed items.
Definition of struct DecryptionBlindingFactorContainer.
Definition of class DateTime.
size_t kappa
The security parameter for the secure comparison protocol (in bits)
Implementation of the public-key Paillier Cryptosystem.
size_t denselyRatedItemCount
Number of densely rated items.
std::string ratingsFilePath
The path to the file containing precomputed ratings.
Definition of class CpuTimer.
DecryptionBlindingFactorContainer< Paillier, BlindingFactorCacheParameters > BlindingFactorContainer
Alias for the blinding factor container.
Definition of class PrivacyServiceProvider.
std::deque< Paillier::Ciphertext > PackedData
Packed data.
Definition of class Paillier.
Definition of class ServiceProvider.
ServiceProvider::PackedItems sparseRatings
ServiceProvider::EncryptedUserDataContainer normalizedScaledRatings
size_t itemCount
Number of ratings per user.
size_t userCount
Number of users who need recommendations.
Paillier paillierCryptoProvider
Paillier crypto provider.
The public key container structure for the Paillier cryptosystem.
size_t ratingBitSize
The size of the user ratings (in bits)