Zamaがまとめた完全準同型暗号のリソース集。機密ブロックチェーンプロトコル、TFHE-rsライブラリ、論文、チュートリアルを網羅しています。
data61/MP-SPDZ
異なるセキュリティモデルに対応した多数の安全なマルチパーティ計算プロトコルを実行・ベンチマークするC++フレームワーク。
- スター
- 1,195
- フォーク
- 371
- 未解決の Issue
- 9
- 最終コミット
- 9 日前
これは何?
MP-SPDZは、複数の参加者が互いの入力を明かすことなく、秘密の入力に対して関数を共同で計算する安全なマルチパーティ計算(MPC)フレームワークです。主な目的は、同じ計算をさまざまなプロトコルで実行し、性能を比較できるようにすることです。対応するプロトコルは、不正参加者が過半数を占める場合と正直な参加者が過半数を占める場合の両方にわたり、半正直(受動的)から悪意ある(能動的)な不正まで、さまざまなセキュリティモデルを扱います。
プログラムはPython風の高水準言語で記述し、バイトコードにコンパイルした後、仮想マシンがネットワーク越しに実行します。実装では、素数または2のべき乗を法とする算術回路、バイナリ回路、Yaoの秘匿回路に対応しています。コンパイラは、秘密分散プロトコルにおける通信ラウンド数の最小化に重点を置いています。計算はローカル、SSH経由で複数のマシン上、またはDocker内で実行できます。
チュートリアルを含むサンプルプログラムと、Read the Docsで公開されているドキュメントが付属しています。READMEにはセキュリティレビューを受けていないと記載されており、本番利用ではなく研究やベンチマークを目的としています。
主な機能
- 01悪意ある参加者、半正直な参加者、正直な参加者が過半数を占める場合など、さまざまなセキュリティモデルに対応した多数のMPCプロトコルをサポート。
- 02Python風の高水準プログラムを仮想マシン用のバイトコードにコンパイル。
- 03素数または2^kを法とする算術回路、バイナリ回路、Yaoの秘匿回路に対応。
- 04ローカル、SSH経由のリモートホスト、Docker内で計算を実行。
- 05チュートリアルとMPCのサンプルプログラムを収録。
ユースケース
- 同じ計算を使って、異なるMPCプロトコルの性能をベンチマーク・比較。
- 安全な計算プロトコルとそのトレードオフに関する学術研究。
- 互いに共謀しない複数の参加者間で行うプライバシー保護計算のプロトタイピング。
クイックスタート
- 1
mascot-party.x バイナリ用の Docker イメージをビルドする
docker build --tag mpspdz:mascot-party --build-arg machine=mascot-party.x . - 2
2 つのパーティと悪意あるセキュリティ設定でチュートリアルプログラムを実行する
docker run --rm -it mpspdz:mascot-party ./Scripts/compile-run.py mascot tutorial
使う前に知っておきたいこと
- README には、このソフトウェアはセキュリティレビューを受けていないと記載されています。そのため、本番環境のシークレットにそのまま使用しないでください。
- メタデータからプロジェクトのライセンスを明確に特定できないため、再利用する前にリポジトリのライセンスを確認してください。
- ソースからビルドするには、動作する C++ ツールチェーンと複数のライブラリが必要です。Windows ユーザーには VirtualBox を使う回避策が案内されています。
トピック
よくある質問
- MP-SPDZ とは?
- 異なるセキュリティモデルに対応した多数の安全なマルチパーティ計算プロトコルを実行・ベンチマークするC++フレームワーク。 MP-SPDZは、複数の参加者が互いの入力を明かすことなく、秘密の入力に対して関数を共同で計算する安全なマルチパーティ計算(MPC)フレームワークです。主な目的は、同じ計算をさまざまなプロトコルで実行し、性能を比較できるようにすることです。対応するプロトコルは、不正参加者が過半数を占める場合と正直な参加者が過半数を占める場合の両方にわたり、半正直(受動的)から悪意ある(能動的)な不正まで、さまざまなセキュリティモデルを扱います。
- MP-SPDZ は無料で使えますか?ライセンスは?
- MP-SPDZ は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- MP-SPDZ は今もメンテナンスされていますか?
- 活発にメンテナンス中。MP-SPDZ の最終コミットは 2026年10月16日 です。
- MP-SPDZ は何に使えますか?
- 同じ計算を使って、異なるMPCプロトコルの性能をベンチマーク・比較。 安全な計算プロトコルとそのトレードオフに関する学術研究。 互いに共謀しない複数の参加者間で行うプライバシー保護計算のプロトタイピング。
- MP-SPDZ のインストール方法は?
- mascot-party.x バイナリ用の Docker イメージをビルドする: docker build --tag mpspdz:mascot-party --build-arg machine=mascot-party.x . 2 つのパーティと悪意あるセキュリティ設定でチュートリアルプログラムを実行する: docker run --rm -it mpspdz:mascot-party ./Scripts/compile-run.py mascot tutorial
- MP-SPDZ はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/data61/MP-SPDZ
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
閲覧回数や期限で失効するワンタイムリンクを使って、パスワード、メモ、ファイル、URLを共有できるオープンソースのWebアプリ。監査ログにも対応。
暗号化、エンコード、圧縮、ハッシュ計算、データ分析をブラウザー上で行えるWebアプリ。Cyber Swiss Army Knifeとも呼ばれます。
OpenSSLは、暗号ライブラリとopensslコマンドラインツールを備えた、TLS・DTLS・QUIC対応の汎用ツールキットです。
鍵や暗号名がなくても、複数層のエンコード・暗号化テキストを解析・復号するRust製CLI・ライブラリ。
ユーザー識別子を使わないエンドツーエンド暗号化メッセージングアプリとネットワーク。iOS、Android、デスクトップ、CLIに対応。