【ひみつけいさん】
秘密計算(MPC) とは?
最終更新:
💡 元の入力を見せず、共同で計算する
複数の参加者が、元の入力を互いに公開せず共同で計算する技術。秘密分散との関係、参加者への仮定、計算結果から分かる情報を解説します。
📌 このページのポイント
- 複数の参加者の入力から、合意した結果を共同で求める
- 元の入力を集めて公開する計算とは異なる
- 秘密分散や暗号等を使うが、方式は一つではない
- 守れる範囲は、参加者への仮定と公開する結果にも依存する
データを見せずに、一緒に計算できるの?
MPCは、それを目指す技術だよ。複数の参加者が自分の入力を持ち、合意した計算の結果を求める。元の入力を一か所に集めて、全員に見せてから計算する方式とは違うんだ。
たとえば、どんな計算?
複数の組織が、それぞれの数値を直接公開せずに合計を求める例があるよ。誰にどの結果を公開するかも、あらかじめ決める。MPCを使えばどんな結果でも秘密を守れる、というわけではないんだ。
秘密分散と同じもの?
秘密分散は、秘密をシェアと呼ぶ情報に分けて持つ技術で、MPCの多くの方式で使われるよ。シェアを使って計算し、必要な結果を求める。元の入力を全員で復元してから計算することが、MPCの基本ではないんだ。
シェアが一つ漏れても、絶対大丈夫?
どの方式か、いくつ集まると復元できるか、参加者が結託するか等の条件で考えるよ。また、手順を守るけれど情報を探ろうとする参加者と、手順自体を破る参加者では、必要な対策が違う。方式の安全性の仮定を確認するんだ。
MPCなら、情報は何も漏れない?
公開した結果から分かることは残るよ。たとえば2人の平均と自分の値が分かれば、相手の値を計算できる。計算中に元の入力を守ることと、結果の公開で分かる情報を管理することを分けて設計しよう。
もっと詳しく知りたい人へ
すべてのMPCで、秘密分散と準同型暗号と回路を一緒に使う?
いいえ。MPCには複数の構成があり、使う技術や効率、必要な通信は方式によります。秘密分散等は代表的な道具ですが、特定の三つの技術をすべて使うことを定義にはしません。
正しい結果を求められれば、入力自体も正しい?
合意した計算を正しく行うことと、参加者が現実の正しい値を入力することは別です。また、参加者の不正や途中離脱への保証は方式によります。入力の確認、結果の公開先、利用目的と運用上の権限も設計します。
まとめ:ざっくりこれだけ覚えればOK!
「秘密計算(MPC)」って出てきたら「元の入力を互いに見せず、共同で結果を求める仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Secure Multi-Party Computation(MPC/SMPC)」 = 安全な複数者間計算
💬 ここでは複数の参加者による秘密計算を指します。暗号化したデータを扱う技術全般が、すべて同じMPCの方式というわけではありません。