デジタル庁の次期マイナカードの最終案をRSA延命案とすれば、
その高性能なICチップを流用した暗号装置のアクセラレータを非常に低コストに開発ができるかもしれない。
ただしRSA署名に限定。発熱などで故障することが想定されるため交換作業中、サービスが中断される。
RSA 30720 bitのように非常に大きな鍵長の場合、CPUと比較しても0.2~1.0倍の性能が期待できるので、
PCIeカードにICチップを64個搭載したものであれば最大CPU 64個分のサーバー性能が増強されたことと
同等になるなどのメリットがある。CPUの脆弱性対策にもなるので古いサーバーを活躍させることもできるかもしれない。
ICチップ製造メーカーと交渉すれば次期マイナカードと同等レベルまでの安全性が期待できる。
サーバーのハードウェアから秘密鍵が漏れない。素人が管理しても秘密鍵が漏洩することは無い。
サーバーの性能を増強する安価な暗号装置を開発して
Intelなどのサーバハードメーカーが怒らないか?という問題。
公開鍵暗号の安全性を強化するためにRSAの鍵長を大きくした
Webサーバーなどのアプリを動作させない限り、役に立たないRSA署名専用演算装置です。
僕のRSA延命案によってRSAの演算量が飛躍的に増加しているのでIntelも、あまり怒らないと思われます。
具体的な用途の例
SSLアクセラレータ、DKIM、DNSSEC、次期マイナカードの電子証明書有効性確認サーバーなど。
IoT管制サーバーからIoTデバイスに向けたコマンドにRSA署名をする用途。
IoTデバイスに搭載される組込みソフトでは軽いRSA検証でいいため安価になる予想。
DKIMは送信メールに署名をして安全にするための技術、受信する側は計算量の軽いRSA検証になるので、
大手インターネット企業や、法人ドメインを持つ企業が、当面の暗号解読リスクの対策として良さそう。
DNSSECはRSA暗号が良く使われてきたみたいです。近年ではECDSAなども使われているとか。
Ed25519はJPRSの藤原和典さんのこのスライド資料
が詳しいです。6年くらい前の大学の研究室のOB会で本人にDNSSECについて直接、聞いてみたのですが「ECDSA」という返答があった記憶が。RSA暗号が使われてきたんですよ、、、参考まで藤原さんは、大学の研究室では直上の先輩だったりします。
今月初旬の量子コンピュータの想定外の進歩で既存の公開鍵暗号の解読リスクが高まっているので、非常に大きな鍵長のRSA暗号とか、どうでしょうか。
藤原さんも、笠原先生のCP/MISFの研究をしていたので16bit CPU WZetaにおけるCP/MISFの活用方法について、わかる人かもしれない。
SSLアクセラレータは便利な用途の一つですが、
ブラウザやSSLサーバー証明書が対応できるRSAの鍵長の最大値がネックとなる。
これを改善できる組織ならば、儲けられるかもしれない。
次期マイナカードの電子証明書有効性確認サーバーは政府が使うことを決めれば、
プラットフォーム依存な問題は、ないような気がします。
FPGAにはPCIeが組み込まれているものがあってチップを1つも開発することなく
PCIeボードを設計するだけで作れると思います。
このため国内で開発しても安価に開発できるような気がします。
I/FはPCIeに限らずUSBやシリアルも考えられます。
RSA 30720bitであればシリアルでも転送性能が足りてしまう可能性があるため、
難しいドライバを開発することなく製品化が可能です。
才能あるプロジェクトリーダーがRSA署名専用装置を開発、販売をすれば儲かるような気がします。
両耳を塞がれた僕にはデジタル庁の情報は入っていませんが、今月初旬の量子コンピュータの
想定外の進歩によってデジタル庁は、次期マイナカードの仕様変更に迫られることになっていると思います。
ここで楕円曲線案からRSA延命案に変更しRSA延命案の多くのメリットを享受する方向が良いと思われます。
RSA延命案への変更で問題となるのは2026年に有効期限が切れるマイナカードです。
現時点からRSA延命案に変更するには日程が厳しくなる心配があるのです。
そこで期限が切れる現行マイナカードの有効期限を2030年まで延長をすれば、
超激安に期限を伸ばせるのではないかと、思いつきました。
現行のマイナカードの仕様は5年で電子証明書を更新できる仕様なので、
もう一度、電子証明書を更新すればいいのです。2030年までなら、
昨年までに発行した現行マイナカードも運用されているので問題は、なさそうです。
これでRSA延命案を大成功させる奇跡を起こしましょう!
以下はRSA延命案についての最近の投稿
----- 4月22日 午後5時 ---------------
4月初旬のニュースにあったように量子コンピュータでブレイクスルーがあってICカードに搭載できる安全な公開鍵暗号が無い状況です。
世界の企業や銀行が困ることになるはずで、これを解決することが全世界的に最優先と思っています。
日本では暗号プロセッサSnakeCube以外の選択は無いと僕は思っています。SnakeCubeはICカードのような環境でも演算性能を簡単に上げられる珍しい特長がある。他の方法でベクトル型もありますが、いろいろな公開鍵暗号に対応しているうちに配線が膨れて製造原価が高くなる問題があるのです。まずは製造原価が安価であることがわかっているSnakeCubeを選択して、数学の力でSnakeCube向けの新しい公開鍵暗号を実用化することかと思います。それまで現行のRSA 2048bitの15倍の鍵長の30720bit(予定)でしのぎます。←他では、これができない。
もし、ご意見、ご質問等があれば、誰なのか、わかるアカウントで、この投稿に返信してください。
世界を救えるのは、僕以外いないという状況だと思っています。
----- 4月23日 午後8時 ---------------
僕は一、半導体設計者に過ぎないので全体が掴めていませんが、こんなイメージだと思っています。
国は半導体に数兆円規模の税金を投下し続けている。
次期マイナカードの本番運用を半導体の実験システムにすることで1000億円くらいの利益は出せるかもしれない。実験システムのためには次期マイナカードのICチップにSnakeCubeを採用し非常に大きな鍵のRSAを採用する以外の方法は無い。
今、利益を上げる実験システムを思いつけなかった国民は、どうするか悩んでいる。1000億円を皆で取りに行く決断ができるか、否か。1000億円を損させた重罪人になる人が出るのか。
1000億円の利益が出ても政府各省庁や内閣府の人たちの取り分として大半が、消えるかもしれないけど、国の技術資産は増加している。
財務省のウェブサイトにある「予算執行ご意見箱」先月から5回投書していますが、反応がありません。
●予算執行ご意見箱
国の予算が使われている特定の施策・事業について、非効率又は成果が十分出ておらず是正すべきではないか等のご意見・ご提案---
ここは国民の踏ん張りどころと思います。よろしくお願いいたします。
----- 4月24日 午後1時 ---------------
補足です「半導体の実験システム」とはプロセス開発支援のための実験であってデジタル回路の動作検証のことではありません。デジタル回路の動作検証の仕事が民間から減るという話ではありません。
動作検証屋がブツブツ、言い出したので、あれどうしてかなと思っていたら「半導体の実験システム」では誤解されるかもしれないことに気づいた。
政治に関係なくCRTは脆弱性があるので、なるべく使わないほうがいい。
次期マイナカードは最初 RSA 15360bitにして、様子を見ながら最先端半導体プロセスでCRTを使わないRSA 30720bitにしてもいい。
この開発は最先端のプロセス開発支援となるようにするため節税効果がある。
ただしRSA 30720bit w/o CRTのSnakeCubeではICチップの価格が上がるため節税効果は相殺されてしまう。
RSA 30720bit w/o CRTは、政府関係者に限定してコストを抑えることもありか。
暗号プロセッサSnakeCubeの特長は大きな鍵長のRSA暗号が得意であること。
CPUではRSAの鍵長に制限はありませんがSnakeCubeは制限があります。
しかしCRTによって鍵長を、さらに2倍にすることが可能です。
ただしある種の脆弱性のためにICカードのような用途ではCRTは、あまり使われない。
4月初旬、量子コンピュータの想定外の進歩のニュースがあったことにより、
より大きな鍵長のRSAが期待されることになりました。
僕は次期マイナカードでRSA 15360bitを提案していましたが、
CRTを使ったRSA 30720bitを使うことで量子コンピュータの
解読リスクを低減できると考えています。ただしCRTには別の脆弱性があるので
通常はRSA 15360bitにして、インターネット上の2因子認証などでRSA 30720bitを使います。
現行のマイナカードのRSA 2048bitの15倍の鍵長!
CRTの有無は暗号プロセッサSnakeCubeのハードウェアに影響しません。
ファームウェアで実装します。SnakeCubeを作っておけば、どちらでも対応できます。
CRTはChinese remainder theorem、中国の剰余定理のことです。
日本の参考書には「高速復号化法」と呼んでいるものもありますが、海外論文などの資料にはCRTがほとんどです。
wCRT CRTを使った場合
w/o CRT CRTを使っていない場合
先月、日本政府で中国企業ロゴ混入騒動がありました。CRTはアルゴリズムであり中国企業ロゴ混入騒動と直接関係ありませんが、騒動を配慮するためにCRTの有無の判断をマイナカードの製造開始まで保留できます。また次期マイナカードでは、技術的には個人単位でCRTを選択できるように思います。希望者のみCRT有など。CRTのコードだけ組込んでおいて政府がマイナカードにCRT利用可能命令を送信するまで保留することもできるでしょう。CRTのマイクロコードは数十命令程度のコードで信頼できる人が自作できます。
参考まで。
ICF3(1999年)のCRTのマイクロコードはOpenICF3のサイトで公開しています。
ICF3シミュレータでシミュレーションできます。製品出荷されたICF3にはCRTのコードは入っていません。IBMの仕様にCRTが無かったためです。
ICF3(1999年)は大型コンピュータの暗号装置として開発されたのでビッグエンディアンを意識して作られています。
近年、リトルエンディアンが多数派となりビッグエンディアンでは不便なので2020年の暗号プロセッサSnakeCubeはリトルエンディアンで作っています。
ICF3(1999年)とSnakeCube(2020年)のマイクコードに互換性はありませんが、本質的には同じなので、ICF3のコードも参考にはなると思います。
暗号プロセッサSnakeCubeをICカードに複数チップで実装する場合の考察。
SnakeCubeを複数のチップに分割してパッケージするケースと、
既にあるICカードのチップにSnakeCubeのチップを追加してパッケージする2種類が考えられます。
前者は、チップ間の配線数の数は、それほど多くなくてもいいが、
遅延時間はできる限り小さいほうがいい。それがSnakeCubeの性能を決めるため。
後者はワイヤーボンディングみたいな簡単な接続でも、いけるかもという人もあった。
安価に製造できるのと、この方法が選択できる製造工場が多いかもというメリットかな。
余談です。
僕は1996年ごろ日立の大型コンピュータの開発でIBMのCPUチップをパッケージをする
仕事をしていたことがある。アナログ電子回路シミュレーションも、ちょっとだけしていた。
開発中のことですが、物理的な配線ミスのパッケージを作って、
作り直すことになって1000万円の追加コストがかかった罪を疑われたので、
良く記憶に残っている。結局、僕のバグではなかったことが判明して無事でした。
冗長2進数は加算器のキャリー伝搬を無くして高速に加算できる技術。
ICF3(1999年)でも使われている技術。
3値2進数は昨年、僕が思いついたもので2値2進数を3値2進数に変換するときに1度だけ、
キャリー伝搬せずに高速に2つの2値2進数の加算が可能。
3値2進数で乗算器を作れば、3値素子の性能に依存する
けど回路面積が小さくなるなどの効果がある。
1チップに多数の乗算器を詰め込んだGPUが便利かもしれない。
AI向け乗算器とか。
乗算器の内部だけ3値とすることも可能で、そうすると普通の乗算器として使えるため、3進数コンピュータを実用化させるよりは、はるかに楽というメリットがある。3値2進数で3値素子の技術開発を行い、
その後、3値性能を世界の人々が享受できるようになる。
3値2進の乗算器が回路圧縮できる仕組み図です。8×8bit乗算器での例ですが部分積が半分の32個になっています。
3値2進では1bit全加算器が普通の2進数のものよりも大きくなるのですが画期的な発明があれば、
乗算器の回路が圧縮されます。
2値2進3bitブースは3倍数のレジスタが必要になるため性能は上がっても回路圧縮は期待できないので2値2進2bitブースと比較をしています。
画像をマウスでクリックすると拡大されます
量子コンピュータの進歩が速いので鍵長の大きなRSA暗号に対応できるSnakeCubeを考えます。
鍵長を大きくするにはチップ面積も大きくなるためICカードの価格が高くなってしまいます。
そこで性能を下げた安価なバージョンを考えます。
たとえばRSA 15360bit署名の時間
ゴールドランク 0.5秒
シルバー ランク 1.5秒
ブロンズ ランク 5秒
のようにすればICカードのハードのコストを抑えられるように思います。
GIGAZINE記事(4月4日)
量子コンピューティングの膨大なエラーの原因となる「ノイズ」を800倍抑える次世代技術をMicrosoftとQuantinuumが開発したと発表
PRTIMES記事(4月5日)
MicrosoftとQuantinuumの共同研究チームが信頼性の高い論理量子ビットに関する画期的な実証実験の結果を発表
----PRTIMES記事-----------------------------------
画期的な進歩であり、実現にはこの先何年もかかると予想されていた成果
------------------------------------------------------
これでデジタル庁の次期マイナカードの最終案は崩壊です。
どちらの記事にも公開鍵暗号の解読の可能性については書かれていません。
しかし、これからコストをかけてRSA 2048bitから楕円曲線ECDSA 384bitに
移行するというのはあり得ないと思われます。
デジ庁は、最終案を見直す必要があると思われます。
僕は、どこからもお金を貰っていないので、SnakeCubeが採用されたRSA延命案を
政府に選択してもらわないと、僕にお金が入ってこない。
ただし他の案が選択できる状態でRSA延命案を僕が決めさせると、
結局、僕は大損する可能性もある。ですから僕は政府や国民の皆様が正しい判断をするための、
技術情報を提供するだけとなります。
RSA延命案以外の僕の予想精度は高くありませんがIBMの研究者が支援している
CRYSTALS-Dilithiumは有力だと思われます。IBMのOSやLinuxでの普及が進んでいるようです。
ICカードへの実装の普及はまだのようです。
日本のNICTがTOPPANと共同でCRYSTALS-DilithiumのICカードの開発を進めているようです。
弱点は新しい攻撃法の発見によって計算量が急に大幅に増加してしまう可能性。
実績が無いことから、デジ庁の最終案の楕円曲線(ECDSA)と併用が必要で、コスト増が懸念されます。
ICカードのハードは安くても、読取り機器や、サーバー側のソフトウェア費用が大きい可能性がある。
読取り機器などの組込み向けの価格は割高に設定することが可能なのでトータルコストには注意すべきです。
RSAではエンジニアが自作すればソフトウェアはタダですがECDSAやCRYSTALS-Dilithiumの
数学は非常に高度なので一般的には高価です。
サーバーでは無料の場合もありますが実質有料と考えなければならないと思います。
日本以外のほとんどの国でCRYSTALS-Dilithiumと楕円曲線を併用したICカードが普及する可能性は、
割とあるように思っています。
もしそうなれば、CRYSTALS-Dilithiumで問題が発生すると全世界的に困ることになる。
日本がRSA延命案を選択して、RSA延命案で使用されるSnakeCubeのモンゴメリ乗算器を活かした次世代公開鍵暗号を進めることは、
世界に貢献できます。公開鍵暗号の相互補完かも。
次期マイナカードはRSA延命案がベストだと僕は思います。
冒頭のニュースでRSA暗号も非常に解読リスクが高まっていますが、なんとか大丈夫です。
暗号プロセッサSnakeCubeのアーキテクチャはRSA暗号の鍵長を長くするのに非常に向いています。
また複数チップでも性能が出ます。複数チップの製造技術も向上しているように思います。
デジ庁の次期マイナカードのRSAの鍵長をRSA2048~65536bitで動作する仕様にすれば、いいと思われます。
RSAのメリットは鍵長を自由に長くできることです。
65536bitが必要になる頃には最先端の半導体プロセスが役立つことだろうし、
最先端の半導体の実験も兼ねる次期マイナカードでは鍵長の長いものを非常に低コストに作ることができるでしょう。
人によってRSAの鍵長が異なる仕様にしてICカードのハードのコストを下げる案もあり得るかも。
将来はSnakeCubeのモンゴメリ乗算器で動作する耐量子の公開鍵暗号も実用化されると思われます。
ICカードのような環境ではモンゴメリ乗算器1つで、複数の公開鍵暗号が演算できることは大事です。
次期マイナカードでRSA延命案が採用された後、RSAが解読されそうなニュースがあっても
DSA署名で代替できることや、本格的に問題になればRSAの鍵長を
長くして対応すればいいということで、逃げ切ります。実際には鍵長を長くする対応はしない。
RSA 7680bitが解読されたというニュースが本当になれば、世界中で悲鳴が上がるので、
その可能性は低いと思います。もし本当になれば、鍵長を長くする対応をするか、
その頃までに実用化されているであろうモンゴメリ乗算器を活かした耐量子の公開鍵暗号への変更を検討。
RSAのソフトウェアは自作すればタダ
RSA暗号のアルゴリズムをタダだと言っているわけではありません。
ただマイナカードが始まった翌年の2017年、日本国際賞で1億円の賞金が発明者に贈られている。という事実はある。
機器やサーバーで使われるのは「検証」ですが、RSA暗号の検証は非常に計算量が軽い。
つまり、素人が自作したコードでも、十分な性能になることが多く自作すればタダということ。
一方、楕円曲線は署名より検証のほうが計算量が多い。したがって高速な演算アルゴリズムが必要になる。
2次元座標を3次元に投射して除算回数を減らす方法など、非常に高度な数学が必要なため、自作は不可能。
RSA延命案では本番運用で半導体プロセスの開発支援
RSA暗号は検証の計算量が非常に少ない。ICカードのICチップのすべてを限界まで細い配線にする必要はなく、
公開鍵暗号を演算するモンゴメリ乗算器だけテストできる回路にすればいい。
万が一、計算結果を間違っても、その場で検算できるので本番運用で実験ができます。
大きな節税効果が期待できます。
SnakeCubeのモンゴメリ乗算器
この発明が大きい。
SnakeCubeのモンゴメリ乗算器は暗号や高機能暗号などでも使われるので、
マイナカードだけ頑張って回避しても、後が辛くなるだけだと思います。
SnakeCubeのアーキテクチャは鍵長を大きくしても配線層が増えない特性です。
このため半導体製造のフォトマスクのコストが安価みたいです。
詳しくは、3月24日の日記
「SnakeCubeの高効率&高性能なモンゴメリ乗算器」
3値2進の乗算器
3値2進の乗算器は、既存の半導体に組み込める3値素子の性能に依存する技術。
普通の乗算器なので既存を置き換えることが可能。
3値素子の性能が良ければGPUやゲーム機、AI専用ハードなど様々な分野に影響する。
乗算器の回路面積を圧縮できるので製造コストが下がる効果が期待できるほか、
少ない半導体材料で製造できて地球環境対策、公害対策の効果が期待できる。
日本で半導体製造工場が増えています。万が一、公害対策の効果があれば、
公害対策の効果も影響が大きいように思います。
次期マイナカードでRSA延命案が採用されると、その半導体開発支援の仕組みを流用して3値素子のテストができるため、
ビジネスで成功することができるかもしれません。
健康保険証
健康保険証をマイナカードに統合する動きがありますが病歴漏洩リスクは国民に非常に嫌われています。
ICカードの最大のメリットはパソコンや機器に挿入しない限りサーバー上の個人情報にアクセスされないこと。
しかしマイナポータルに毎日、ICカードを挿入している状況では、毎日、漏洩の脅威に晒されるのです。
そこで次期マイナカードではICカード2枚組にする案もあるように思います。
クレジットカードではETC専用カードを別に設けることをやっているところもあるので現実可能な範囲と思われます。
2枚組にしてもサーバー機器からの病歴漏洩は防ぐことができないため国民に漏洩しないことは約束できません。
それでも2枚組の安全効果に追加の1000円の税金がかかってもいいと思う国民は多いのではないでしょうか。
1000円の内訳はICカードのハードだけでなく、あらかじめ運用基準などを作りこんで置くことやサーバー側の対応費が含まれます。
茨城県ルネサス那珂工場40nmでRSA 7680bitは可能か?
3月23日の日記に書かれています。
チップレットの技術も向上しているのでICカードでも2チップは可能かもしれません。
現行のチップと暗号プロセッサSnakeCubeのチップを1チップに統合。
公開鍵暗号の秘密鍵はSnakeCube側に移す必要がありますが、そうすれば脆弱性の問題は、なさそう。
すぐに製品化ができそうです。
ICカードは専用演算器1個で複数暗号対応が最小コストです
3月22日の日記に書かれています。
次期マイナカード、Multi-Prime RSAで中継ぎ案
2月8日の日記に書かれています。
熊本JASMでRSA 7680bitを開発する案
僕は、どこからもお金をもらっていないし、どこの半導体工場とも連絡をとっていないのですが、
暗号プロセッサSnakeCubeは、各工場のシステムにあわせてHDLを生成することができると思います。
熊本のJASMでも開発はできるように思われます。北海道ラピダスが稼働してくれば半導体プロセスの開発支援として早期にラピダスに移行するのだと思います。
JASMのほうが信頼できる国民は、あるのかもしれませんが。
BitNet b1.58公式サイトのFAQ(3月20日)に{-1,0,1}ではなくて{-2,-1,0,1,2}のことが書かれていた。
僕はAIの専門家ではないから精度について詳しくないけど、より高い精度を要求するのであれば、
3値2進数の乗算器でBitNet b3.17とかBitNet b4.09のようなものが作れる。
b3.17 : {-4, -3, -2, -1, 0, 1, 2, 3, 4}
b4.09 : {-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8}
b3.17やb4.09の効率は3値素子のデバイスの性能に依存するのでビジネスの成功は保証されない。
ただ次期マイナカードでRSA延命案に変更すれば3値素子のデバイスを錬成できるので、
ビジネスの成功確率は、上がるように思う。
b3.46 : {-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5}なども可能なので必要な精度にあわせたAI専用ハードもできるように思う。
要するに次期マイナカードのタスクフォース(3月18日)の最終案の楕円曲線をRSA延命案にしなければ
日本の未来は暗くなるのでRSA延命案に変更するようにデジタル庁に押しかける必要があるかもしれない。
一般の人が見落としがちなSnakeCubeのモンゴメリ乗算器の特長について書きます。
SnakeCubeのモンゴメリ乗算器は、非常に高効率&高性能であるためにRSA暗号の延命が可能になりました。
そしてモンゴメリ乗算のアルゴリズム以外の技術輸入はありません。
IBMや日立に依存しません。僕の技術のみで作られています。
これ以上、自給率の高いモンゴメリ乗算器は国内にありません。
SnakeCubeのモンゴメリ乗算器は、積和のできる乗算器のブロックを一列に並べて、
ブロック間を特別な配線方法で接続したものです。GPUと似ていますが、この特別な配線方法によって左右のブロックに
データ転送をしながら、データをブロックでループさせるだけで高速にモンゴメリ乗算ができます。
配線がブロック内、隣接ブロックに集中していて、それ以外の配線が少ない特長があります。
この特長はチップ設計コストを安価にしたり、配線層の少ないチップに実装できるので製造コストが安価です。
家電、IoT向けのマイコンでは脆弱性によってCPUやメモリから公開鍵暗号の鍵が容易に
抜き取られることがあります。これが家電、IoTの開発者を悩ませる問題となります。
経験の浅い開発者には難しい。SnakeCubeのモンゴメリ乗算器を使えば演算器単体で
RSA暗号だけはできるのでCPUやメモリから鍵が抜き取られる心配がなく
開発コストを下げることができる。
参考URL
「わかりやすいICF3-Fのモンゴメリ乗算器の説明」
「暗号プロセッサのRSA2048bitの性能実機確認」
3月20日の日記で熊本県のJASMでRSA 7680bitを開発するシナリオを書いています。
産業スパイの中に「茨城県ルネサス那珂工場40nmでRSA 7680bitは可能か?」という反応があった。
チップは作れて性能的にも十分なものが開発できそうだと思っていますが、従来のICカード向けの
チップよりは、大き目のチップになるはずなので、ICカードに搭載できるのかという問題はあるかもしれない。
次の僕のブログが参考になります。
「RSAは終わらない - RSA 7680bitのICカードの実現可能性」
乗算器のサイズを小さくしてSnakeCubeのアーキテクチャを保ったままチップを
小さくすることもできるので、技術的には可能なのではないかと思います。
最近のルネサスの株式売却で会社設立時の日立、三菱、NECやINCJ(旧産業革新機構)が抜けてしまって、
ちょっと弱くなっている気がしています。
僕が上から入る形なら開発できると思います。
余談
40nmを使う開発部隊に日立の350nmで設計していたことがある人がいれば、僕は同じ開発ツールを使っていたのかも。
日立のデバイス開発センターが製本した「実装設計基準」という本。
ASICのスタンダードセルの使い方のマニュアルなのですが、
開発部でチップを作る人は、この本を熟読した。
デジタル庁の次期マイナカードをRSA延命案にすべき理由の一つ。
量子コンピュータの進歩により暗号解読のリスクが高まり、量子コンピュータに解読されにくい、
新しい公開鍵暗号が多数、研究開発されています。一般的には公開鍵暗号の演算量は大きいので、
ICカードでは専用演算器で演算する場合が多い。公開鍵暗号ごとに専用演算器が必要になれば、
ICカードの製造コストが非常に大きくなるので、専用演算器1個で複数暗号対応させると、
全体のコストは最小化される。
しかし新しい公開鍵暗号(PQC)の統計をとって専用演算器を設計するには、まだ時期が早い。
公開鍵暗号の仕様にパッチが入ればICカードの作り直しになるからだ。
SnakeCubeのモンゴメリ乗算器は現行のRSAの延命が可能な他、DSAや楕円曲線など複数対応が可能。
モンゴメリ乗算器を使った新しい公開鍵暗号は、既に存在しているので、実用性の検討を進めることで、
ほとんどのケースに対応できる製造コストの安価なICカードが実現できる。
デジタル庁は、SnakeCubeの高効率&高性能なモンゴメリ乗算器を搭載したICカードを次期マイナカードとして
採用すべきで、3月18日の最終案を覆すため国民は努力が必要であるように思います。
新しい公開鍵暗号の実用化を進めなくてもRSA/DSA/楕円曲線が可能。
ただコストを考えるならRSAと楕円曲線の2つではなくてRSAとDSAの2つ。DSAは楕円曲線と同じ
離散対数問題を安全の根拠としている。暗号プロセッサICF3(1999年)
はRSAとDSAを実装して製品化している。
僕がやれば、製造コストだけでなく開発コストも安価。DSAは楕円曲線より、
ずっと少ないマイクロコードで、動作するので。
将来的にコンピュータの能力が向上して公開鍵暗号の安全性を確保するためには、一般的には鍵長を長くする。
SnakeCubeのモンゴメリ乗算器は、ICカードのような環境でも、鍵長に正比例した性能向上が可能な特性があるため、
性能面では長期的な運用に耐える。他の案を検討するなら、この特性についても評価してほしい。
異論はあると思いますが、過去を振り返ると、楕円曲線は演算コストの小さい公開鍵暗号ですが
RSA暗号ができる暗号プロセッサでは、RSAを演算するために高い演算性能なのでDSAも演算できてしまう。
ICカードのような署名に限定できる用途では楕円曲線は不要だったのかもしれない。
ICF3(1999年)開発記の真実を語れるのは
僕しかいないと思うので説明しておいたほうがいいと思った事実を書きます。
ICF1(1997年)のリーダーは僕でした。3カ月の米国出張から帰国するときにICF1の
開発の仕事になることを言われた。いきなり暗号装置の開発リーダーになっても、
田上課長にいわれるままの仕事をするだけでしたが、なんとICF1のチップにバグを
混入してチップを作り直すことに成功したなってしまった。
ICF2(1998年)、田上課長に「RSAの演算器を作ってみないか?」と言われ、僕は検討開始。
大型加算器4個の演算器の絵を書いているところで、東大卒の小国さんがICF2開発チームに加わった。
小国さんは、このとき大型加算器512bitの実装などについて検討していた。
結局、ICF2の製品出荷にRSAは間に合いそうになかったのでICF2ではDES演算器のみとなる。
ICF2の製品出荷が終わるまで、僕がリーダーだったかもしれない。
ICF3(1999年)の開発が始まって正式に小国さんがICF3のリーダーとなり、
僕は、べき乗剰余演算器(暗号プロセッサ)の担当になる。
小国さんといっしょにモンゴメリ乗算器の初期検討をしていましたが、
モンゴメリ乗算器の基数を2に決定したところで、小国さんは、ICF3の4つの演算器 ---
べき乗剰余演算器、SHA-1、Multi2、DESのアービター(調停器)の仕事がメインとなり、
暗号プロセッサは、僕1人で開発した。
ICF3の開発後、しばらくはICF4の開発に向けて検討をしていた。
その頃、小国さんはリーダーからはずれてメモリコントローラーのチップ開発チームに異動。
メモリコントローラーに仕事は、あまり無かったと思いますが、
上がリーダーからはずしたかった感じ。そしてICF4の開発は中止となり暗号チップもIBMのチップに置き換えられることになった。
つまりICF3の楕円曲線や、ICF4向け3bitブースの乗算器の設計の仕事は、僕が1人でやっていたことで、
ICF3関係の東大卒の人は関係が無い。FIPS 140や疑似乱数のあたりまでは、小国さんは、いたかもしれない。
ようするにSnakeCubeのモンゴメリ乗算器や3値2進数乗算器などについては、僕のほうにお問い合わせください。
僕個人がやっていることなので。
この日記は物理系の人向け。
既存の半導体プロセスに3値素子を組込んでRSA 7680/15360bitの次期マイナカードで
使えば、RSA演算ごとに検証してフィードバックするシステムが構築されているはずなので、
このチャンスを見逃すのは惜しい。まずは次期マイナカードでRSA延命案になるように頑張らないといけない。
デジ庁は最終案で楕円曲線暗号に変更したので、何もしなければ大きなチャンスを失うことに。
3値素子の1bit全加算器を開発すれば、ほぼ乗算器が作れるかもしれない。
3値2進数の乗算器の性能は1bit全加算器の性能に依存しますが、
優れた発明があれば、普通の乗算器なので、GPUなど様々な分野で利用されることが期待できます。
通常の高性能な乗算器はWallaceTreeの出力を1回、全加算します。
3値2進数の乗算器では、乗算結果を2値に戻すため、
WallaceTreeの出力を2回、全加算しますが、パイプライン化をしなければ、
前後の全加算の遅延時間がオーバーラップするため、思ったより高速なはずです。
開発研究は、3値素子の1bit全加算器の性能に注力すればいいのかも。
3進数のメリットは1ビット(トリット)の情報量を上げて性能を上げることですが、
3値2進数は、1ビットの情報量は、あまり上がらない。
そのかわりに2値から3値に変換するときに正数と負数を桁上することなく一瞬で加算できます。
これが乗算器の最初のところで便利に使える。通常の2値では乗算の3bitブースのアルゴリズムが、
効率的にならないのですが、3値2進数では効率的になる追加効果があるため、3値2進数が注目されることになった。
4bitブースも、効率的に実装可能であることを僕は発見しています。
デジタル庁の最終案は、次期マイナカードのICチップの公開鍵暗号について前回と全く同じでした。
このため前回の僕の感想が理解の役に立つと思います。特に後編。
1月20日 次期マイナカード会議(12月26日)の感想(前編)
1月22日 次期マイナカード会議(12月26日)の感想(後編)
最終案では稀に発生した節税できるケースを捨てることになる。
このあたりの損失を考え、国民の皆様は、再度、RSA延命案に変更するようにデジ庁に進言すべきと思います。
SnakeCubeの高効率&高性能なモンゴメリ乗算器の僕の発明によってRSA延命が可能になり、
そしてRSAはマイナカードの本番運用を半導体プロセスの大規模実験場に変えます。
効果の高い実験が可能ではないかと予想しています。
世界に楕円曲線が破られた場合のRSA対策を提案できるため、数十年に一度、
あるかどうかという稀なケースだということです。
最終案では公開鍵暗号256bitセキュリティへの対応要件がありますが、
最初は192bitセキュリティでも良いため熊本県のJASMでRSA 7680bitのICチップを開発。
256bitセキュリティは北海道のラピダスでRSA 15360bitのICチップを開発すればスムーズになるように思われます。
マルチプライムRSAで中継しなくても、いいかもしれない。
JASMやラピダスの人と話をしていないので確かな話ではありませんがJASMで生産されたICチップを
僕の自宅のある狭山市の入間基地を使って空輸して、狭山市内のDNPでICカードに印刷すれば、
JASMのICチップを関東の人でも安心して使えるかもしれない。
九州内でICカードにするにはICカード印刷工場も監視対象となって警備コストがかかるので。
ICチップの空輸のついでに人も移動できそうですけど。熊本県は遠いですから。
入間基地案の良い点は、僕の自宅の狭山市に税金が自然と落ちるために、
海外のスナイパーによる狙撃の警戒などの警備費を別途計上しなくても、いいかなぁと。
国民の皆様、今、立ち上がらないと大損するということが、わかってもらえたでしょうか。
3値2進数の乗算器を作っているうちに、新しい乗算器の発明をしたかもしれない。
従来の半導体で乗算器を作れるため効果は小さいですが影響度は大きいと予想されます。
『ナオキの不等式』は2022年のノーベル物理学賞の『ベルの不等式』に感化されて命名しています。
[ベルの不等式 ] |S| ≦ 2
[ナオキの不等式] 2値素子CSA数 ÷ 3値素子CSA数 ≧ 2
ナオキの不等式は3月9日の日記にかかれた結果を簡素に不等式にしたもの。
乗算回路はCarrySaveAdderのWallaceTreeが回路の大半を占めますから、おおざっぱにいえば、
2値のCarrySaveAdderの回路の2倍以下の回路のCarrySaveAdderなら3値素子の乗算器の回路のほうが、
回路が小さくて良いことがいえる。
このことは2値素子のCarrySaveAdderを2個使った回路でも小さくなることを意味する。
つまり正極と負極の2つのWallaceTreeを使った2値素子の乗算器でも回路が小さくなることを意味する。
新しい乗算器の発明!ということで騒いでいます。
これで5~20%回路が小さくなれば乗算器の塊のようなGPUなどの機器の製造コストに影響すると思われます。
正極の結果と負極の結果を加算するオーバーヘッドが生じるので性能低下しますが、
WallaceTreeを2つに分割して並列に演算するためWallaceTreeの遅延時間の改善が見込めるので、
うまくいけばあまり性能低下させずに回路を小さくできるという予想。
被乗数のビット長による全加算遅延がネックになるので被乗数が大きくなると性能低下が激しくなるので
性能重視の場合は、従来乗算器を置き換えることが難しくなります。
4bit boothアルゴリズムの3値2進数の8×8乗算器をC言語でシミュレーションして
全ケースで正しい答えになった。
3値2進数では4bit boothのCarrySaveAdder列は1列で符号拡張が不要であることの検証ができた。
従来の3bit boothでは3倍のレジスタが必要でしたが、3値2進数では4bit boothでもレジスタ不要であることが検証できました。
3値素子のCarrySaveAdderの数は10個。そのうち7個は3入力のうち1つが0固定。
8×8乗算器ですが、これが確認できれば64×64乗算器などでも動作すると予想できる。
現状の半導体チップに組込める3値2進数の64bit乗算器が、通常と比較して
高い効率であれば、乗算器を多数、搭載するチップを使った様々なアプリで役立つことが期待できる。
ここ数日、頭痛に悩まされながら、考えたところ、3値2進数では
4bitブースの効率が良さそうです。(5倍、-5倍が作れた)
3値2進数で4bitブースの乗算器を考える。
CarrySaveAdderで構成されるWallaceTreeの加算列は64÷4+1 = 17列
17列を2列にするのに必要なCarrySaveAdderの数は、ざっと15列
2列の中で出力が1であるものと-1であるものを、それぞれ全加算。
全加算の1側から-1側を引き算すれば、乗算結果になる。
通常の2値2進数で2bitブースの乗算器を考える。
CarrySaveAdderで構成されるWallaceTreeの加算列は64÷2+1 = 33列
33列を普通の場合は2列にしますが、比較のため4列にします。
33列を4列にするのに必要なCarrySaveAdderの数は、ざっと29列+α
αは符号拡張による増分。αも1列分よりは、大きいので
(29列+α)÷ 15列 ≒ 2倍以上
すなわち3値素子のCarrySaveAdderが2値素子のCarrySaveAdderの2倍ぐらいの
回路面積があっても、全体の大きさが同じくらいになる。
机上による比較のわりには、目安になりそうな結果になったのではないだろうか。
2値素子CarrySaveAdderの1.5倍程度の回路規模で、低コストに製造できるなら、
実用化できる可能性があるかもしれない。
3値素子の開発、量産化について、僕のほうでは、全くわからないので、
一切の責任をとらないこと、あらかじめご了承ください。
2023年10月5日の日記で3値3bitブース乗算器の説明をしましたが、
もう少し回路を小さくできる改良型の説明です。
5倍だけ上位の列にキャリーを伝搬させる方式でしたが5倍以上に変更。
8倍の数を作る必要がなくなるので回路が小さくなる。
3bitブース乗算器といっていますがブースのアルゴリズムではないので、名称を変更したほうがいいかもしれない。
3値3bitノーブース乗算器。すなおにブースにしない理由は昨日の日記を参照。
ICF3(1999年)の開発直後、ICF4の開発がスタートした。
しかし途中で開発中止となりIBMの暗号チップを購入することになった。
ICF4の設計を始めて乗算器をチップ上に実装したいと開発部の田上課長に何度も、
言ったのですが許可されず、僕の手元で可能な限り乗算器の設計をしています。
OpenICF3の公式サイトのトップページ
に「幻のICF4 設計資料」があります。C言語で乗算器のWallaceTreeの
Carry Save Adderのネットを自動生成するツールを自作しています。
そのアルゴリズムの絵が書かれています。カラーのグラフがありますが
Windows95の基本的なライブラリのみで自作したツールです。←割と難易度が高い。
便利なGUIライブラリ無しで作っています。印刷は、会社の寮の自室にある自分のEPSONプリンタでやっています。
会社の開発部にカラープリンタは、ありません。
「幻のICF4 設計資料」に3bitブースの乗算器の設計メモがありますが、
会社は、3bitブースの乗算器を拒んでいたようです。2bitブースでも、あまりかわらない性能が出るので。
3bitブースでは3倍の数の計算、レジスタが必要になるためかと僕は思っています。
当時の日立の大型コンピュータの乗算器が2bitブースであることを、田上課長の指示で僕は確認する機会がありました。
人間による論理合成後の読みにくいデータで確認しています。
当時の僕は、僕が確認したところで、何の意味があるのかと思ったのですが、世界的に疑いを晴らしたかった?のかもしれない。
言いたかったことは僕は、日立から乗算器の技術を入手していない。
僕のX(ツイッター)のTL上にロシアがソ連時代に3進数コンピュータSetunを製造していたという話が投稿された。
Setunをネットで検索すると
ソ連時代のモスクワ大学の研究らしいのですが実際に1959 - 1965まで製造していたことが書かれています。
ただ僕にそれを確認する方法はない。3進数コンピュータのアイディアは平凡だが、
3進数を実現する素子の実用化よりは2進数の素子を発展させるほうが経済的であることは明白。
しかしモスクワ大学の研究者は3進数コンピュータの開発に未来を感じたのかもしれない。
僕はモスクワ大学の研究者が感じた未来を、日本の研究者が実現するために、
少しでも役立てないかと思って、この日記を書いています。
昨年、次期マイナカードの製造コストを下げる方法を思案しているうちに、
3値2進数の乗算器を思いついた。これまで何度も技術的に面白いからと、言ってきた。
詳しくは昨年の10月5日の日記に書いています。
この日記の3値2進法は僕の造語でモスクワ大学Setunの平衡3進数法と同じ-1,0,1の3っつの値を取ります。
もしかすると僕の3値2進法をモスクワ大学Setunの平衡3進数法だと思った人があったのかもしれないですが、
僕の3値2進法は2進法で平衡3進数法は3進法なので全く別ものなのです。
3値2進法は普通コンピュータの乗算器に組込んで使えるので3値2進数の乗算器だけ
開発すれば実用化が可能なため3進数コンピュータの実用化よりは、はるかに敷居が低い。
もし3値2進数の乗算器が実用化されれば、その技術を元に3進数コンピュータの
実用化も視野に入るかもしれないと思っているのです。
重要な研究ではないかもしれませんが、安くできるなら、やってしまえるかも、くらい。
もしかするとAI分野で3値2進法の乗算器が熱くなっているのかもしれない?
3値2進法から通常の2進法に変換するためのオーバーヘッドのため、
あらゆる乗算器を置換できるようには、ならないかもしれないけど、
僕の暗号プロセッサSnakeCubeでは、良く適合します。
大学の方とか、半導体が専攻の学生さんとか、次期マイナカードに
SnakeCubeが採用されるように応援してください。3値2進数の乗算器のチャンスは、
つくれるのではないかと思います。赤字になってやることは、ないと思いますけど。
僕が感じている未来は、3進数コンピュータが究極の省資源CPUになる可能性が、
少しでもあること。究極なので公害予防や、地球環境に影響できるレベルになると思っているのです。
|