SMPC(えすえむぴーしー)
最終更新:2026/4/25
SMPCは、複数の当事者間で秘密のまま計算を実行するための暗号プロトコルである。
ポイント
SMPCを用いることで、各当事者は自身の秘密データを公開することなく、共同で計算結果を得ることが可能となる。プライバシー保護に重点を置いた技術。
SMPCとは
SMPC(Secure Multi-Party Computation:安全な多者計算)は、複数の参加者がそれぞれ秘密の入力データを持っており、それらのデータを互いに開示することなく、それらの入力データを用いた関数を共同で計算する技術です。計算結果のみが明らかになり、個々の入力データは秘匿されます。
歴史
SMPCの概念は1980年代に遡り、ヤオ(Yao)の「millionaires’ problem」(富豪問題)の解決がその起源とされています。富豪問題とは、複数の富豪がそれぞれ自分の収入を互いに知られることなく、誰が最も裕福であるかを決定したいという問題です。その後、ゴールドワッサー、ミカル、ヤオらによって、より一般的なSMPCプロトコルが開発されました。
技術的な仕組み
SMPCは、様々な暗号技術を組み合わせることで実現されます。代表的な技術としては、秘密分散、同型暗号、ゼロ知識証明などがあります。秘密分散は、秘密データを複数の断片に分割し、それらを複数の参加者に分散することで、単一の参加者だけでは秘密データを復元できないようにする技術です。同型暗号は、暗号化されたデータに対して計算を行い、その結果を復号化すると、平文データに対して計算を行った結果と同じになるという性質を持つ暗号方式です。ゼロ知識証明は、ある命題が真であることを、その命題に関する情報を一切開示することなく証明する技術です。
用途
SMPCは、プライバシー保護が重要な様々な分野での応用が期待されています。例えば、
- 統計調査: 個人情報を保護しながら、統計的な分析を行う。
- 機械学習: 複数の機関が持つデータを統合して機械学習モデルを構築する際に、各機関のデータを秘匿する。
- オークション: 入札額を秘匿しながら、オークションを実施する。
- サプライチェーン管理: サプライチェーン上の各企業が、互いの情報を開示することなく、共同で最適化を行う。
課題
SMPCは、非常に強力な技術ですが、いくつかの課題も存在します。例えば、計算コストが高い、プロトコルの実装が複雑である、参加者間の信頼関係が必要であるなどが挙げられます。これらの課題を克服するために、現在も様々な研究開発が進められています。