完全準同型暗号まとめ


IT技術とは切っても切れない関係にある暗号技術ですが、しっかりと理解しているエンジニアはあまりいないのではないでしょうか。(私もまだまだです……)
先日、最新の暗号技術である完全準同型暗号を少々齧ったので、簡単にまとめてみます。

完全準同型暗号とは

一言で言ってしまえば暗号文のまま、加法と乗法の演算が可能な暗号方式です。

E\left(5\right)=E\left(2\right)+E\left(3\right)
E\left(6\right)=E\left(2\right)×E\left(3\right)

※E(a)はaの暗号文です

完全準同型暗号でできること

上記の性質によって何ができるかというと……
情報の漏洩等の観点から社内でしか扱えなかったデータをクラウドの潤沢なリソースを使って分析する、といったことが可能になります。

完全準同型暗号の課題

  • 鍵や暗号文のサイズが非常に大きいこと
  • 処理に時間がかかること

などがあげられます。

このあたりは盛んに研究されているので、近い将来実用的なレベルになるかもしれません。

完全準同型暗号の実装

2009年に「A FULLY HOMOMORPHIC ENCRYPTION SCHEME」という論文がGentry氏らによって発表されました。
この論文や、その後に発表された他の論文を読んで実装することが可能です。

可能ですが、やりたくはないです。
完全準同型暗号の雰囲気を味わうだけであれば、IBMによって公開されている「HELib」というライブラリを使ってみるとよいでしょう。
(実装がC++なので、多少その周辺の知識が必要になります)

使い方は公式のドキュメントや以下のスライドが参考になると思います。
https://www.slideshare.net/ssuser4c5f79/h-elib