秘密計算手法を比較!準同型暗号と秘密分散型MPC(マルチパーティ計算)は何が違うのか?
2020.08.05
2022.10.03
はじめに
従来の技術では、通常時に暗号化してセキュリティ上の安全性を高めているとしても、データの利活用時には、元のデータの状態に戻さなければなりません。そのため、漏えいなどのリスクが課題として残っていました。
これに対して、秘密計算技術を用いると、データの統計処理、機械学習などの分析時にデータを秘匿したままの状態で扱えるため、セキュリティ水準を飛躍的に高くすることが可能となります。秘密計算技術とは、簡単に言えば、データを暗号化したままの状態で計算を行う技術のことです。
中でも、以下の2つの手法は秘密計算技術の代表的なものであり、世界中で活発に研究が行われています。
- 準同型暗号
- 秘密分散型のMPC(マルチパーティ計算)
準同型暗号とは
鍵を用いて暗号化されたデータに対してある種の演算を行うことができ、さらにそれを復号したものは元々のデータの演算結果となっている暗号を用いて行う秘密計算のことを準同型暗号ベースの秘密計算といいます。
準同型暗号を用いた演算では、暗号化したまま演算結果を得ることができるため、サーバにおける復号を行うことなく計算結果が得られます。
これにより元データの状態でサーバに保存されることがなくなるため、情報漏洩のリスクが低くなります。
しかし、準同型暗号ベースの秘密計算には、計算時間のオーバーヘッドが大きいというデメリットもあります。この原因としては、暗号化した状態で発生してしまうノイズを除去するために多くの計算を要することが挙げられます。
この技術はゲノム解析などの分野への応用が期待されています。
秘密分散型のMPC(マルチパーティ計算)とは
データを分割し、物理的に情報を隔離した状態で計算を行うことで、データの秘匿性を担保する秘密計算の手法を秘密分散ベースの秘密計算(セキュアマルチパーティ計算、単にマルチパーティ計算と呼ぶことも多い)といいます。
この秘密計算ではマルチパーティ計算という計算手法と、秘密分散という秘匿手法を用います。
まず、マルチパーティ計算(Multi-party computation)とは、複数のサーバ間で通信を行いながら同じ計算を同時に行う仕組みです。
この仕組みでは常にサーバ間で通信(ピアツーピア通信)を行い、同じアルゴリズムを使用して計算を行います。このため、計算速度が一台での計算に比べて落ちてしまうというデメリットが存在しているのですが、その一方でデータの安全性を高められるというメリットも存在しています。
そして、秘密分散とは、元のデータをいくつかの断片情報に分割することによってデータを無意味化する手法です。
断片化されたデータの単体からは元のデータ情報がわからないようになっており、他者に断片の一部分が漏洩してしまった場合でもデータの中身を知られてしまうことはありません。
また、複数のデータを集めることで元のデータを復元可能であり、復元に必要なデータの個数も調整することができます。
この二つの手法を用いたセキュアマルチパーティ計算(以下、マルチパーティ計算)の秘密計算は以下の手順で行われます。
- まず、対象となるデータを秘密分散を用いて断片化、無意味化を行います。
- 断片化したデータを別々の計算を行うサーバに送信します。
- 各断片は、それぞれのサーバで同じ計算をMPCを用いて実行することで、分析断片となります。
- この分析断片を集め、分析の結果を復号します。
この手法を用いることによってデータの中身を保護したまま安全にデータ解析を行うことができます。
主に企業間のデータ分析に利用されています。
両者の違い

まとめ
秘密計算の代表的な手法として、「準同型暗号」と「秘密分散型MPC」が存在しています。
これらの秘密計算技術を用いることより、元データの状態でデータがサーバに保存されることがなくなるため、情報漏洩のリスクが低くなります。
どちらの技術も社会実装に向けて、国内でもAcompanyを始め、研究開発が進んでいます。
- 準同型暗号とは、与えられた情報を暗号化したまま計算しても、それを複合すれば元の情報の計算結果が得られる、という暗号化の仕組みのこと。
- 秘密分散とは、元のデータをいくつかの断片情報に分割し、データを無意味化する仕組みのこと。
- マルチパーティ計算(MPC)は、複数のサーバー間で通信を行いながら、同じ計算を同時に行うという仕組みのこと。
- 準同型暗号の秘密計算は暗号を用いるのみで導入しやすいが、計算コストが高い。
- 秘密分散+マルチパーティ計算の秘密計算はシステムのアーキテクチャの構築が難しいが、データ解析などには実用的である