
サーバーがクライアントの識別子もクエリ結果も学習しない、準同型暗号と可換暗号を使用したプライバシー保護の集合帰属クエリを可能にする暗号プロトコルライブラリ
プライベート集合メンバーシップ (PSM) は、クライアントが自分の識別子がサーバーが保持する識別子集合のメンバーであるかどうかを、プライバシーを保護しながらプライベートに問い合わせることができる暗号プロトコルです。
高いレベルでは、PSM は次のプライバシー保証を提供します:
Private Set Membership ライブラリには以下の依存関係が必要です:
Abseil for C++ common libraries.
Bazel for building the library.
BoringSSL for underlying cryptographic operations.
GFlag for flags. Needed to use glog.
GLog for logging.
Google Test for unit testing the library.
Protocol Buffers for data serialization.
Private Join and Compute for cryptographic operations and commutative ciphers.
Shell for fully homomorphic encryption.
Tink for cryptographic PRNGs.
このライブラリを実行するには、まだインストールしていなければ 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 を使用してこのリポジトリをビルドおよびテストすることもできます。Bazelisk は、このコードがテストおよび検証された Bazel のバージョンを自動的にダウンロードして使用します。
cd private-membership
bazelisk build ... --cxxopt='-std=c++17'
bazelisk test ... --cxxopt='-std=c++17'
これは Google の公式サポート製品ではありません。本ソフトウェアは現状のまま提供され、明示または黙示の保証は一切ありません。