【ひみつけいさん】

秘密計算(MPC) とは?

最終更新:
💡 元の入力を見せず、共同で計算する

複数の参加者が、元の入力を互いに公開せず共同で計算する技術。秘密分散との関係、参加者への仮定、計算結果から分かる情報を解説します。

📌 このページのポイント
MPC:元の入力を見せずに共同計算参加者A自分の入力非公開参加者B自分の入力非公開参加者C自分の入力非公開計算用の情報を方式に従って交換合意した結果を、決めた相手へ例:複数の入力の合計参加者への仮定と、結果から分かる情報も確認
線は参加者間の計算用情報の交換、下の矢印は結果の公開をまとめた概念です。元の入力を中央のサーバーへ集める図ではありません。結託や不正への保証は方式の仮定に依存します。
ひよこ ひよこ
データを見せずに、一緒に計算できるの?
ペンギン先生 ペンギン先生
MPCは、それを目指す技術だよ。複数の参加者が自分の入力を持ち、合意した計算の結果を求める。元の入力を一か所に集めて、全員に見せてから計算する方式とは違うんだ。
ひよこ ひよこ
たとえば、どんな計算?
ペンギン先生 ペンギン先生
複数の組織が、それぞれの数値を直接公開せずに合計を求める例があるよ。誰にどの結果を公開するかも、あらかじめ決める。MPCを使えばどんな結果でも秘密を守れる、というわけではないんだ。
ひよこ ひよこ
秘密分散と同じもの?
ペンギン先生 ペンギン先生
秘密分散は、秘密をシェアと呼ぶ情報に分けて持つ技術で、MPCの多くの方式で使われるよ。シェアを使って計算し、必要な結果を求める。元の入力を全員で復元してから計算することが、MPCの基本ではないんだ。
ひよこ ひよこ
シェアが一つ漏れても、絶対大丈夫?
ペンギン先生 ペンギン先生
どの方式か、いくつ集まると復元できるか、参加者が結託するか等の条件で考えるよ。また、手順を守るけれど情報を探ろうとする参加者と、手順自体を破る参加者では、必要な対策が違う。方式の安全性の仮定を確認するんだ。
ひよこ ひよこ
MPCなら、情報は何も漏れない?
ペンギン先生 ペンギン先生
公開した結果から分かることは残るよ。たとえば2人の平均と自分の値が分かれば、相手の値を計算できる。計算中に元の入力を守ることと、結果の公開で分かる情報を管理することを分けて設計しよう。
もっと詳しく知りたい人へ

すべてのMPCで、秘密分散と準同型暗号と回路を一緒に使う?

いいえ。MPCには複数の構成があり、使う技術や効率、必要な通信は方式によります。秘密分散等は代表的な道具ですが、特定の三つの技術をすべて使うことを定義にはしません。

正しい結果を求められれば、入力自体も正しい?

合意した計算を正しく行うことと、参加者が現実の正しい値を入力することは別です。また、参加者の不正や途中離脱への保証は方式によります。入力の確認、結果の公開先、利用目的と運用上の権限も設計します。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「秘密計算(MPC)」って出てきたら「元の入力を互いに見せず、共同で結果を求める仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Secure Multi-Party Computation(MPC/SMPC)」 = 安全な複数者間計算
💬 ここでは複数の参加者による秘密計算を指します。暗号化したデータを扱う技術全般が、すべて同じMPCの方式というわけではありません。

参考資料

← 用語集にもどる