秘密計算とは何か?

最近、秘密計算に関するソフトがオープンソースとして公開された。

https://github.com/acompany-develop/QuickMPC

秘密計算という言葉はちょこちょこ聞くけど、「いったい何者か」調べてみた。

調べるにあたりこちらのサイトを参考にさせていただいた。

https://www.rd.ntt/sil/project/sc/secure_computation.html

最初から目を通してみると・・・

秘密計算とは、データを暗号化したまま計算できる技術です。一般的な暗号はデータの通信・保存を保護しますが、秘密計算はさらにデータの計算過程も保護することができます。秘密計算を使うことにより、個人のパーソナルデータや企業の営業秘密を用いる分析業務で、データを漏らさないだけでなく「データの中身を見ない」運用が可能になります。これにより、より安全なデータ処理はもちろんのこと、今まで他組織に開示することが難しかったデータを持ち寄った、企業や業界の枠を越えた新しい統合分析が可能になります。

なんかすごそうだけど、「暗号化したまま計算できる」というフレーズで頭に「?」がいっぱい。。。

上記引用部分の次を読み進めていくと、「秘密分散」と新しいワードが出てきた。

なんかテクニックがあるんだな。。。それでもよくわからない。

理解を深めるために、同じページにあるダウンロード資料「秘密計算のシステムとその原理」を読んでみたら少し理解が深まった気がする。

詳しくは資料を見てもらえばだが、秘密計算の流れとしては、、、

  • 秘密計算したい対象の値を特定のルールで分解。
  • 複数のサーバーに分散配置する。
  • 各サーバーでそれぞれで計算を行う。
  • 各サーバーから計算結果を取り出す。
  • 取り出した値を復元(逆変換)することで計算結果が得られる。

資料上は足し算とか掛け算を例に説明されているが、もっと複雑な計算も対応しているとのことで、そのあたりはもっと調べてみたい。