
Libreria di protocolli crittografici che consente query di appartenenza a un insieme che preservano la privacy, in cui il server non apprende né l'identificativo del client né il risultato della query, utilizzando crittografia omomorfica e cifrari commutativi.
L'Appartenenza Privata a un Insieme (PSM) è un protocollo crittografico che consente ai client di interrogare privatamente se l'identificatore del client è membro di un insieme di identificatori detenuti da un server in modo che preservi la privacy.
Ad alto livello, PSM fornisce le seguenti garanzie di privacy:
La libreria Private Set Membership richiede le seguenti dipendenze:
Abseil per librerie comuni C++.
Bazel per la compilazione della libreria.
BoringSSL per le operazioni crittografiche sottostanti.
GFlag per i flag. Necessario per usare glog.
GLog per la registrazione.
Google Test per i test unitari della libreria.
Protocol Buffers per la serializzazione dei dati.
Private Join and Compute per operazioni crittografiche e cifrari commutativi.
Shell per la crittografia completamente omomorfica.
Tink per i PRNG crittografici.
Per eseguire questa libreria, è necessario installare Bazel, se non lo si ha già. Segui le istruzioni per la tua piattaforma sul sito web di Bazel. Assicurati di installare la versione 9.1.0 o successiva.
È inoltre necessario installare Git, se non lo si ha già. Segui le istruzioni per la tua piattaforma sul sito web di Git.
Una volta installati Bazel e Git, apri un Terminale e clona il repository in una cartella locale.
Naviga nella cartella private-membership che hai appena creato e compila la
libreria e le dipendenze usando Bazel. Nota: la libreria deve essere compilata usando C++17.
cd private-membership
bazel build ... --cxxopt='-std=c++17'
Puoi anche eseguire tutti i test (ricorsivamente) usando il seguente comando:
bazel test ... --cxxopt='-std=c++17'
In alternativa, puoi compilare e testare questo repository usando Bazelisk per scaricare e utilizzare automaticamente la versione di Bazel con cui questo codice è stato testato e verificato.
cd private-membership
bazelisk build ... --cxxopt='-std=c++17'
bazelisk test ... --cxxopt='-std=c++17'
Questo non è un prodotto Google ufficialmente supportato. Il software viene fornito così com'è senza alcuna garanzia o promessa, espressa o implicita.