MPC(Multi Part Computation): 情報を分離しセキュリティを維持する技術

MPC(Multi Part Comptation): 情報を分離しセキュリティを維持する技術

田中君と山田君、そして川口君は久しぶりに出会い、話を進めています。いつの間にか会話のテーマは会社の福利厚生になりました。それぞれが自分の会社を自慢していますが、自分の会社の福利厚生が一番悪いとなると気まずいため、全てを言えてはいない状況です。そこで、秘密をよく守ることで知られている中川君に「誰の会社の福利厚生が一番なのか」を決めてもらうことにします。しかし、中川君の家を訪れたが留守中のようです。三人はどうすればいいのでしょうか。

自分が持つ情報のすべてを明かさず、順位だけを明かしたい彼らに今一番必要な技術はMPC(Multi Party Computation、マルチパーティ計算)です。MPCは秘密を安全に守りながらも必要な結果だけを調べるために適した技術であり、1980年代からの長い理論的な発展を経て、現在には幅広い分野で実際に利用されるまでに至りました。今回はMPCとは何かと、類似した技術との相違点、そして実際の利用例を紹介します。

 

各自の秘密を守りながら、結果だけ共有する

MPCは「お互い信頼していない多数が各自の入力値を共有せず、暗号化された入力値の計算結果を導き出す暗号理論の技術」です。情報を安全に保護しながらも必要な計算を行うための技術であり、その理論的根拠は1980年代に初めて提示されました。一つの情報に対する計算を一つの機器で行うのではなく、情報を複数に分散し、各個をそれぞれ別の機器を通じて計算する過程が行われます。例えば、暗号化したデータを分散し処理するとしてみましょう。

MPC1

まず暗号化されたデータを各サーバに分散させた後、各サーバで処理された結果を統合し、計算の結果に導き出します。この中で一つのサーバが攻撃を受けデータを奪取されたとしても、すでに分散されたデータなのでその意味や価値を探し出すのは容易ではありません。これにより得ることのできる一番のメリットは「セキュリティ」です。

図1の事例を再度ご覧ください。ハッカーが複数のサーバの中で一つを狙い攻撃を行っても、意味のあるデータを確保することは非常に難しい状況です。まず分散されたデータがどのサーバに存在するのかを把握し、複数のサーバをハッキングしなければ「完全なデータの獲得」という目標を達成できないのです。よって、ハッカーはMPCが適用されたデータを獲得するにあたって、一つのサーバをハッキングするよりはるかに高い機会費用を要します。セキュリティの基本的な原則には「攻撃者が攻撃を通じ獲得できる利益よりもさらに大きいコストを支払うような状態を築き上げ、攻撃を断念させる」というものがありますが、MPCはそのような原則に当てはまる技術だと言えるでしょう。

つまり、一つの機器ですべてのデータを処理しようとして全てのデータを奪取されるより、分散させて処理するMPCの方が安全だという結論を導き出せます。このような特長を持つMPCは、単純にデータを処理する局面だけではなく、セキュリティ分野でも注目されています。特に暗号資産の管理に用いられる「暗号鍵」に対して、MPCの使用例が増加している状況です。

 

MPCとマルチシグの違い: 複数の鍵 vs 一つの鍵

最近、MPCをブロックチェーン分野に採用しようとする動きが加速しています。代表的な例としては暗号資産のトランザクションに必要な暗号鍵を挙げられます。暗号資産において、一つのトランザクションには複数の参加者が存在するため、そのトランザクションが成立するには過半数以上の承認が必要です。そこに使われるのが暗号鍵です。MPCを利用すると、より強固なセキュリティで暗号鍵を守ることが可能になります。

MPC2

一般的に、暗号資産のトランザクションを行う際にはマルチシグという技術が使われます。マルチシグとは複数の暗号鍵を生成し、それぞれを複数の参加者に与え、その中の多数が署名するときのみ取引が発効する形で作動します。暗号資産の保管に利用される暗号鍵の紛失及び奪取という事故に対応するため利用される技術です。普通、3人中2人が承認すれば取引が成立する「2 of 3」方式が利用されています。

MPC3

MPCの場合もマルチシグと同様、n人中m人が参加すれば署名が生成する「m of n」方式が多数適用されています。しかしマルチシグと違い、MPCの場合は暗号鍵を保管するのではなく、暗号鍵の破片を保管することになります。よって暗号鍵自体が公開されることがなく、マルチシグより高度のセキュリティを保証すると言えます。また、暗号鍵自体が保管・利用されるわけではないので、誰が署名に参加したのかをより把握しにくいというメリットを持ちます。

 

MPCを活用する方法: 秘密を維持する必要あらば登場

データの処理

データの処理は、MPCが利用される事例の中で一番代表的なものだと言えます。例えばデンマークでは農作物を競りにかける際にMPCが利用されました。落札者を除いた参加者のデータを公開せず、成功的に落札者を選定するのに成功した記録が出されています。その他にもMPCは個人情報に関するデータなど、内容に対する秘密が保持される必要があるデータを処理するのに利用されているか、あるいはその利用を検討されています。例えば米ボストン大学の研究陣はMPCを利用し、技術的にも法律的にも完全に保護されている非公開の給与データを、研究のため企業から提供してもらうためのシステムを構築するのに成功しました。また、最初に紹介した「福利厚生に関して争っていた三人の事例」においても、各自のデータをMPCシステムに入力し、結果を受け取ることで問題が解決するでしょう。個人のデータはその個人のみが認知している状態で、「誰の会社の福利厚生が一番いいのか」に対する結果が出力されるからです。

 

暗号鍵の分散・管理

MPCを通じ、暗号鍵をさらに安全に管理・利用することができます。MPCを暗号鍵の管理に利用する場合、一つの暗号鍵を分散させ一定数以上の保有者が参加するときのみ署名が発行するようになります。分散された暗号鍵は単独での意味を持たないため、奪取されたとしてもそれによるリスクは比較的低いと言えるでしょう。また、署名にだれが参加したのかを識別しにくく、追跡がほぼ不可能だというメリットも持っています。よってMPCを利用した暗号鍵の管理方式は、暗号鍵の重要性が特に高い暗号資産分野でさらに拡散されると思われます。

 

最後に

MPCは「個人情報が公開されない権利」や「情報セキュリティ」が浸透するにつれ、さらに広い分野で使われるでしょう。個人が保有しているデータから意味を排除でき、それを集めたときには意味を導き出せるというメリットは、様々な分野に適用できます。また、MPCを適用したセキュリティ技術も、同じ理由でさらに拡散される見通しです。ペンタセキュリティはこのような流れに沿って、金融機関での安全なデジタル資産管理向けのMPCソリューションをオープンSDKとして提供しております。詳細は、下のリンクをご覧ください。

 

出典:

https://acompany.tech/blog/technology-multi-party-computation/

https://blog.liquid.com/ja/glossary/multisig/