見出し画像

データを暗号化して計算できるシステムがイノベーションを起こすかも!?

知られたくないデータを暗号化して暗号化されたまま計算できるシステムがあれば社会に変革が起きるかもしれない。「秘密計算」といわれる分野の話です。ハードウェアが専門の僕はやや専門から外れるのですが、一般の人向けのわかりやすい説明ということで。後半、SnakeCubeが優れたハードウェアであり社会に大きな影響を与えるかもという説明になっています。

(注意、電子投票は技術以外の問題もあるため僕は賛成ではありません)

電子投票がイノベーションになるかは、ここでは考えずに、秘密計算のシステムの例としてわかりやすいので説明すると、投票者が投票データを暗号化して集計システムに送信します。集計システムでは暗号化されたまま計算できるためシステム管理者すら誰が誰に投票したか知ることなく安全な投票ができます。電子投票の他にも電子マネーへの応用も考えられているようです。

まだ「秘密計算」のシステムによってイノベーションを起こせる応用事例があるかもしれません。

この秘密計算システムを支える原理が準同型暗号です。暗号化されたまま値を加算したり乗算したりすることができますが、計算量が非常に多くなります。電子投票のシステムでは投票結果を加算するだけなので、それほど計算量が問題になることは、ないように思いますが、もっと複雑な計算が必要なシステムの場合は、準同型暗号を高速に演算できるハードウェアが必要になるでしょう。

例えばRSA暗号も準同型暗号として使えます。他の準同型暗号にも言えることですが量子コンピュータによる解読の可能性があることから、解読された場合の手続きを考えておく必要があります。そして、できる限りの安全性を考えるなら、可能な限り大きな数の鍵を使ったシステムになると思います。

計算の速さだけなら、ちょうど今(2019年10月)、米アマゾンとイーサリアム財団が開催しているFPGAコンテストの参考文献として挙げられているサバンチ大学のペーパーの方式が優れています。しかし鍵が大きくなるにつれて1チップに収まらなくなり、マルチチップで構成しても、配線遅延で性能が激減するため、恐らく準同型暗号では、あまり有利ではない。理論上は性能がO(log n)となる美しい方式ですが。実際の実装では鍵が大きくなると配線遅延で理論とはズレてきます。あと剰余演算の除数の入れ替えが遅いことも難点になることがある。

準同型暗号の一つRSA暗号をCPUで計算した場合、おおよそ鍵長が2倍になると計算時間は8倍になります。僕が書いた次の記事が参考になると思います。

僕の方式(SnakeCube)では、設計上は、鍵長を2倍にして2倍の演算器を投入することで、計算時間4倍です。鍵を大きくしていっても鍵長2倍で計算時間4倍のまま、ほとんど効率は低下しません。

僕の方式(SnakeCube)は「鍵長2倍で計算時間4倍の方式」ですから、現在よく使われているRSA 2048bitの鍵長ではCPUが高速でも、鍵長が大きくなるにつれて、CPUより高速になり、さらに鍵長が長くなればCPUより圧倒的に高速になるのです。僕の方式はモンゴメリ乗算の低基数型です。他に高基数型の方式があります。高基数型も高速には演算できるかもしれないですが設計・開発コストが大きい問題があり、また速さも僕の方式と、あまり変わらないかもしれないというところです。

まだ設計上の話なので、実際に「鍵長2倍で計算時間4倍の方式」であることを検証していかなければいけませんが、僕は設計通りになる予想をしています。「秘密計算」のシステムによってイノベーションが起きる事例が多く出てくれば、僕の方式(SnakeCube)の発明は社会に大きな影響を与えることになると期待しています。