私有集合成员关系 (PSM) 是一种密码学协议,允许客户端以隐私保护的方式私密地查询其标识符是否属于服务器持有的标识符集合。
从高层次来看,PSM 提供以下隐私保证:
Private Set Membership 库需要以下依赖项:
Abseil 用于 C++ 公共库。
Bazel 用于构建库。
BoringSSL 用于底层密码学操作。
GFlag 用于标志。使用 glog 时需要。
GLog 用于日志记录。
Google Test 用于库的单元测试。
Protocol Buffers 用于数据序列化。
Private Join and Compute 用于密码学操作和交换密码。
Shell 用于全同态加密。
Tink 用于密码学 PRNG。
要运行此库,你需要安装 Bazel(如果尚未安装)。 请根据 Bazel 网站上的说明为你的平台进行安装。确保你安装的版本是 9.1.0 或更高。
你还需要安装 Git(如果尚未安装)。 请根据 Git 网站上的说明为你的平台进行安装。
安装好 Bazel 和 Git 后,打开终端并将仓库克隆到本地文件夹。
进入你刚刚创建的 private-membership 文件夹,并使用 Bazel 构建库及其依赖项。注意,必须使用 C++17 构建此库。
cd private-membership
bazel build ... --cxxopt='-std=c++17'
你也可以使用以下命令(递归地)运行所有测试:
bazel test ... --cxxopt='-std=c++17'
或者,你可以使用 Bazelisk 来构建和测试此仓库,它会自动下载并使用经过验证的 Bazel 版本(此代码已在该版本下测试过)。
cd private-membership
bazelisk build ... --cxxopt='-std=c++17'
bazelisk test ... --cxxopt='-std=c++17'
这不是谷歌官方支持的产品。本软件按“原样”提供,不附带任何明示或暗示的保证或担保。