
Biblioteca de protocolos criptográficos que permite consultas de associação a conjuntos que preservam a privacidade, onde o servidor não aprende nem o identificador do cliente nem o resultado da consulta, utilizando criptografia homomórfica e cifras comutativas.
Pertença a Conjunto Privada (PSM) é um protocolo criptográfico que permite que clientes consultem privadamente se o identificador do cliente é membro de um conjunto de identificadores mantidos por um servidor, de forma a preservar a privacidade.
Em alto nível, o PSM fornece as seguintes garantias de privacidade:
A biblioteca Private Set Membership requer as seguintes dependências:
Abseil para bibliotecas comuns C++.
Bazel para construção da biblioteca.
BoringSSL para operações criptográficas subjacentes.
GFlag para flags. Necessário para usar glog.
GLog para registo (logging).
Google Test para teste unitário da biblioteca.
Protocol Buffers para serialização de dados.
Private Join and Compute para operações criptográficas e cifras comutativas.
Shell para criptografia totalmente homomórfica.
Tink para PRNGs criptográficos.
Para executar esta biblioteca, precisa de instalar o Bazel, se ainda não o tiver. Siga as instruções para a sua plataforma no site do Bazel. Certifique-se de que está a instalar a versão 9.1.0 ou superior.
Também precisa de instalar o Git, se ainda não o tiver. Siga as instruções para a sua plataforma no site do Git.
Depois de instalar o Bazel e o Git, abra um Terminal e clone o repositório para uma pasta local.
Navegue para a pasta private-membership que acabou de criar e construa a
biblioteca e dependências usando o Bazel. Nota: a biblioteca deve ser construída usando C++17.
cd private-membership
bazel build ... --cxxopt='-std=c++17'
Também pode executar todos os testes (recursivamente) usando o seguinte comando:
bazel test ... --cxxopt='-std=c++17'
Alternativamente, pode construir e testar este repositório usando Bazelisk para descarregar e usar automaticamente a versão do Bazel com a qual este código foi testado e verificado.
cd private-membership
bazelisk build ... --cxxopt='-std=c++17'
bazelisk test ... --cxxopt='-std=c++17'
Este não é um produto oficialmente suportado pela Google. O software é fornecido como está, sem garantias ou responsabilidades, expressas ou implícitas.