
Bibliothèque de protocole cryptographique permettant des requêtes d'appartenance à un ensemble préservant la vie privée, où le serveur n'apprend ni l'identifiant du client ni le résultat de la requête, en utilisant le chiffrement homomorphe et des chiffrements commutatifs.
L'appartenance à un ensemble privé (PSM) est un protocole cryptographique qui permet aux clients d'interroger de manière privée si l'identifiant du client est membre d'un ensemble d'identifiants détenus par un serveur de manière à préserver la vie privée.
À un niveau élevé, PSM offre les garanties de confidentialité suivantes :
La bibliothèque Private Set Membership nécessite les dépendances suivantes :
Abseil pour les bibliothèques communes C++.
Bazel pour la construction de la bibliothèque.
BoringSSL pour les opérations cryptographiques sous-jacentes.
GFlag pour les drapeaux. Nécessaire pour utiliser glog.
GLog pour la journalisation.
Google Test pour les tests unitaires de la bibliothèque.
Protocol Buffers pour la sérialisation des données.
Private Join and Compute pour les opérations cryptographiques et les chiffrements commutatifs.
Shell pour le chiffrement complètement homomorphe.
Tink pour les PRNG cryptographiques.
Pour exécuter cette bibliothèque, vous devez installer Bazel, si ce n'est pas déjà fait. Suivez les instructions pour votre plateforme sur le site Web de Bazel. Assurez-vous d'installer la version 9.1.0 ou supérieure.
Vous devez également installer Git, si ce n'est pas déjà fait. Suivez les instructions pour votre plateforme sur le site Web de Git.
Une fois que vous avez installé Bazel et Git, ouvrez un terminal et clonez le dépôt dans un dossier local.
Naviguez dans le dossier private-membership que vous venez de créer, et construisez la
bibliothèque et les dépendances en utilisant Bazel. Notez que la bibliothèque doit être construite avec C++17.
cd private-membership
bazel build ... --cxxopt='-std=c++17'
Vous pouvez également exécuter tous les tests (récursivement) en utilisant la commande suivante :
bazel test ... --cxxopt='-std=c++17'
Alternativement, vous pouvez construire et tester ce dépôt en utilisant Bazelisk pour télécharger et utiliser automatiquement la version de Bazel avec laquelle ce code a été testé et vérifié.
cd private-membership
bazelisk build ... --cxxopt='-std=c++17'
bazelisk test ... --cxxopt='-std=c++17'
Ceci n'est pas un produit officiellement supporté par Google. Le logiciel est fourni tel quel, sans aucune garantie, explicite ou implicite.