秘密計算 / MPC
入力を秘匿したまま複数者で関数を計算する技術の総称。準同型暗号・TEE と並ぶ秘密計算の三本柱の一つで、特に秘密分散ベースの multi-party computation (MPC) を指す。
構成要素
- 秘密分散 (Secret Sharing): 値を複数のシェアに分け、閾値以上集めないと復元できない。Shamir の秘密分散 (SSS) は多項式補間に基づく。PW 付き秘密分散などの拡張もある。
- Oblivious Transfer (OT, 紛失通信): 送信者は受信者がどの値を選んだか分からず、受信者は選んだ値しか得られない。MPC の基本部品。
- Garbled Circuit (GC): 関数を暗号化した真理値表(garbled)として評価。OT と疑似ランダム関数で実現。2 者間計算の古典手法。
- SPDZ: 加法的秘密分散+ Beaver’s Trick。前処理フェーズで SHE を使い乗算用の補助値を用意し、オンラインフェーズは軽い通信で済む(preprocessing model)。 人が不正でも安全。
安全性モデル
- Semi-Honest Model(honest-but-curious): プロトコルには従うが盗み見る敵。多くの実用システムが想定。
- Malicious Model: プロトコルから逸脱する敵。より強い安全性が必要。
詳細な攻撃モデルの分類は cryptographic-security-models を参照。
FHE との対比
MPC は特殊関数も扱える反面、関数を回路に落として複数サーバ間で通信するため通信・計算量が増える。FHE は単一サーバで完結するが非線形が苦手。両者を使い分けるのが PPML の設計。
関連クラスタ: _moc-crypto