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になる可能性が、
少しでもあること。究極なので公害予防や、地球環境に影響できるレベルになると思っているのです。
移転前 https://snakecube.idletime.tokyo/
移転後 https://openicf3.idletime.tokyo/snakecube/
SnakeCubeが儲かれば元のURLに戻すことがあります。
現行のカードのままICカードリーダーに個人の電子証明書を入れた高性能チップを追加すれば、
安上りかも。Multi-Prime RSAで中継ぎをした後、
ICチップにRSA/DSA 2048bit/15360bitのSnakeCubeを実装することが困難になってしまった場合の保険としても、
有効な案。僕をデジ庁の次期マイナカードのタスクフォースに呼んでください。
新しい公開鍵暗号も、安全性を評価していくうちに攻撃方法が見つかり、
結局、膨大な演算が必要になりICカードのICチップに搭載できなくなる未来が訪れるかもしれない。
そういった問題を、日本の次期マイナカードで実践し、世界に提案するという目的も達成できる。
カードリーダーに高性能チップを搭載するほうが、ICカードに搭載するより高性能なものが、
安価にできると思われます。さらに暗号プロセッサSnakeCubeは大演算器を分割しても性能が出る
特異で優れたアーキテクチャなのでチップレットも可能。
これは信頼のおける半導体製造メーカーが最先端のプロセスでなくても
次期マイナカード(リーダー)が作れるという利点がある。
そして最先端プロセスであれば3万ビット以上のRSAも現実可能な範囲となるでしょう。
国は最先端プロセスに多額の税金を投じている。
公開鍵暗号の安全性もRSA 3万ビットで、当面は一発解決してしまえる選択も可能だ。
欠点はリーダーのPC/SCドライバの開発が必要。既存の流用が可能だと思われるので、
それほど大きなコストにはならない。そもそもこのPC/SCドライバを海外に頼るべきところではない。
(過去にPC/SC以外のドライバが採用されたケースもあったかも)
注意すべき点は最先端ではSnakeCubeの大演算器を複数チップに分割した場合、
チップ間の遅延によって性能が頭打ちになる可能性がある。
大演算器の場所から、チップの送受信I/O近くの
フリップフロップまでは引き出せると思うので、
送信側チップのフリップ・フロップから受信側の
フリップ・フロップまでの遅延時間が性能を決める。
隣接するチップ間の転送になるのでクロック・スキューも計算に入れる必要がある。
この遅延時間(1サイクル)は2020年にFPGA実装したSnakeCubeの236MHzに相当する値。
236MHz ≒ 4.24[ns]
GIGAZINE記事(2022年3月3日)
「Intel・AMD・Microsoft・TSMC・Samsungなどがチップレットの新規格を策定する「UCIe」コンソーシアム設立を発表」
https://gigazine.net/news/20220303-universal-chiplet-interconnect-express/
GIGAZINE記事の図にLatency Tx+Rx < 2[ns]とある。この2nsがチップ間の遅延だと仮定。
この仮定があっているのか、わかりませんが大雑把な予測をすると
チップレットでもSnakeCubeは500MHz以上で動作。3万ビットのRSAでも数秒以内で署名演算が可能な予想。
頑張ればRSA 10万ビットもいけるか。
RISC-VのようなオープンソースのCPUを目指す16bit
WZeta。
WZetaに進捗は、ありませんがFPGAを使ったソフトプロセッサでは命令追加が
容易という利点があります。
どういった命令を追加すればアプリが高速化するのか。
アプリに近いところにいるFPGAエンジニアが考えると良い命令が作れる。
WZetaにはハードマクロ命令という機能があるので命令追加が容易。
この結果、WZetaが普及する。そういったことを考えています。
高速な専用ハードを呼び出す方法として命令を割当てる以外の方法もありますが、
命令を割当てると、専用ハードが無い場合や、将来、もっと高速な専用ハードを
追加しても、ソフトウェア側の変更が不要という利点があります。
余談ですが、話題のIntel POPCNT命令、FPGAのソフトプロセッサで、
この命令を追加するハード量は、非常に小さい。FPGAで試して、
販売数が出る場合にはASICにするということも考えられそう。
ただPOPCNT命令を追加してIntelが怒らないのかというのは、
僕のほうでは、わからないし、WZetaに拡張命令を追加した人たちの責任ということで。
余談その2 8bit時代のWZetaの命令と比較してインデックスレジスタの
インクリメント・デクリメント命令が増えて表現力が増加。
インデックスレジスタの増減にはメモリアクセスが無いので、
メモリ転送命令と連続して使えば、メモリバス8bitでも、
性能劣化が抑えられるWZetaが作れるかなぁと、、、究極の省資源CPU
産業スパイによる妨害で僕の出力が落ちています。妨害してくるのを止めてもらえると助かります。
僕にはRSAの延命が安全なのか、楕円曲線の延命が安全なのか、わかりません。
公開鍵暗号の安全を保証することはできないので確率的な話になってしまいますが、
国民にとってRSA延命のほうがメリットが多いと思っています。
量子コンピュータがわかる方にはRSA延命だと思っている方などあるかもしれない。
次期マイナカードでSnakeCubeを採用するには時間的に厳しくなっています。
もし時間的な問題でSnakeCubeの開発が難しいようなら
Multi-Prime RSAで中継ぎしてSnakeCubeを開発する方法もあるように思います。
Multi-Prime RSAとは何か?RSAと同じだと思っていいと思います。
通常のRSAでは公開鍵は2つの素数の積ですが、Multi-Prime RSAでは3っつ以上の
素数の積になるだけです。従来のICカードでRSA 7680bitを高速に演算できる半面、
場合によっては従来RSA 2048bitよりも脆弱になる可能性があります。
そこで現行のRSA 2048bitにRSA 7680bitを追加します。現行システムではRSA2048bitのみ。
新しいシステムではRSA 2048bitとRSA 7680bitの両方を使います。
従来カードにRSA 7680bitを追加するだけで当面を乗り切る覚悟をします。
Multi-Prime RSA特有の脆弱性の評価をすることなく
SnakeCubeを開発してRSAとDSA 2048bit/7680bit/15360bitのICカードを完成させます。
このときSnakeCubeの大型のモンゴメリ乗算器を活かした
耐量子暗号を将来追加できるように考えておきます。
SnakeCubeのICカードになっても、サーバー側のシステム更新が不要であることが、
Multi-Prime RSAによる中継ぎ案の大きなメリットになります。
家電/IoTでは暗号強度よりも安価であることが重要な場合も、多いと思われます。
次期マイナカードでSnakeCubeを開発できるような体制を作っていくことを!
2月3日の日記の結論と同じですが、
国民の皆様は、僕のSnakeCubeを導入するのが、良いと思います。
実績のある公開鍵暗号が、当面の間、楕円曲線1つになる問題の解決を
SnakeCubeは世界に提案できるのです。
2月9日 9:30AM追記(SNSに投稿したものを転載)
Multi-Prime RSAはOpenSSLにも実装されているので性能測定ができます。
ICカードでMulti-Primeが流行らないのはカードを落としてPINを盗まれていた場合、サイドチャネル攻撃で秘密鍵が漏洩する確率があるから。サーバーではマザーボードを落とすことが無い。
サイドチャネル攻撃について僕はRSA以外は詳しくないので専門家に聞いてください。
僕のRyzen5 5600GでMulti-Primeの性能をopensslのspeedコマンドで測定してみた( Red Hat Linuex 9.2 Openssl 3.0.7)
●RSA 7680bit 素数の数 4個
署名 94.9回/秒
検証 5900.6回/秒
●RSA 15360bit 素数の数 5個
署名 36.9回/秒
検証 1496.0回/秒
現在、社会インフラで最も良く使われている公開鍵暗号はRSAと楕円曲線(ECC)です。
RSAを延命したほうが家電/IoTが安くなる効果を得られそうですが、楕円曲線では無理です。
次期マイナンバーカードで楕円曲線を選択するのではなくRSAの鍵を長くする案を検討すべきという話です。
デジタル庁のタスクフォースでは楕円曲線(521bit)を延命する方向で進んでいるようです。
RSAと楕円曲線、どちらも量子コンピュータによる解読リスクがあります。
次期マイナンバーカードをRSAと楕円曲線のどちらを採用するのかについては、
今回の家電/IoT効果だけで判断するものではないのですが、
これまで発見されていなかった問題なので戦局を傾けRSA採択になればと思っています。
次期マイナンバーカードでRSAのSnakeCubeを開発して、家電/IoTでSnakeCubeを
安価に仕入れられるようにするのです。
楕円曲線はRSAと違って鍵長毎に安全性を評価しなければならないため、
楕円曲線(521bit)は保険なども含め、新規にコストが発生することが予想されます。
RSAは楕円曲線よりも計算量が非常に多いのですが計算式は単純なので
専用演算器にすればCPUやメモリを使わなくても計算できるものを作り易い。
そして高性能&高効率なSnakeCubeのモンゴメリ乗算器に多少、
追加をすることでCPUやメモリを使わずにRSAだけは高速に演算ができます。
CPUやメモリから秘密鍵が漏れることが絶対になく、脆弱性対策に、悩まされることがありません。
そろそろ脆弱性対策を続けていくよりはRSAで一発解決すべきのように思います。
SnakeCubeのモンゴメリ乗算器+αを家電/IoTで使えば経験の浅い開発者でも家電/IoTの開発が容易になります。
そして脆弱性の審査コストが無くていい、あるいは、低コストな審査でいい。
これが家電/IoTが安くなる効果です。
さらに量子コンピュータによる解読リスクは家電/IoTを安く販売してもいい理由になるメリットも
あるので問題になりません。
SnakeCubeのモンゴメリ乗算器は海外などの論文で多く使われているRNSを使用していません。
SnakeCubeは非常に輸入アルゴリズムが少ない。技術輸入されているのはモンゴメリ乗算くらいです。
またIBMや日立の技術が入っていません。恐らくICカードやマイコンではRNSよりもSnakeCubeが勝ちます。
乗算器の利用率からSnakeCubeを超えることは、理論的に非常に困難だと思っています。
家電/IoTといえども解読されないためには鍵長を大きくできる必要があるので、
他のRSA演算器ではなくて、SnakeCubeということになる。
数学関係の仕事が減るので、数学者の嘆く声も聞かれますが、SnakeCubeが採用されれば、
次のフェーズでSnakeCubeの大演算器を活かした同種写像の仕事を創造できます。
SnakeCubeのモンゴメリ乗算器一つでRSA/DSA/楕円などの従来暗号が演算できて、
量子コンピュータに強い同種写像ができる価値を作れます。
これはICカードのような限られた計算機資源の場合に有効です。
国民の皆様は、僕のSnakeCubeを導入するのが、良いと思います。
実績のある公開鍵暗号が、当面の間、楕円曲線1つになる問題の解決を
SnakeCubeは世界に提案できるのです。
|