
Biblioteca de protocolos criptográficos que permite consultas de pertenencia a conjuntos que preservan la privacidad, donde el servidor no conoce ni el identificador del cliente ni el resultado de la consulta, utilizando cifrado homomórfico y cifrados conmutativos.
Pertenencia a Conjuntos Privados (PSM) es un protocolo criptográfico que permite a los clientes consultar de forma privada si el identificador del cliente es miembro de un conjunto de identificadores mantenido por un servidor de manera que preserve la privacidad.
A alto nivel, PSM proporciona las siguientes garantías de privacidad:
La biblioteca de Pertenencia a Conjuntos Privados requiere las siguientes dependencias:
Abseil para bibliotecas comunes de C++.
Bazel para construir la biblioteca.
BoringSSL para operaciones criptográficas subyacentes.
GFlag para flags. Necesario para usar glog.
GLog para registro.
Google Test para pruebas unitarias de la biblioteca.
Protocol Buffers para serialización de datos.
Private Join and Compute para operaciones criptográficas y cifrados conmutativos.
Shell para cifrado completamente homomórfico.
Tink para PRNG criptográficos.
Para ejecutar esta biblioteca, necesitas instalar Bazel, si aún no lo tienes. Sigue las instrucciones para tu plataforma en el sitio web de Bazel. Asegúrate de instalar la versión 9.1.0 o superior.
También necesitas instalar Git, si aún no lo tienes. Sigue las instrucciones para tu plataforma en el sitio web de Git.
Una vez que hayas instalado Bazel y Git, abre una terminal y clona el repositorio en una carpeta local.
Navega a la carpeta private-membership que acabas de crear y construye la
biblioteca y las dependencias usando Bazel. Nota: la biblioteca debe construirse usando C++17.
cd private-membership
bazel build ... --cxxopt='-std=c++17'
También puedes ejecutar todas las pruebas (de forma recursiva) usando el siguiente comando:
bazel test ... --cxxopt='-std=c++17'
Alternativamente, puedes construir y probar este repositorio usando Bazelisk para descargar y usar automáticamente la versión de Bazel con la que este código fue probado y verificado.
cd private-membership
bazelisk build ... --cxxopt='-std=c++17'
bazelisk test ... --cxxopt='-std=c++17'
Este no es un producto oficialmente respaldado por Google. El software se proporciona tal cual, sin ninguna garantía expresa o implícita.