1月13日の日記にちょっと書いていますが、
産業スパイから反響があったので、事実を正確に書きます。
1994年に中央研究所に新卒の修士卒として入りました。翌年、大型コンピュータの開発部に転勤になりました。
東大卒が多い部署でしたが転勤直後は日立の稲門会にも数回、参加しました。
その後、「1年下の東大卒の人に、稲門会に参加するのを数度、妨害されたため、僕が東大グループになったのかと思った。」
ということを13日の日記では書いていますが、正しくは稲門会の日に毎回、
部署の飲み会があって案内の紙が回っていた。ところが僕が稲門会を優先させて動き出したところを
東大卒に捕まったということです。そして東大卒が多い部署の飲み会に参加していました。
部署の飲み会の開催日、明らかに稲門会の日を意識したものになっていました。
このため僕が東大グループに入ったのかと思ったのです。
それで稲門会に参加しなくなったのです。
量子コンピュータの解読リスクのために現在のRSA 2048bitから3072、4096bitにすることを考えている人はあるようです。
しかし量子コンピュータの進歩が早ければ4096bitでも解読される可能性がでてくるのです。
そこでRSA 10万ビットというアイディアが出てきます。RSA暗号は鍵長が長くなると急激に計算量が多くなります。
そのためRSA暗号以外の公開鍵暗号や、量子コンピュータの解読に強い新しい公開鍵暗号を考える人もいます。
計算量が少ないことをだけを考えてRSA暗号以外の公開鍵暗号を選択しても、脆弱性の研究など、
いろいろお金がかかるので全体ではRSA暗号のほうが安価ということもあると思っています。
暗号プロセッサSnakeCubeはFPGAに実装しても高速です。新規にハードを開発する必要がないのです。
既存のFPGA搭載のデバイスに暗号プロセッサのソフトをインストールするような感じです。
Xilinxの大型FPGAでRSA 10万ビットのSSL証明書の署名をする話をしていますが、
大型のFPGAであればXilinx以外のFPGAでもSnakeCubeは動作させることは可能だと思います。
ただ、このときに複数のチップをパッケージするスタックド シリコン インターコネクトの性能が影響するだろうと思っています。
SnakeCubeの類似品に注意をしています。
僕を疎外すると全世界的に損失みたいなことが、あるかも。
元々がARM Cortex-M0 12MHzだから10倍を出すのは難しくなくて周波数10倍の120MHzのARMにしても、
それほど高くないと思いました。
SHIROのIchigoJam日記、「IchigoJam Rの速度検証」
参考までに数日前に発表があったマイコンボードRaspberry Pi Pico
は、Cortex-M0+の133MHz 2コアなのに550円と低価格。
IchigoJamはマイコンボードというより子供向けパソコンみたいなので価格を比較しても意味がないことなんだろうと思いますけど。
しかしIchigoJamのこの発表のおかげで、気付きました。
僕のSnakeCubeの従来研究の性能10倍は、同じ半導体プロセスで10倍の性能が出せる画期的なアーキテクチャという意味です。
5Gの基地局なんかだと通信インフラとしてRSA10万ビットのSSLサーバ証明書というのは、
あるかもしれないと思っています。
5GでSSLサーバ証明書の環境が世界的に確立されると、
一般のWebサーバ向けもいけるのかと思ったのです。
CPUによるRSA10万ビットの署名時間を実測したことはないですが60秒としましょう。
CPUのシングルスレッドの性能は頭打ちなので、これ以上、あまり時間を短縮することはできないと思います。
XilinxのAlveoによるRSA10万ビットの性能について、あまり精度ある予想は、今のところできないのですが3秒だとします。
AlveoがあればRSA10万ビットのSSLサーバ証明書は一般向けにも販売できるかもしれない。
売れるかどうかは、ともかくAlveo向けのSSLアクセラレータの開発を急ぐため、
産業スパイの妨害を、どうにかしないと、儲かる可能性が失われます。
僕が持っているAlveo U50だと3万ビットくらいまでしかいかないかも。性能を犠牲にすれば6万ビットかも。
ちょっと、まだ精密な見積もりはできないです。
頭痛がなければ去年には、もっと精密な見積もりができていたと思うのですが。
5Gの基地局の具体的な処理について僕は知らないのですが管理センターから
基地局をリモートで制御するのに基地局のSSL証明書というのは、ありそうな気がします。
量子コンピュータによる暗号解読について、あまり詳しくはないのですが、
qビットのノイズを話を聞く限り、鍵長を長くすることでRSA暗号を延命できるように思ったのです。
現時点ではRSA 2048bitが主流です。2030年にはRSA 3072bitという考え方もあるようですが、
基地局みたいなところでは10万ビットにすれば、重要な通信インフラの安全を確保できるように思うのです。
RSA暗号は鍵長が大きくなると急激に計算量が増えるのでCPUでは性能不足になるので、
暗号プロセッサSnakeCubeが役立ちます。
Xilinxが既に5G向けの大型FPGAを搭載したPCIeカードを開発しているので、
SnakeCubeのソフトプロセッサをFPGAに書き込めば、ハードウェアを新規に開発するということはありません。
Xilinxの5G向けPCIeカードのFPGAはUltraScale+なので、現在開発している
SnakeCubeのParrot Likeが、そのまま使える状況です。
僕がこの方法を提案しなければ、他のもう少しお金のかかる方法になってしまうかもしれません。
検討する価値があるように思っています。
RSA10万ビットにこだわる必要はなく、もっと大きなビット長でもいいのですが、
XilinxのFPGAならRSA10万ビットで3秒とかで計算できるかも。
ちょっと見積もりが甘すぎなので、数字を出さないより、いいだろうという感じで。
SNS上で多数の人がARMマイコンの投稿をしていたので話題なのかも。
PC Watch記事
「550円のマイコンボード『Raspberry Pi Pico』が登場」
僕の8bit CPU ICF3-Z
と競合しているように見えた人が多かったのかもしれない。
マイコンに詳しくない人向けに解説するなら、このARMマイコンで使われている
Cortex-M0は、ARMの命令セットが動くことがメリットである安価なCPUです。
32bitが活かせないマイコン用途において演算性能ではICF3-Zのほうが非常に有利です。
除算器有りのRISC-VですらICF3-Zは5倍になることがあるので、除算器のないCortex-M0では、
10倍以上、ICF3-Zが高速です。このためCortex-M0の話題がSNS上で消滅したのですが、
ここでCortex-M0が出てきたのはPython(Micro Python)が
動作することをメリットにしているからだと思われます。
ちなみにICF3-Zは仮想マシンの機能が売りなので、いろいろな言語が動くようになる、、、ことが期待できます。
トランジスタ数はICF3-Zのほうが、圧倒的に少ないので、製造原価低減が期待できます。
地球環境に優しい半導体材料で製造できる可能性など。
半導体デバイスには詳しくないのですが、直感的には、トランジスタと比べて、
ROMは安価に作れるように思っています。ICF3-ZのプログラムメモリはROMでいいので、
トランジスタ数が少ないことが、製造原価低減に繋がるような気がしています。
気がしているだけです。ICF3-Zは、制限の緩いオープンソースのライセンスなので、どこでも製造できます。
なのでICF3-Zが製造メーカに、あまり嫌がられることもないだろうと思っています。
根拠となるデジタルデータの資料はないのかと、思った人がいたので。
あまり匿名による要望は、答えたくないと思っていますが。
一般の人は比較がないと理解しにくい。つまり比較できるものを消せば問題を見えにくくすることができる。
それで去年8月に結果が出ていたのですが、これまで苦労していました。
開発を妨害されている状況なので、昨年8月の結果で、うまく説明できるように、なんとかしてます。
Xilinxのホワイトペーパによる実測値による比較
米国学会の論文にあった方式から性能予測できた値との比較
この日記ではXilinxのホワイトペーパ「Zynq UltraScale+ MPSoC で暗号化処理を高速化」
(WP512 (v1.0) 2019 年 5 月 21 日)のPDFをダウンロードできるURLのみを示します。
https://www.xilinx.com/support/documentation/white_papers/wp512-accel-crypto.pdf
前者は、実測値による比較はので倍率に間違いはない。
上記、URLにあるPDFが改竄されていない保証はないと思っています。
このため日本よりは米国のサイトからのダウンロードがいいと思って、
URLは米国のサイトになっています。ペーパーの日付とバージョンを確認してください。
後者は日記に書いています。
従来研究との違いを、わかりやすく書いた日記(1)
従来研究との違いを、わかりやすく書いた日記(2)
5G技術情報持ち出し疑いで元ソフトバンク社員逮捕が話題のようです。
現在、開発中の暗号プロセッサSnakeCube(Parrot Like)は5G技術として
実際の基地局で利用できる製品にすることも可能なのです。
暗号プロセッサは必ずしも必須という技術ではないですが5Gの基地局向けにXilinxがFPGAデバイスを開発している。
それに搭載されるFPGAはUltraScale+なのでParrot Likeと同じ。つまりParrot Likeが、そのまま使える可能性が大きい。
SnakeCube(Parrot Like)は従来研究(技術)と比較して性能10倍以上という予想なので大きなビジネスがある可能性がある。
5G基地局の具体的な処理について、ほとんど知らないのですが、
基地局間の鍵配送で大きな鍵長のRSA暗号を使うこともあるかもしれない。
FPGAの暗号プロセッサなので特別なハードが必要ない。そして大きな鍵のRSA暗号をCPUよりも高速に計算できる。
RSA暗号が解読される問題が発生しても大きな損害になることはなく、
取り敢えずハードの必要がない安価なRSAで鍵配送をするということは、ないだろうか?
基地局用の特別に大きな鍵長をもったSSL証明書とか?
仮に大きなビジネスがあるとするなら、産業スパイの個人的な都合で、遠隔頭痛を発生させ、
開発遅延をするのは、大きな金額の損失となるような気がします。
少なくも産業スパイを速やかに抑止して、将来的には産業スパイを排除しないといけないです。
産業スパイが付いた状態では、まともなことができないので。
昨日の日記「暗号プロセッサで専用サーバのビジネスで儲かろう」
で従来研究の10倍と言ったせいか、論文を投稿したほうがいいと思った人がいたみたい。
SnakeCubeの発明者である僕は、
1992年3月、早稲田大学理工学部電気工学科卒業、1994年3月、早稲田大学理工学研究科計算機工学専攻の修士卒です。
1994年4月、日立製作所 中央研究所 超高速プロセッサ部に入ることになったときに、大学の先生が、
学会に入るようにと薦めたので2005年の退職で収入が無くなる時まで正会員でした。
研究室では自動並列化コンパイラの研究をしていました。
並列処理ですがソフトウェアによって自動的に並列性を抽出してプロセッサに仕事を準最適に割り当てることです。
一方、SnakeCubeの発明はRSA暗号の計算(厳密にはべき乗剰余の計算)を、
手動で数学的に等価な変形をしてチップ上で並列に処理できるようにしながら、パイプライン化をすることです。
似ているのですが技術的には異なる。といっても並列処理技術ではあるので、
発明者の僕が、かつての指導教官のところで、論文を書けばいいと思っています。最終的に別の道を選ぶことはあるかもしれませんが。
この研究はFPGAの実機で実時間の性能を競うことができる、明快な研究です。
この日記に書いてある情報があれば、類似の研究をしている人にわかる内容だと思っています。
特許庁ご推奨のスイスのWIPOでSnakeCubeの再現可能なデータにタイムスタンプを押しています。
製品を先に開発して、その売上で論文投稿の費用を出せればと思っています。
僕は成田/笠原研の笠原研に入りました。
写真の上の本「並列処理技術」は2018年IEEE Computer Society会長に選出されたこともある、早稲田大学副総長の笠原先生の教科書。
写真の下の本「電気回路理論」は成田先生の教科書。
ちなみに僕は早稲田大学のOB/OGの稲門会から、すぐにいなくなっています。
これは日立に入って1年下の東大卒の人に、稲門会に参加するのを数度、妨害されたため、僕が東大グループになったのかと思ったので。
先日、産業スパイから聞いた話、妨害した東大卒の人は、半導体の研究で有名な金沢大学の秋田先生と同期らしいことを聞かされいます。
(僕の頭と体が、破壊されている問題を考えていただければと。)
PC Watch記事、
「ソフトバンク元従業員が逮捕。楽天へ5G関連技術を不正持ち出し。楽天は否定」というニュースがメディア各社から報道されている。
もう20年以上前の話になるが僕はIBM互換な暗号チップを開発している。
そして、その後継機種ではIBMの暗号チップが採用され、僕がバックアップのためIBMの暗号チップから
秘密鍵を抜く方法を見つけている。あまり僕を知らない人は、
IBMや日立の暗号関連技術を不正に持ち出す問題がないかと思った人は、かなりいただろう。
結論を先に言うと、暗号技術を不正に持ち出すという問題は全くない。
当時、IBMの機密情報を扱っている部屋にいました。東大卒がいっぱいいた部屋。
大型コンピュータの設計全体をまとめている部署なのでハードや組込みソフト屋など、いろいろいる。
僕は基本、ハード屋なので、基本的にIBMの機密情報を知る必要がない。
日立より高性能なCMOSデバイスを回路シミュレーションできるIBM製の回路シミュレータを扱っていたことくらい。
IBM互換な暗号チップといっても、CPUのような命令セットがあるわけではなく、
べき上剰余演算とかAPIレベルの互換性があれば良かった。
このため、べき乗剰余演算(RSA暗号)を高速化するハードを自分で考えるだけで良かったのです。
東大卒がいっぱいいる部署にいましたから、日立の他の技術部署から買うより、
自部署の人間を使ったほうが、東大卒にとってお得なのです。
結果、僕が多くの雑用とともに多用されました。結果から見ると暗号チップは結局、僕がほとんど設計をしている。
2005年の退職時にICF3を持ち出す打合せを日立製作所として1回の打合せで持ち出しに成功したのです。
参考までの話、壁のない隣の部屋には非東大卒の大型コンピュータの設計部があった。
そこには大学時代の研究室(現副総長)の同期がいた。僕は修士卒だが、学卒で入っているので2年先に入っている。
6年くらい壁のない隣の部屋にいたはずだが一度も、話をしたことがない。無駄な動きが一切ない様子が、伺えると思う。
僕だけ特別扱いだったということもあるけど。
昨年(2020年)の8月にXilinxのFPGAを搭載したArty
でRSA 2048bit(decrypt crt)が1.74[ms]の性能を記録したことを何度も言ってきている。
従来研究の10倍以上の性能という予想なので、僕のSnakeCube
を使った専用サーバのビジネスの差別化ができるのではないだろうかという話です。
専用サーバを調べてみると国内でも専用サーバのビジネスをしている企業は多数あるようです。
XilinxのFPGA、Zynqを使ったAVNETのUltra96-V2は評価ボードながら
2万9,800円
(2021年1月12日)で販売されている。CPUはARMのクワッドコア(最大1.5GHz)でFPGAはAlveoと同じUltraScale+。
つまり現在、XilinxのPCIeカードAlveo向けに開発しているParrot Likeを共用できる。
細い開発工数でメンテナンスできる可能性が高い。
Xilinxのホワイトペーパ
「Zynq UltraScale+ MPSoC で暗号化処理を高速化」によればRSA 2048bit(Decrypt)が12.846[ms]と書かれています。
僕のArtyの記録は1.74[ms]、しかもUltraScale+よりも2ランクも格下の、一番遅いFPGAで1.74[ms]なのです。
プロセスの差を約1.5倍とするなら、従来の10倍以上の性能が出せるということです。この数字は予測ですがかなり確実な数字です。
この性能を活かした低レイテンシなサービスを実現できるのではないだろうか。(20倍以上になる可能性もある)
僕の暗号プロセッサがあれば儲かるかもしれないので、SSLアクセラレータの開発作業が遅れると問題が大きいということです。
8bit CPUを搭載したゲーム機、ゲームボーイの自作OS、AMADOがニュース
になっている。ネット上では電磁パルス攻撃で世界中のコンピュータが壊れて動作しない世界でも
ゲームボーイの自作OS AMADOは稼働するみたいな話もされている。
どうやらgccなどのコンパイラを使わずにスクリプトだけで、できることが話題なようです。
さて、OSとはハードの違いを吸収するためにあるなどと、考えているうちに、
他の8bit CPUと比較しても技術的に優れているICF3-Z
を8bit CPUのRISC-V
のように「みんなで」して欲しいなぁと思ったのでした。
MSXのようなオープンソースハードウェアの
8bit CPUのパソコンを設計し、そのエミュレータが任天堂Switchで厳格に動作するようにすれば、いいのかもと思った。
僕に時間は、なさそうだけど。昔のBASICマガジンや月刊I/Oのような感じで、自作言語、コンパイラ、アセンブラを公開したり、
自作ゲームを作って公開すれば楽しいと思う(自作が楽しい人にとっては)。
ICF3-Zには自作言語、コンパイラに向いた機能がある。
ゲーム向きな自作言語でもしいし、制御で使うことを考えた言語でもいい、小規模で未完成なものは、
個人でも趣味で作れる。公開して、多くの人がいいと思えば、それから(AMADOのように)商業化を考えてもいい。
ICF3-Zは32bit ARM、RISC-Vがあっても、トランジスタ数が少ないなどの理由で、絶滅させられる理由がない。
僕はICF3-Zが将来、産業で役に立つと思っているので、苦労しない範囲で、どうにかしたいと思っているのです。
オープンソースの8bit CPU ICF3-Z
ICF3-Zは、他の8bit CPUで代替できないほど、優れているので、よろしくお願いいたします。
この自慢話は、何度もしているのですが、最近、灘高校卒とか、京大卒とか、
僕に攻撃をしてきそうな雰囲気もあって、また書くことにしました。
ICF3の後継の暗号装置では、日立で暗号チップを開発するのを止めて、IBMの暗号チップを採用することになったのです。
ところがIBMの暗号チップから秘密鍵をバックアップする方法がなくて国内の販売で困ることになったのです。
そして僕がバックアップする方法を見つけました。
IBMの暗号チップには、同じチップにリストアするためのバックアップ方法は、あったのです。
このIBM仕様では故障すると永遠に暗号化されたデータを復活することができず、それでは困る国内の顧客があったようです。
永遠に復活できなくとも、秘密を漏洩させないことが重要だという顧客にはIBMの仕様で問題がないのですけれども。
見つけた方法は暗号チップから秘密鍵をバックアップするための暗号鍵を暗号装置に設定する必要があるのですが、
この暗号鍵に細工をするのです。すると暗号装置の乱数によって
暗号化された秘密鍵が取り出せるのですが確率50%で別の暗号装置にもリストアできるデータになることを発見しました。
確率50%ですから、何回かやれば、リストアできるデータが取り出せるようになります。
こうして、またもや、僕は大型コンピュータの事業に貢献してしまったのです。閃きなので、苦労してませんが、数学の才能は必要だと思う。
この時、ICF3(1999年)のリーダも、この問題に挑戦していたはずです。
僕のほうが忙しいので、この問題を僕がもらったのは、多分、リーダより後。
リーダは、東大卒の修士で日立の中央研究所に入っていますから、多分、東大卒の中でも成績優秀。
GIGAZINE記事、
Googleの物理キー「Titan セキュリティ キー」がサイドチャネル攻撃により突破される
SnakeCubeに楕円暗号(ECDSA)を実装した場合、秘密鍵を盗まれるか?という話をします。
注意して実装すれば、それほど問題ないように思っています。
詳しくは、このページに書きました。
SnakeCubeではRSA暗号の演算は値に依存しない動作をするので、このサイドチャネルに対する耐性は、
非常に高く安全です。
サイドチャネルの研究費など、楕円暗号(ECDSA)では間接的にコストがかかっていて
RSA暗号のハードに費用がかかっても、トータルではRSA暗号が割安になるという考え方もありかもしれません。
税金見える化のページを更新しました。
間接的な税金かもしれない情報のページへのリンクを追加。
日立とは、まだ険悪な状況が続いています。多分、ずっと険悪だと思う。
ICF3(1999年)の歴史、楕円暗号(ECDSA)
についてちょっとだけ。
はじめに洲崎氏が登場しますが、TRASIO/AISTの須崎氏と間違いやすいので注意しましょう。
2人ともハードウェアセキュリティでネット上に名前が出ていると思います。
ICF3開発の当時、洲崎誠一氏は日立製作所システム開発研究所に在籍してモンゴメリ乗算の
アルゴリズムの英文をFAXで送信していただいたり、
ECDSAのスカラ倍の問い合わせに対する返信をしていただいたり、しました。
あとブロック暗号のM6(cipher)のアルゴリズムも洲崎氏からの入手だったかも。
技術的な話はECDSAのスカラ倍についての質問1つだけで、
あとはアルゴリズムの資料を送ってもらっただけだと記憶しています。
暗号装置を開発していた僕は秦野市にある日立の事業部の隣にある寮で生活をしていました。
そして楕円暗号は自主的に勉強していました。
自分のパソコン通信のIDを使ってIEEE P1363のドラフトをダウンロードしていました。
当時は、わかりやすい楕円暗号の日本語の資料はなくて、楕円暗号がわかっているだけで、
社外にも自慢ができる状況でした。
ICF3にIEEE P1363のドラフトにあった楕円スカラ倍の計算式を実装して、
システム開発研究所に打合せにいったときの資料をOpenICF3公式サイトで公開しています。
「ICF3で楕円暗号の実装検討をした社内資料」
打合せのときに自分の資料に鉛筆書きしたメモから、
ECDSAが本命になるということをシステム開発研究所の人が言っていたようだという記録が残っているようです。
ちなみに、この資料の楕円パラメータはビットコインのパラメータだったりします。
ICF3に楕円のスカラ倍の実装をして性能を出していますが、
ICF3は512ワードしかプログラムメモリがない都合で、どうしてもIEEE P1363
にある方法を実装できなかったのです。そこで少し簡単にした方法でもいいかという質問を
システム開発研究所に問い合わせたところ、その方法でいいですという返事を洲崎氏から電話で受けた。
という事実があったという話でした。
9日8:00AM そういえば当時、システム開発研究所にいた梅木氏からも情報をもらっています。
モンゴメリ乗算のアルゴリズムを半導体チップに実装した場合の性能の見積もりをした後、
バレッタ乗算が気になって、僕が梅木氏から取り寄せました。その時の結論は、理論的な計算量はモンゴメリ乗算と、
あまり変わらないものの演算データの移動にかかるコストがモンゴメリ乗算のほうが少ないという結果だったと思います。
梅木氏に整数論の原始根の説明とか神奈川県の秦野市の事業部まで来ていただいて教示いただいたような気がします。
原始根につても僕が興味を持って梅木氏から取り寄せたような気がします。この教養が役に立ったのか、
IBMの暗号半導体チップから、秘密鍵をバックアップする方法を見つけることができました。
ICF3の後継機種では日立での暗号チップの開発を止めてIBMの暗号チップを購入することになったのですが、
秘密鍵をバックアップする方法がなくて、国内向けの大型コンピュータの販売で困ったとき、
バックアップする方法を僕が見つけました。サイドチャネルというような話ではなく、
鍵を盗まれないようにするために暗号装置に設定する鍵を、細工した鍵にすれば、バックアップできるということです。
ブログにも書いていますが、数学が役立つという話ができる、イベントでした。数学の知識ではなく才能。
2018年に発明をしたSnakeCubeですが、
これまで開発作業に妨害が入ることが多かったのです。
昨年の8月にRSA2048bit(decrypt crt)、1.74[ms]の性能を出した再現可能な
設計データにタイムスタンプをして証拠を残しています。
日本のINPITとスイスのWIPOの双方でタイムスタンプをしています。
それより前にもINPITでタイムスタンプをしていたのですが、その証明書が何故かHDDから揮発するといけないので、
本日、もう一度、証明書をINPITからダウンロードしました。
産業スパイが証拠隠滅をしてくるのを抑止できればと思って、この日記を書いています。
昨日の日記(1)の追記。
欧州論文の実装で使われているXilinxのDSPはDSP48E1です。
これは僕が昨年、SnakeCubeを
Artyに実装したものと同じなので比較しやすいです。
仮に欧州論文の方法をSnakeCubeと同じArtyに実装した場合、SnakeCubeが何倍速いのかを予測します。
SnakeCubeはプロセッサがついているのでCRTが使えて演算器は1024bit×2個になります。
欧州論文にはプロセッサがついていないのでCRTが使えないため2048bitの演算器になります。
このためArtyには1個しか入らないと予想します。
SnakeCubeは1つのRSA2048bit(decrypt crt)の計算に2個の演算器を並列動作させて演算できるので2倍速い。
CRTを使うので理論的に4倍速いのですが演算器の幅がSnakeCubeは半分なので2倍速い。
昨日の結論から方式性能4倍ですが、ブログのほうの結論を使うと3.2倍。
2×2×3.2 = 12.8倍
同じArtyでSnakeCubeのほうが12.8倍速い、ということがあり得る。圧倒的かも。
2021年6月6日 追記
欧州論文に普通のプロセッサを追加しても性能は出ません。
特別に作られた薄いプロセッサが必要です。SnakeCubeでは既にFPGA上に実装して完成しています。
電通大の崎山先生が欧州(ベルギー)と共同研究でRSA暗号高速化の論文(米国学会ACM 2007年)を出しているようです。
「Efficient Pipelining for Modular Multiplication Architectures in Prime Fields」
GLSVLSI’07, March 11-13, 2007, Stresa-Lago Maggiore, Italy.
Copyright 2007 ACM 978-1-59593-605-9/07/0003
以前、僕のブログで解説したものです。
もう少しわかりやすい説明をしてみることにします。
欧州の論文のタイトルを、わかりやすい日本語にすると、
「素数ベースの数を除数とした剰余演算の効率的なパイプライン・アーキテクチャ」
数式でいうと
A × B mod C (C: 素数ベースの数)
RSA暗号では、この計算式を連続して行うのですが、計算が終わらないと、次の計算ができないので、
A,B,Cのbit長と同じ大きさの演算器を用意しても、
準備計算(u)が入るため演算器が連続的に利用できず、効率が悪いのです。
1 A×B mod C
2 uの計算1
3 uの計算2
4 uの計算3
5 A×B mod C
6 uの計算1
7 uの計算2
8 uの計算3
uの計算は最下位の1桁だけ、わかれば、計算を開始できます。
そこで欧州の論文は4分の1のサイズの演算器を使ってパイプライン化して演算する方法をしています。
1 A×B mod C (1/4)
2 uの計算1 , A×B mod C (2/4)
3 uの計算2 , A×B mod C (3/4)
4 uの計算3 , A×B mod C (4/4)
5 A×B mod C (1/4)
6 uの計算1 , A×B mod C (2/4)
7 uの計算2 , A×B mod C (3/4)
8 uの計算3 , A×B mod C (4/4)
大雑把に言うと4分の一のトランジス数で同じ性能がでる効率のいい方法ということになるのです。
僕のSnakeCubeは、A,B,Cのbit長と同じ大きさの演算器を用意します。
そしてA×B mod Cを前半と後半の2回にわけて演算します。大雑把な説明なので、厳密には違うのですが、だいたいこんな感じ。
uの計算は後半の演算が開始されるまでに終わっていればいいというところがポイント。
1 A×B mod C 前半
2 A×B mod C 後半
3 uの計算1
4 uの計算2 A×B mod C 前半
5 A×B mod C 後半
6 uの計算1
SnakeCubeは欧州方式の2倍のトランジスタ数を使っていますがuの計算による演算器の空き時間が小さいのです。
さらにRSA暗号ではA×A mod CとA×B mod Cの計算が連続するためAとCのレジスタを共用しながら、
同時にA×A mod CとA×B mod Cの計算をさせることで「uの計算による空き」がなくなるようにします。
1 A×A mod C 前半
2 A×A mod C 後半
3 A×B mod C 前半 u1の計算1
4 A×B mod C 後半 u1の計算2
5 A×A mod C 前半 u1の計算3 u2の計算1
6 A×A mod C 後半 u2の計算2
7 A×B mod C 前半 u3の計算3 u1の計算1
8 A×B mod C 後半 u1の計算2
SnakeCubeは欧州方式の2倍のトランジスタ数を使っていますが、演算器がuの計算で空きになることがありません。
効率的に演算できています。またSnakeCubeではuの計算結果を配送する
遅延時間を短くする技術で欧州方式よりも高周波数で演算器が動作します。
さらに、欧州方式では鍵を大きくしていくとu配送の遅延時間が大きくなるため、効率が下がっていくのですが、
SnakeCubeでは、鍵が大きくなっていってもu配送の遅延時間が変わらないので鍵が大きくなっていくと差が大きくなっていきます。
両者をXilinxのFPGAで比較するとSnakeCubeのほうが約2倍の周波数で動作します。
つまり理論的な性能でSnakeCubeは欧州方式の4倍の性能です。
昨日の日記に「EU加盟国、18兆円超の資金を半導体製造に投入宣言」を書きました。
SnakeCubeのアーキテクチャは、簡単に説明するなら小さいプロセッサを1列に並べたものです。
鍵が大きくなっても、鍵の大きさに比例した小さいプロセッサを並べていくだけです。
RSA暗号の計算式から、並列性を引っ張り出して、パイプライン化して、
クリティカルパスの短縮もしている小さいプロセッサの構成方法と配線方法を発明しています。
つまり小さいプロセッサのverilogファイルの検証は、短時間に簡単にできるのです。
verilogファイルを見れば、小さいプロセッサは信用できるものだとわかるのです。
それを一列に並べても、信用できるのでSnakeCubeのverilogファイルから
信頼できるプロセッサを作ることは容易であることがわかると思います。
SnakeCubeのプログラミング仕様を決めて公開して、
外部の人が高速な楕円暗号プログラムを開発することを考えています。
楕円は利権の問題が絡むため利権を含めたプログラムが期待されるのです。
少しの問題点はSnakeCubeではCPUのようにISA(命令セット)が1つにまとまることは難しい。
デバイスのもつ、最大性能を引き出すため、命令セットの互換性の維持が難しい。
これはについてはアセンブラのマクロで、ある程度、対策できるだろうと考えています。
性能が必要なら演算器はデバイス毎に開発することになるのですがSnakeCubeの
アーキテクチャはシンプルなので、デバイス毎に開発する工数が小さいのです。
全世界的にSnakeCubeがいいと思います、ということを言っています。
GIGAZINE記事
18兆円超の資金を半導体製造に投入する共同宣言にEU加盟国が署名
記事には
「ヨーロッパはネットワークの高速接続などに使われる『次世代の信頼できる低電力プロセッサ』を設計し、
最終的に製造する能力を強化する」
と書かれています。ヨーロッパ各国の論文まで見ていないですがRSA暗号などの公開鍵暗号の高速化に成功していれば、
常時httpsのあたりで世界で騒ぎになっていたはずで、
僕の暗号プロセッサSnakeCube
のほうが先に発明(並列化、パイプライン化、クリティカルパスの短縮)に成功していると思います。
verilogファイルのIPを開発して販売できるようにしないと、いけないのかも。
parrot like開発中。
1つのDSPを制御するコードでDSP 4個を使った「1つのDSPのようなもの」を制御する方法の実装。
DSPを制御するコードを生成するアセンブラのプログラム1つで「1つのDSPのようなもの」も制御できるようにする。
相変わらずスリープの魔法攻撃で眠らされています。
記事の情報の正確性はわからないけど改造ファームで儲ける話は、ちょっと面白いかもと。
「お宅のAntminer S9をアップグレードしてビットコインマイニング(Braiins OS+)」
メーカ以外の組織が改造ファームを作って、改造ファームで儲かった利益から勝手に2%のマージンを抜くというような話。
僕の暗号プロセッサSnakeCubeも、
儲かるなら、そんなビジネスを考えても面白いかもと思いました。
僕よりも性能のいいSnakeCubeのプログラム(ファーム)によって利用者がメリットを得た分を改造ファームを開発したところが得る。
RSA暗号については、僕が最適なプログラム(ファーム)を作るのですが、
楕円は、あまり高速なプログラム(ファーム)を作れない可能性はあると思っています。
SnakeCubeの支援者が増えて僕の利益になれば、改造ファームを考えていくのかも。
僕が決めたルール範囲内で、僕が儲からないように努力する人によって、
潰されることの対策も考えないといけないのかも。
ルールを厳しくすれば、善良な人達も制限を受けて儲かる確率が減るという問題。
普段、僕が儲からないように監視している人が、儲けを得る確率が高いということも、気になっている。
僕の役に立っていただけるような人が儲かるように、考えていこうとは、思うのですが、難しい。
暗号プロセッサSnakeCube
のSSLアクセラレータはWebサーバの性能を向上させることができるので
狭い部屋でも処理能力を向上させ、コスト低減をさせることができます。
量子コンピュータの進歩によって公開鍵暗号が解読される心配が増加しましたが、
現時点では、とりあえず鍵を大きくする対策が考えられます。
RSA暗号では、計算量が劇的に増加しますが、SnakeCubeのSSLアクセラレータは、
CPUよりも高速に演算が可能なため、遅延時間の問題でRSA暗号をあきらめなければならない
状況でも、SnakeCubeがあれば対応できるように思います。
恐らく類似競合より高効率なのでSnakeCubeが支配的に普及することもあるかもと考えています。
例えば、SnakeCubeのスループットが3倍であれば、30万円のPCIeカード3枚のところを1枚で済む。
90万円では商売にならないでしょう。具体的な価格については、まだわかりませんが。
安価だという理由は、僕がSnakeCubeの発明者であり、
FPGAに実装できる能力を持ち、ミドルウェアを開発する能力も持っていて、自分の会社、
株式会社iCanalを持っているからです。
SnakeCubeをXilinxのAlveo U50に実装しようとしています。
Alveo U50の価格については、僕の範囲外ですが、多数導入されるなら安くなるのかもしれない。
Alveoは動画変換のFFMPEGも動作するようなので、兼用して、コストパフォーマンスを高くする方法も、
考えてはいます。
とりあえずAlveo U50をSSLアクセラレータ専用として、可能な限り秘密鍵を守れるような開発を考えています。
約3万円でAlveo U50に接続するためのケーブルとか、30万円のAlveo U50といっしょに購入しました。
SSLアクセラレータの開発が遅延すれば、もっと高額な対策を講じなければならなくなるかもしれません。
僕の開発を妨害する問題を抑えることを考えていただければと。
いずれは妨害要因を消さないと、円滑なビジネスはできないし、
iCanalがSambaNova
のような企業価値25億ドルみたいな企業にはならない。
このあたりも、損害に見えることはないだろうか。
とにかく妨害要因は、妨害しかできないということの先を見通してくださればと。
|