RSAは終わらない - RSA 7680bitのICカードの実現可能性

RSAは終わらない - RSA 7680bitのICカードの実現可能性

はじめに

RSAは終わらないというタイトルですが筆者(Naoki Hirayama)がRSAが安全であることを保証するのではなくて既に量子コンピュータによって解読が懸念されているECDSAに移行するつもりがあるならRSAは終わらないということです。

暗号移行を促すQiita投稿 :「RSAの終わりの始まり - 暗号移行再び」

投稿者のラング・エッジ 宮地さんは、ネット上では有名な方のようです

上記、Qiita投稿ではRSA 7680bitのICカードは非実用的という評価によってECDSA(楕円曲線暗号)に移行すべきかを検討しましょうという流れになっているようなのでRSA 7680bitのICカードの実現可能性について考えてみます。

FPGAによるRSA 2048bitの実装結果

暗号プロセッサSnakeCubeのWebサイトに詳しく書かれていますがRSA 2048bitの復号化1回の性能が1.74[ms]です。これは概ねRSA署名1回の時間と同じです。

この実装結果で使われたFPGAはXilinxのコスト重視のFPGA(Artix-7)です。さらにスピードグレードの一番遅いものなのでICカードへの実装可能性を考えるには良さそうです。このXilinxのArtix-7シリーズは28nmの半導体です。28nmと言えば国が作ったTSMCの熊本工場の半導体と同じ。ハードをソフトウェアのように書き込めるFPGAで1.74[ms]の性能が出るのでASICで開発すれば、さらに高速に動作します。

NAOKIの法則を使って7680bitの性能を予想

SnakeCubeは演算器ブロックを一筆書きで並べていくことで大きな鍵長に対応できて容易に開発可能です。NAOKIの法則は、僕が作った法則です。自分で言うと馬鹿っぽいですけど(笑)。法則と言っていますけど保証できるくらいの精度です。

このXilinx FPGA(Artix-7)に実装されたSnakeCubeでは中国人剰余定理(CRT)を使っています。しかしICカードでは中国人剰余定理の脆弱性の対策が難しいので中国人剰余定理を使わないことを考えます。中国人剰余定理が無い場合、おおよそRSA 1024bit復号化 1.74[ms]になります

NAOKIの法則から鍵長を8倍の8192bitにすると演算時間は64倍になるので

1.74[ms] × 64 = 111.36[ms]

8192bitの演算器ですが7680bitの演算ではループ数が少なくて良いので

111.36[ms] × 7680 ÷ 8192 = 104.4 ≒ 105[ms]

結論

FPGAによる実機の実測値を使ってRSA 7680bit署名1回の演算時間を予想すると105[ms]の性能が出ます。ICカードはFPGAより楽なASICで実装するためRSA 7680bit署名1回の演算時間 0.1~0.2秒のICカードは実現可能であるように思われます。SnakeCubeはゲート間の配線が局所化しているので高性能プロセッサにありがちな高価な配線材料は不要です。ICカード向けの安価な実装ができるように思われます。

筆者はRSA暗号の高速な演算の実装方法、つまり筆者の発明SnakeCubeを提案していますが、RSA暗号が解読されないということについては一切保証しないことを予めご了承下さい。

暗号プロセッサSnakeCubeはRSAほど効率良く演算できませんがECDSAも演算可能です。また巨大整数の四則演算が高速なので困難性の異なる新しい公開鍵暗号を促したり、新しいアプリでも利用できることを考えるなら暗号プロセッサSnakeCubeを、ここで開発しておくことは、良いことだと思っています。

参考URL

FPGAによる実機で2048bit RSA復号化1回、1.74[ms]を記録した動画https://www.youtube.com/watch?v=beaFg0x8Qj8

プレスリリース、暗号プロセッサSnakeCubeをマイコンに接続できる ソフトウェア「WZeta BIOS」を5月28日に提供開始

https://www.atpress.ne.jp/news/310208

Remaining : 0 characters / 0 images
100

Sign up / Continue after login

Related stories

Writer

仮想通貨よりハードウェアに詳しいエンジニア

Share

Popular stories

ハードウェアから見た暗号資産(仮想通貨)

91

乗算器のない8bit CPUで高速にべき乗剰余演算するコード(改訂版)

32

オープンソースのCPUで8bitパソコン作った

18