Home

インターネットの常時httpsで使われるRSA暗号などの公開鍵暗号は量子コンピュータによって破られる可能性があります。 量子コンピュータによる解読に対して強い公開鍵暗号の研究は進められていますが、 安全性の確認には時間を必要とします。そこでRSA暗号の鍵長を長くすることを考える必要があると思います。

RSA暗号の鍵長を長くする方法のメリットは長年の実績があって、 システムの変更に対するコストが安価であること。 デメリットは鍵長に関係なく量子コンピュータに解読されるリスクは残ること。 ただ鍵長を長くすることで解読が難しくなるという研究報告はあるようです。

RSA暗号では鍵長が2倍になると理論的には計算量は8倍になります。 OpenSSLを使った実測結果を以下のブログに書いています。
RSA 8192bitの性能を測定するソースコード
CPUでは、おおよそ鍵長が2倍になると計算時間は8倍なので理論と同じ結果です。 Intelのちょっと古いCore i3の性能で説明すると、RSA 2048bitで1660[sign/s]、 RSA 16384bitでは2.5[sign/s]です。
スループットだけなくレイテンシ性能も問題になりそうです。
SnakeCubeのアーキテクチャは理論的には鍵長が2倍になると 2倍の演算器を使って計算時間4倍という特長があります。 XilinxのAlveo(大型FPGAのPCIeカード)にSnakeCubeのソフトプロセッサを インストールしたSSLアクセラレータを開発すればレイテンシ性能も解決されるケースが増加します。 ただしSnakeCubeをFPGAに実装した場合は、鍵長2倍で計算時間4倍の理論から多少、ズレることはあるかもしれません。 コスト重視のXilinx Artix-7のFPGAでスピードが一番遅いもので RSA 2048bit(decrypt CRT) 1.74[ms]を実測しています。 理論通りならRSA 4096bitでCore i3と同程度の性能が出ます。 鍵長が長くなれば長くなるほどCore i3のレイテンシ性能を超えていきます。
参考までの話になりますが、実測に使ったVerilogファイルをタイムスタンプして INPIT(独立行政法人工業所有権情報・研修館)で証明書をもらいました。 証明書はオンラインによる自動発行です。 実測した日のデータであることが保証されたデータで再現テストが可能です。

FPGAでは証明書の秘密鍵を厳格に守ることは困難であるためASICのSnakeCubeを 開発する可能性はあると思いますが、量子コンピュータの解読問題で ASIC開発に必要な投資額を集めることが難しく、また集まったとしても、 汎用品のAlveoの価格を下回ることは、ほぼないように思っています。
エンジニアから見た選択は、事実上、Alveo(あるいは、他社FPGA)のように思われます。



参考URL

巨大整数用四則演算プロセッサSnakeCubeが高速である秘密

大きなモンゴメリ乗算器は実装できるのか?

わかりやすいICF3-Fのモンゴメリ乗算器の説明

モンゴメリ乗算の累積加算における分割加算の証明