SPECIALIST

多様な専門性を持つNRIデジタル社員のコラム、インタビューやインサイトをご紹介します。

BACK

データ活用社会を加速するプライバシー技術!「秘密計算」の方式とその仕組み

こんにちは。NRIデジタルの西原です。 1月に公開した「プライバシーテックでデータ活用社会を加速! プライバシーとデータ活用を両立する「秘密計算技術」とは?」では、私たちが注目している秘密計算というプライバシー技術の概要とその可能性について紹介しました。本記事では、秘密計算の実現方式とその仕組みについてご紹介します。

秘密計算の振り返り

秘密計算とは「データを暗号化したまま計算するプライバシー保護技術」です。秘密計算では、データを保持する側がデータを暗号化した上で、分析・計算する側へ渡します。分析の過程では、暗号化が一度も解かれることなく、データの中身が分からない状態で計算され、計算結果のみが出力されます。従来、暗号化して保存しているデータも分析の際は必ず復号する必要がありましたが、秘密計算を活用すれば復号せず分析することができ、よりセキュリティレベルが向上します。 秘密計算を活用すれば、生データを秘匿化して実際の値を見ることなく計算・分析できるようになり、企業はよりデータを収集・共有しやすくなります。秘密計算によって企業のデータ活用が促進されると我々は考えています。

秘密計算の方式

秘密計算には実現方法として複数の方式が存在します。その中でも、代表的なものとして
  • 完全準同型暗号ベースの秘密計算
  • MPCベースの秘密計算(MPC=Multi-Party Computation)
の二つがあげられます。これら二つの方式について簡単に説明します。

1.完全準同型暗号ベースの秘密計算

一つ目の方式として完全準同型暗号を利用した方式があげられます。準同型暗号とは、上述の秘密計算の概念をそのまま具現化した、データを暗号化したまま計算処理が可能な暗号方式です。その中でも特に、任意の計算処理が可能なものを完全準同型暗号と呼び、この暗号方式を活用すれば様々な秘密計算を実現することができます。 下記の図は、複数のデータオーナーがそれぞれ保持するデータを掛け合わせて計算する例です。完全準同型暗号を用いれば、暗号化した上でデータを共有し計算するため、個別のデータの中身を誰にも知られることなく計算結果だけを出力することができます。 完全準同型暗号ベースの秘密計算については、これまでにいくつかの具体的な完全準同型暗号の提案がなされており、これらを利用することで秘密計算を実現できるため、シンプルでわかりやすく構築しやすいという利点があります。一方で計算実行時のコストが大きく、複雑な計算処理を実行しようとすると計算量が膨大になり、現実的でない計算時間になりうるという難点があります。

2.MPCベースの秘密計算

もう一つの方式としてMPCを利用した方式があります。MPCとはMulti-Party Computationの略で秘密分散を利用した秘密計算です。秘密分散とは暗号技術の一つであり、データを断片化して複数に分散することで秘匿性を高める技術です。複数に秘密分散された断片データ(シェアと呼ばれる)の一つ一つは意味のないデータになっており、このシェア一つだけを盗んで中を見ても何も分かりませんし、元データを推測することもできません。元データを復元するには、指定した個数以上のシェアを集める必要があります。MPCにおいては、元データを秘密分散によって複数のサーバに分散した後サーバ間で通信をしながら計算を行い、それぞれのサーバが計算した結果を集めることで初めて計算結果を復元することができます。 MPCベースの秘密計算は、構成やアルゴリズムが複雑で構築が難しいという難点があります。一方で、完全準同型暗号ベースの秘密計算と比べると、一般的には計算の実行速度が格段に速いという特徴があり、また、近年アルゴリズムの改善によりさらなる速度向上がなされています。社会実装のネックであった計算速度の改善により、MPCベースの秘密計算を適用できるユースケースは今後増えていくと考えられます。 私たちはこのMPCベースの秘密計算をメインターゲットとして技術調査やユースケースの検討を行っています。

MPCベースの秘密計算がどのように実行されるのか

MPCベースの秘密計算は、実際は複雑なアルゴリズムによって実現されますが、ここでは簡易化した例を用いてどのように計算が実行されるのかを説明します。 例として、3者がそれぞれ保持する3つの数値を、お互いに知られないまま合計を計算する例を考えてみましょう。まずは下記の図のように、3者がそれぞれ保持する元の数値をランダムに2つの数値に分割し、2台のサーバーに分散して配置します。このとき、分割後の数値はランダムに決まるため、片方のサーバーに配置された数値が漏洩したり、悪意のある攻撃者によって盗難されたりしても、元の数値が何だったのかの情報が漏れることはありません。 そのあと、それぞれのサーバーで個別に足し算を実行します。もちろんそれぞれのサーバーで計算した計算結果についても、それ単体では元の数値を推測できません。最後に、それぞれのサーバーで計算した数値を取得して足し合わせれば、お互いの数値を知ることなく、最終的な計算結果のみを得ることができます。 上記の例はとても簡易的なものですが、実際のMPCベースの秘密計算でも、この例と同様に複数のサーバーに数値を分散して秘匿化することで、生データを見ずに計算処理を実行することを可能にします。

まとめ

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

<本記事に関するお問い合わせ>
NRIデジタル株式会社 担当 安増・中島・西原・板橋 mpc@nri-digital.jp