データ活用社会を加速するプライバシー技術!「秘密計算」の方式とその仕組み
秘密計算の振り返り
秘密計算とは「データを暗号化したまま計算するプライバシー保護技術」です。秘密計算では、データを保持する側がデータを暗号化した上で、分析・計算する側へ渡します。分析の過程では、暗号化が一度も解かれることなく、データの中身が分からない状態で計算され、計算結果のみが出力されます。従来、暗号化して保存しているデータも分析の際は必ず復号する必要がありましたが、秘密計算を活用すれば復号せず分析することができ、よりセキュリティレベルが向上します。
秘密計算の方式
秘密計算には実現方法として複数の方式が存在します。その中でも、代表的なものとして- 完全準同型暗号ベースの秘密計算
- MPCベースの秘密計算(MPC=Multi-Party Computation)
1.完全準同型暗号ベースの秘密計算
一つ目の方式として完全準同型暗号を利用した方式があげられます。準同型暗号とは、上述の秘密計算の概念をそのまま具現化した、データを暗号化したまま計算処理が可能な暗号方式です。その中でも特に、任意の計算処理が可能なものを完全準同型暗号と呼び、この暗号方式を活用すれば様々な秘密計算を実現することができます。 下記の図は、複数のデータオーナーがそれぞれ保持するデータを掛け合わせて計算する例です。完全準同型暗号を用いれば、暗号化した上でデータを共有し計算するため、個別のデータの中身を誰にも知られることなく計算結果だけを出力することができます。
2.MPCベースの秘密計算
もう一つの方式としてMPCを利用した方式があります。MPCとはMulti-Party Computationの略で秘密分散を利用した秘密計算です。秘密分散とは暗号技術の一つであり、データを断片化して複数に分散することで秘匿性を高める技術です。複数に秘密分散された断片データ(シェアと呼ばれる)の一つ一つは意味のないデータになっており、このシェア一つだけを盗んで中を見ても何も分かりませんし、元データを推測することもできません。元データを復元するには、指定した個数以上のシェアを集める必要があります。MPCにおいては、元データを秘密分散によって複数のサーバに分散した後サーバ間で通信をしながら計算を行い、それぞれのサーバが計算した結果を集めることで初めて計算結果を復元することができます。
MPCベースの秘密計算がどのように実行されるのか
MPCベースの秘密計算は、実際は複雑なアルゴリズムによって実現されますが、ここでは簡易化した例を用いてどのように計算が実行されるのかを説明します。 例として、3者がそれぞれ保持する3つの数値を、お互いに知られないまま合計を計算する例を考えてみましょう。まずは下記の図のように、3者がそれぞれ保持する元の数値をランダムに2つの数値に分割し、2台のサーバーに分散して配置します。このとき、分割後の数値はランダムに決まるため、片方のサーバーに配置された数値が漏洩したり、悪意のある攻撃者によって盗難されたりしても、元の数値が何だったのかの情報が漏れることはありません。

まとめ
本記事では、秘密計算の代表的な方式である完全準同型暗号ベースとMPCベースの二つの方式について紹介しました。特にMPCベースの秘密計算は、計算速度が比較的速く、また近年はアルゴリズムの改善によりさらに処理速度が向上してきています。これに伴い、適用できるユースケースの幅が今後広がっていくと考えられます。このような背景から、我々は特にMPCベースの秘密計算に着目し、この技術が世の中のデータ活用に大きなブレイクスルーを起こすと考え、社会実装・事業化に向けて継続的に活動しています。
<本記事に関するお問い合わせ>
NRIデジタル株式会社 担当 安増・中島・西原・板橋 mpc@nri-digital.jp