概要
弊社で開かれた学習会で、弊社リサーチエンジニアが発表した、秘密分散型の暗号技術を展開する「世界のテックベンチャー」についてまとめました。
以下の論文を参考にしました。
参考文献:From Keys to Databases – Real-World Applications of Secure
Multi-Party Computation
まず、秘密分散の使い所として、二つの例が出てきます。
- 鍵管理
- 秘密計算による分析
鍵管理に関しては、鍵を一つのサーバーに置いておくのはリスクが大きく、そこがアタックされた場合に鍵が盗まれてしまう。という問題に焦点を当てたものです。(single point of failure)
秘密計算に関しては、データ所有者が第三者に計算分析を委託したい、というシナリオのもとで、計算は任せたいが機密なデータを見て欲しくない。ジレンマに焦点を当てています。
一つのサーバーに鍵管理を任せたり、計算を委託する場合は上のスライドではハードウェアタイプと書いてあり、アタックされたときの影響が著しく、マネジメントにお金がかかる、というデメリットはありますが、実際多くの企業では一つのサーバーを用意し、鍵生成から管理までを一括してそのサーバで行うことが多いようです。
秘密分散型の鍵管理では、複数のサーバに鍵を分散して置くため、一つのサーバが仮にアタックされても鍵が漏洩することはない、つまりリスク分散を行うことができる反面、そのシステム構築に高い専門性が求められ、まだスケールしていない技術なようです。
上記のようにパーティは
データ所有者、
データを分析したり、鍵管理をした際にそれらを受け取りたい人
分散サーバ
の三つからなります。
先程書いたように、ハードウェアタイプではHSMが使われ、乱数の生成から鍵管理までを担います。問題点としては、やはりその高いマネジメントコストです。
今回は、秘密分散型のアプローチをとり、これらの問題を解決しようとする「世界のベンチャーのプロダクト」についてまとめます。
まず、アメリカのGalois Inc が開発する Jana は、秘密分散型のデータベースサービスです。
データ所有者側が機密性の高いデータをデータベースに格納したい場合、機密性の高いカラムのデータだけ、SPDZ という秘密分散型の計算を行うオープンライブラリで分散、保管しています。
検索結果を受け取りたいパーティがクエリをこのサービスに投げたとき、サービスがそのクエリを分析し、機密なカラムに関係したクエリかどうか、また関係した場合、どのようなオペレーションなのかをチェックします。
機密なクエリに関係しない場合は普通にそのまま結果を送り返しますが、
もし関係した場合、そのオペレーションをspdzを使ってオペレーションします。複数サーバで機密カラムに対してクエリが行われたあと、結果が返されます。
上記のとおり、秘密分散を施した機密カラムに対しても、通常使うようなSQLオペレーションに対応しています。
次は、エストニアのベンチャーCyberneticaが提供するSharemindです。
こちらは秘密分散型のデータ分析サービスを展開しています。janaのようにオープンソースのライブラリspdzを用いるのではなく、自社で開発したライブラリを用いているところが主な違いでしょうか。また、データベースのような簡単な処理というよりも、もっと複雑な統計処理などに特化したエンジンなようなので、分析という意味では自由度が非常に高いようです。
実際に企業のkpiを秘密分散型で計算したり、税金と教育のデータを元にしたデータ分析などを行なっているようです。
Partisia&Sepior というデンマークベースのベンチャー企業では、ATSというプロダクトにて
1. 売り手と買い手のマッチングサービス
2. 統計計算
3. 金融のデータを共有して統計計算
など、スケーラブルな秘密計算のインフラを開発することを目的としているようです。
また、分散型と非中央集権型という意味で相性のいい、ブロックチェーンとのコラボレーションも進めているようです。
最後に、イスラエルをベースとしたUnbound Technologyは、
機密なデータの保管や活用を分散型で解決するvHSMというプロダクトを開発しており、APIを使うことで分散型での演算を可能にしているということです。
まとめ
- データシェアリングという意味でも、リスク低減という意味でも、秘密分散はユーザに対して効果的なソリューションとなりうる。
- データベースや鍵管理システムとして用いられることも多いし、機密データの分析にも活用することができる。
- Jana, Sharmind, Partisia, vHSMなど、世界から様々なベンチャーが分散型のサービスを展開し始めている。
弊社は現在のところ秘密分散型ではなく、準同型暗号を用いた秘密計算に焦点をあてて研究開発を行なっていますが、研究分野では準同型暗号と秘密分散を組み合わせたハイブリッド型のアプリケーションが最先端の技術としてあり、それらはお互いの良いところを組み合わせています。
弊社でもハイブリッド型で暗号化したデータの決定木による不正検知を開発した事例がありますが、まだまだ分散型に対する知識は少ないのが現状です。これから分散型のライブラリなども勉強をし、研究界隈のハイブリッド型のようなアプローチがもっと取れるよう、頑張っていきたいと思います。
もし参考になった、秘密計算面白そう、興味がある!というかたは「いいね」や「コメント」よろしくお願いいたします!!