最近、秘密計算に関するソフトがオープンソースとして公開された。
https://github.com/acompany-develop/QuickMPC
秘密計算という言葉はちょこちょこ聞くけど、「いったい何者か」調べてみた。
調べるにあたりこちらのサイトを参考にさせていただいた。
https://www.rd.ntt/sil/project/sc/secure_computation.html
最初から目を通してみると・・・
秘密計算とは、データを暗号化したまま計算できる技術です。一般的な暗号はデータの通信・保存を保護しますが、秘密計算はさらにデータの計算過程も保護することができます。秘密計算を使うことにより、個人のパーソナルデータや企業の営業秘密を用いる分析業務で、データを漏らさないだけでなく「データの中身を見ない」運用が可能になります。これにより、より安全なデータ処理はもちろんのこと、今まで他組織に開示することが難しかったデータを持ち寄った、企業や業界の枠を越えた新しい統合分析が可能になります。
なんかすごそうだけど、「暗号化したまま計算できる」というフレーズで頭に「?」がいっぱい。。。
上記引用部分の次を読み進めていくと、「秘密分散」と新しいワードが出てきた。
なんかテクニックがあるんだな。。。それでもよくわからない。
理解を深めるために、同じページにあるダウンロード資料「秘密計算のシステムとその原理」を読んでみたら少し理解が深まった気がする。
詳しくは資料を見てもらえばだが、秘密計算の流れとしては、、、
- 秘密計算したい対象の値を特定のルールで分解。
- 複数のサーバーに分散配置する。
- 各サーバーでそれぞれで計算を行う。
- 各サーバーから計算結果を取り出す。
- 取り出した値を復元(逆変換)することで計算結果が得られる。
資料上は足し算とか掛け算を例に説明されているが、もっと複雑な計算も対応しているとのことで、そのあたりはもっと調べてみたい。