tag:crieit.net,2005:https://crieit.net/tags/IC%E3%82%AB%E3%83%BC%E3%83%89/feed 「ICカード」の記事 - Crieit Crieitでタグ「ICカード」に投稿された最近の記事 2023-01-21T00:14:05+09:00 https://crieit.net/tags/IC%E3%82%AB%E3%83%BC%E3%83%89/feed tag:crieit.net,2005:PublicArticle/18372 2023-01-20T18:45:37+09:00 2023-01-21T00:14:05+09:00 https://crieit.net/posts/rsa7680 RSAは終わらない - RSA 7680bitのICカードの実現可能性 <h2 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h2> <p>RSAは終わらないというタイトルですが筆者(Naoki Hirayama)がRSAが安全であることを保証するのではなくて既に量子コンピュータによって解読が懸念されているECDSAに移行するつもりがあるならRSAは終わらないということです。</p> <p>暗号移行を促すQiita投稿 : <a target="_blank" rel="nofollow noopener" href="https://qiita.com/lemiyachi/items/c20a18b172c6f192a262">「RSAの終わりの始まり - 暗号移行再び」</a><br /> 投稿者のラング・エッジ 宮地さんは、ネット上では有名な方のようです</p> <p>上記、Qiita投稿ではRSA 7680bitのICカードは非実用的という評価によってECDSA(楕円曲線暗号)に移行すべきかを検討しましょうという流れになっているようなのでRSA 7680bitのICカードの実現可能性について考えてみます。</p> <h2 id="FPGAによるRSA 2048bitの実装結果"><a href="#FPGA%E3%81%AB%E3%82%88%E3%82%8BRSA+2048bit%E3%81%AE%E5%AE%9F%E8%A3%85%E7%B5%90%E6%9E%9C">FPGAによるRSA 2048bitの実装結果</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://snakecube.idletime.tokyo/">暗号プロセッサSnakeCubeのWebサイト</a>に詳しく書かれていますがRSA 2048bitの復号化1回の性能が1.74[ms]です。これは概ねRSA署名1回の時間と同じです。</p> <p><strong>この実装結果で使われたFPGAはXilinxのコスト重視のFPGA(Artix-7)です。さらにスピードグレードの一番遅いものなのでICカードへの実装可能性を考えるには良さそうです。</strong> このXilinxのArtix-7シリーズは28nmの半導体です。28nmと言えば国が作ったTSMCの熊本工場の半導体と同じ。ハードをソフトウェアのように書き込めるFPGAで1.74[ms]の性能が出るのでASICで開発すれば、さらに高速に動作します。</p> <h2 id="NAOKIの法則を使って7680bitの性能を予想"><a href="#NAOKI%E3%81%AE%E6%B3%95%E5%89%87%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A67680bit%E3%81%AE%E6%80%A7%E8%83%BD%E3%82%92%E4%BA%88%E6%83%B3">NAOKIの法則を使って7680bitの性能を予想</a></h2> <p>SnakeCubeは演算器ブロックを一筆書きで並べていくことで大きな鍵長に対応できて容易に開発可能です。<a href="https://crieit.net/posts/naokislaw">NAOKIの法則</a>は、僕が作った法則です。自分で言うと馬鹿っぽいですけど(笑)。<strong>法則と言っていますけど保証できるくらいの精度です。</strong></p> <p>このXilinx FPGA(Artix-7)に実装されたSnakeCubeでは中国人剰余定理(CRT)を使っています。しかしICカードでは中国人剰余定理の脆弱性の対策が難しいので中国人剰余定理を使わないことを考えます。<br /> 中国人剰余定理が無い場合、おおよそRSA 1024bit復号化 1.74[ms]になります</p> <p><a href="https://crieit.net/posts/naokislaw">NAOKIの法則</a>から鍵長を8倍の8192bitにすると演算時間は64倍になるので<br /> 1.74[ms] × 64 = 111.36[ms]</p> <p>8192bitの演算器ですが7680bitの演算ではループ数が少なくて良いので<br /> 111.36[ms] × 7680 ÷ 8192 = 104.4 ≒ 105[ms]</p> <h2 id="結論"><a href="#%E7%B5%90%E8%AB%96">結論</a></h2> <p>FPGAによる実機の実測値を使ってRSA 7680bit署名1回の演算時間を予想すると105[ms]の性能が出ます。ICカードはFPGAより楽なASICで実装するためRSA 7680bit署名1回の演算時間 0.1~0.2秒のICカードは実現可能であるように思われます。<br /> <a target="_blank" rel="nofollow noopener" href="https://snakecube.idletime.tokyo/">SnakeCube</a>はゲート間の配線が局所化しているので高性能プロセッサにありがちな高価な配線材料は不要です。ICカード向けの安価な実装ができるように思われます。</p> <p>筆者はRSA暗号の高速な演算の実装方法、つまり筆者の発明<a target="_blank" rel="nofollow noopener" href="https://snakecube.idletime.tokyo/">SnakeCube</a>を提案していますが、RSA暗号が解読されないということについては一切保証しないことを予めご了承下さい。</p> <p>暗号プロセッサSnakeCubeはRSAほど効率良く演算できませんがECDSAも演算可能です。また巨大整数の四則演算が高速なので困難性の異なる新しい公開鍵暗号を促したり、新しいアプリでも利用できることを考えるなら暗号プロセッサSnakeCubeを、ここで開発しておくことは、良いことだと思っています。</p> <h5 id="参考URL"><a href="#%E5%8F%82%E8%80%83URL">参考URL</a></h5> <p>FPGAによる実機で2048bit RSA復号化1回、1.74[ms]を記録した動画<br /> <a target="_blank" rel="nofollow noopener" href="https://www.youtube.com/watch?v=beaFg0x8Qj8">https://www.youtube.com/watch?v=beaFg0x8Qj8</a></p> <p>プレスリリース、暗号プロセッサSnakeCubeをマイコンに接続できる ソフトウェア「WZeta BIOS」を5月28日に提供開始<br /> <a target="_blank" rel="nofollow noopener" href="https://www.atpress.ne.jp/news/310208">https://www.atpress.ne.jp/news/310208</a></p> spinlock