Home
2020年
2019年
2018年

9月29日 なんとしてもICF3-Fを完成させる

いろいろ妨害されている、ような、状況ですが、ICF3-Fを完成させ、社会の役立つものとなるころには、 これらの妨害が、妨害と考えることができるようになり、その被害を計算できると思っています。 ちなみに僕は開発作業は他人より得意です。


9月29日 体調不良も頻繁に発生中

重度なものではないが、ベッドで寝込んで、しばらく動けなくなることは1日に1、2回発生している。 原因は、さまざま。直前の原因は体中が痛くて、動けなくなりました。


9月29日 USB接続を切るサイバー攻撃を受けて作業停滞中

WindowsのイベントログにあるNTSTATUSエラーコードの解析に追われている。 複数のパソコンと複数の環境でUSB接続が切れる問題が多発している
IO_ERR_CONTROLLER_ERROR
IO_WARNING_PAGING_FAILURE
IO_WARNING_IO_OPERATION_RETRIED
などが、出てくるが、厄介なのはイベントログに記録されないタイプも含まれている。 エラーの詳細はWindowsのデバイス・ドライバで使われているエラーコードなので、 デバイス・ドライバの構造を知っている僕には読みやすいのですが。
イベントログを調べてサイバー攻撃であるかを解析するツールとか、あればいいなぁとちょっと思った。 それを使いだせば、悪人はツールにかからない攻撃方法に切り替えるだろうから、 原因を特定しやすくなる。


9月29日 「パソコン多すぎ」と言う人が

僕がパソコンを必要最小限の180%くらい持っている、と言う人もあるようですが、 多数のパソコンとWindows/Linux/FreeBSDなど複数のOSを使えるようにして おくことで故障なのか、サイバー攻撃なのかが、判定しやすくなる効果がある。


9月29日 USB接続を切るサイバー攻撃の対策を考える

Windows10でUSBの接続が切れるトラブルが頻出している。 今にはじまったことではないが頻繁に発生しているので対策を考えることに。 故障かサイバー攻撃かの判断は難しい。 ただ多数のパソコンでUSB接続が切れることが頻繁に発生していてサイバー攻撃だと推測している。
そこでUSB接続ではなくeSATAで接続することに。対策に時間が費やされるのが惜しい。
みな、USB接続が頻繁に切れることがあったら、原因を考えずに、報告をするのがいいのかも。


9月28日 まもなくICF3-Fの作業が再開されます

脳破壊でSNSに投稿されている記事で、例えば「シャオミ」が「シャミオ」に読めてしまうことが多くなっている。 「ABCD」が「ABDC」や「ACBX」に読めてしまうなど。 それと今までUSBメモリのLinux向けフォーマットにはext3を使っていました。 そろそろext4を使うべくext3とext4の違いをネットで調べたのですがext4の説明を1度、 読んだだけでは理解できない状態になっている。
ICF3-Fは最後まで僕がやることを考えてください。 昨年、ICF3-Fの演算器の発明後も、いろいろアイディアが追加され、実用性の高いものになっています。 例えば演算器の2倍のモンゴメリ乗算を実装する方法などです。 その効果は高く、これ1つで楕円からRSAまで幅広く効率的に演算が可能になるのです。 もう少し頭が破壊されていれば、このアイディアが追加されることは、なかったのかもしれないのです。 非常に問題なのです。
ICF3-Fに似たものを他の人が開発すれば、脳破壊者との関係が、考えられるわけで、どうあってもICF3-Fは僕しかできない。 ですから、脳破壊をさせてはいけないのです


9月27日 今日の作業

新しいパソコンを窓側の日の当たるところに置きたくなくて、 机の下にパソコンを置ける場所を作りました。近所のケーヨーデイツーで材料を購入。1500円でした。 パソコンを置かないときは板を取り外せるのが、ちょっと便利。自己満足です。

図をマウスでクリックすると拡大されます


9月26日 Ryzen 5 2600の性能を追加!

RyzenはCentOS8 1905で動作を確認しました。 「RSA 8192bitの性能を測定するソースコード」 にAMDのRyzen 5 2600の性能を追加しました。


9月26日 脳破壊の進捗

この話が役に立つ人はいると思っています。 一時的に目に映っているものが映っているのに認識できないことや、 0.5秒前のことを忘れる状況に陥ることが、何度かあった。 回復はするものの100%元には戻っていない。今、定常的に瞬時記憶が低下したままなのが、わかっている。 ネット上の記事で「AとBだからC」みたいな文章を読んだ瞬間、Aを認識しようとしながらBを認識しようとすると、 Aがわからなくなり、吐き気とともに、文章を理解できない。
アニメを見ても同様のことが起きることがある。吐き気を恐れてアニメをほとんど見なくなってしまった。 酒もあまり飲めない体になったが、アニメもあまり見れないとなると、人生を、かなり奪われた気がするのです。 吐き気とは、気分が悪くなるというより、痛みではないが、瞬間的にかなり苦しい。 無意識のうちに、吐き気がすることを、しなくなる。


9月25日 Windowsのデバイス・ドライバの本

写真は昔、Windowsのデバイス・ドライバを試作開発していたときに読んだ本。 どの本も読んでいる。デバイス・ドライバを開発するための情報は少なかったからかな。 左上のMicrosoft WDM プログラミングにはテンプレートになるUSBのドライバを生成するプログラムがついていて、とても助かった。 右下は、一昨日、購入したAMDのRyzen 5 2600。今、組み立てが完成してWindows10でメモリテストをしているところです。

図をマウスでクリックすると拡大されます


9月25日 頭と体、いろいろなところが調子悪い

この話が役に立つ人はいると思っています。 ローテーションして調子の悪い場所を変更しているようだ。 完全に動作が停止するほどでもないが、能力は低下した状態。 左目を左に引っ張られたり、記憶力がなくなったり、眠気を発生させたり。筋肉疲労のような痛みで動けなくなったりもある。 まるで脳の神経系統の乗っ取られているようだ。 記憶力について、普通の人が昨日、何をしたのか、特に記憶しようとしなくても、いろいろ覚えているでしょう。 現状、記憶しようとしたり、紙に書いておかないと、次の日、思い出そうとすると軽く吐き気がする。やっぱり脳、壊れていくのだろうな。


9月24日 USB-DACの調子が悪いかも?

先月、FOSTEXのPC100USB-HR2を購入。 音声が遅延したりするので調べてメーカーに連絡。メーカーでは問題ないとの回答がありました。
かつてWindowsのデバイス・ドライバを開発した経験があるのでレジストリを調べてみました。

図をマウスでクリックすると拡大されます

Serviceのところにusbaudio.sysドライバで動作していることが書かれています。 Serviceと同じ列にUpperFiltersやLowerFiltersがあれば、それがウィルスかもしれません。
usbaudio.sysはUSBのアイソクロナス転送でUSB-DACに音声データを転送していることがネットにありました。 オーバーフローやアンダーフローがある仕様。なんらかアンダーフローさせて音声遅延させるウィルスが、 どこかにいるのかも。


9月23日 新しいパソコンを購入

今月、パソコンを2台失って遊撃用のパソコンがなくなってしまった。 そこで新しいパソコンの購入に踏み切った。 CPU、マザーボード、メモリ、PCケース、電源など、すべて日本の有名通販ショップ1店で購入。 CPUは型落ちして安くなったAMD Ryzen 5 2600のBOX。税込み1,5090円。6コア12スレッド 最大3.9GHz。 AMDのCPUを購入するのは久々で、購入してから気づいたのですが、 明日、リリースされるCentOS 8のカーネル4.18?でないと、いけないみたいなことがネットに。 VivadoがCentOS8に対応するのは、その後なので、取り敢えずWindows10をインストールみたいな。


9月23日 頭の調子が悪い

世界の銀行に収める暗号装置を開発した僕には最先端の監視システムが設置されていたはずで、 それを今でも稼働して汚いことしまくっている。 この方法による脳の狙撃は気付かれずにできるので、堂々、拷問してくる。頭壊れそう。 最も活躍した人間に、こんな酷いことをしていいと思えないのです。 これで儲かっているのは秦野市にある事業部の東大卒の多い部署です。 僕にデバイスが埋め込まれたことはないはずなので、誰でもリスクがあるということです。


9月22日 またHDDの調子が悪くなった

ここ1週間でHDD 4個、調子が悪くなっている。4個のうち3個は1個1000円の中古HDD。 共通しているのは故障の仕方。全部、スピンアップに失敗したり、アクセスができなくなるタイプだ。
そして、今月、パソコンが2台が壊れた。 1台は再び動き出したが、すぐに電源が入らない状態になりそうなので、ほとんど使えない。 2台なくなったのと、ほぼ同じで、厳しい。
故障が集中的に発生している。


9月22日 頭痛が止まった

頭の皮膚に痛みはまだ、かなりあるが、思考や動作を止めるほどではなくなった。 よくドラマで記憶喪失の人が思い出そうとした瞬間、苦痛で歪む表情をするシーンをわかる人があるだろうか。 ちょうど、そんな状態。作業をしていて、何か思い出そうとした瞬間、苦痛が走る。 繰り返し、そういうことが起きると人間というやつは、自然と、苦痛を避けるようになる。 自分でも気づかないうちに設計の品質が落ちる可能性が問題なのかも。痛みより脳破壊のほうが気がかり。


9月22日 USB-DACが故障か?

メインのWindows10パソコンに接続しているUSB-DACが急に動かなくなった。 USBデバイスの調子が悪くなることは、これまでも、度々、発生している。 昨年も近所のPCデポで購入した128GBのマイクロSDに 動画を入れて再生すると音が途切れて鑑賞に堪えない状況になったため返品をしている。 まだ、この頃はUSBの信号を止めるウィルスが存在していることに気づいていなかった。 これまでの経験的な話をするなら、USBケーブルは特長がないのでコネクタのところで 微妙に接触不良になるケーブルに、いつの間にかにすり替えられている可能性に注意しよう。 USBの信号を止めるウィルスを送り込む人間の心理を考えるなら、USBケーブルすり替えで、 接触不良にみせかけ、ウィルスの存在を消そうとするだろう。 毎回、接触不良を使ってくるわけではないが。
ウィルスは、どこにいるのか?マザーボード上USB制御回路かUSBデバイス上の制御回路か。 製造するときに電波妨害を受けやすい構造にしておけば、いいのか。 周囲のパソコンが出す電磁波によって、誤動作したことになる。
最近の僕の場合では、攻撃者は、もう開き直って繰り返しUSBの接続を切断しまくることも多い。
参考まで。僕は大型コンピュータの開発部門で製品出荷までの間に現場で検証ソフトを走らせる仕事をしていました。 検証ソフトがバグを見つけるとエラーログを吐き出すのですが、それをファームウェアの開発部に持って行って、 バグが対策されるまでを見守る。夜勤で大型コンピュータの動作マージンテストをしたり、 時価1000万円のCPUの交換作業などやっていました。 ある日、現場にいる年輩の平社員の方が言っていました。
「事実は小説より奇なり」
本当にそうです。検証ソフトが出すエラーの現象から原因を予測するのですが、全く外すことも、 多いという経験をしています。僕が普通の人よりウィルスによる攻撃に耐性があると言いたかった。


9月22日 昨日故障したパソコンを分解

原因がパソコンに水をこぼしたことなのかを調べるため分解してみた。 ケースの底面に、もう一枚、マザーボードを載せる鉄板がある。ほとんどの水はケース底面と鉄板との間の狭い隙間に吸い込まれたようだ。 マザーボードに水がついたようには見えなかった。 鉄板の上にある綿ゴミが乾燥したままで、水がここまでこなかった証拠になっている。


9月22日 まだ具合が悪い

今日1日で1時間くらいしか進まなかった。 そして、またパソコンが壊れた。15年前、まだ日立にいたときに社販で購入したFLORA 350 DE6だ。 ただ今回はマザーボードに少し水がかかったことが原因かもしれない。 壊れたパソコンの代替を、どうするのか、考えるのに時間がかかりそう。 何故か、今月12日に壊れたNECのパソコンの電源が入るようになった。 NECのパソコンはWinXPなのでFLORA 350 DE6の代替はできない。 また安定して動作するのかわからないから放置。


9月21日 まだ頭痛が続いている

頭痛で、あまり作業が進まない。レイテンシ性能こそICF3-Fよりサバンチの 剰余乗算のほうが高速かもしれないが、スレッド化で周波数2倍で2倍の性能を達成させそうなので 高基数型との比較でも勝り、非常に良くできた公開鍵暗号の暗号プロセッサであるように思っています。
日本の優秀な人間の脳内に24時間密着して直接、技術を吸い上げる日本人によって海外に転売される恐れもある。 急がないといけない。密着だけでなく、かなり精密な脳の制御も可能のようだ。これは僕だけの話ではないはず。


9月20日 ICF3-Fのモンゴメリ乗算器の改良

今月18日の日記にも書いていますが、 XilinxのDSP48E1に依存した改良です。 これからDSP48E1のシミュレーションをして確認。 DSPの専用配線を利用することでファブリックの配線リソースを節約できること。失敗…


9月20日 頭痛が続いている

頭がどれくらい壊れたのだろう。


9月19日 数秒前の記憶が消える

頭痛のみならず記憶の消失が頻繁に起きている。HDDの故障の対応で1日が過ぎようとしているが、 この体調では、どのみち作業は不能で安静にしているしかない。


9月19日 またHDD故障発生

1個、1000円の中古HDDでは、仕方がないのかもしれないが、連続で故障か。 体や頭が風邪をひいたように痛む。


9月18日 HDD故障により作業停滞中

頭痛が弱まったが、今度は背骨を中心とした間接が痛む。これ絶対、参考になるから、覚えておこう。 この日記も、片目をつぶりながら書いている。
HDDの故障原因は、まだ解明中。SATA増設PCIeカードとBIOSのIDEモードとの相性が悪いのかもしれない。
追加 HDDは1個1000円の中古。


9月18日 頭痛が強くなってきた

今日の午後、2回も倒れました。頭痛で何もできなくなって、 ベッドで寝ると、気づくと眠っているが、目覚めのときも、やっぱり頭痛だから寝ている最中も頭痛で寝苦しかった


9月18日 演算器が少し良くなった

頭痛が続いている。苦痛に耐えながら作業を進めている。 この日記も片目をつぶりながら書いている。(そういうことが多い) 6日前にパソコンが壊れ作業再開時に、 作業が中断された部分の記憶がなくて、辛い思いをしたが、 徐々に思い出してきた。パソコンが壊れる前に、考え付いていた演算器の改良を、今、やっている。 XilinxのDSP48E1の話なので、わかる人はあまりないと思うが、Bレジスタの面数を1つに減らし、 BCIN-BCOUTを使って配線を節約。まだ、うまくいくのかシミュレータで確認する必要があるが。


9月17日 ICF3-Fは技術と儲けを両立させるいい商品になる

儲けについては、ICF3-Fの開発において僕は利権を持って1人で10人くらいの開発能力を持っているから。 僕が開発すると安い。技術につて、インターネットにおいて公開鍵暗号の鍵長を長くしたほうが、最も安価になる可能性はある。 RSAはもちろん、楕円においても1024bitの長さになってくれば、ICF3-Fも、役に立ってくるだろう。 この日記で、何度か話をしている、高基数型モンゴメリ乗算器と低基数型モンゴメリ乗算器、どうちらがいいのかという話。 ICF3-Fは低基数型です。低基数のデメリットは周波数が高基数型ほど上がらないことですが、 今回、スレッドを効率的に実装することができて、周波数を2倍あげられそうだというところまでわかりました。 さらに中国人剰余定理を含めて、演算器の4倍のモンゴメリ乗算が可能である予測を得ています。 これで1024bitの演算器で楕円とRSAを効率的に動作させることができます。 実際に設計をはじめて5サイクル2スレッドの実装で、乗算器(DSP)が多少、離れていても、 演算器周波数が全く下がらない設計図ができた。一刻も早くICF3-Fを開発したいのです。


9月17日 頭痛が続いている

今日のは意識消失系ではなく普通に頭痛。人間の神経は良くできていて、 例えば、小指に切り傷ができると、小指が痛いと識別できる。 今日は、頭の中が痛いと感じ、それよりも苦しさのほうが辛い。 小指が多少、痛くても、ほとんど問題なく動けるが、頭だと動きが鈍る。 今回は特に頭の皮膚の30%の面積で、かなり痛む。これを書いているうちに、目のほうが辛くなったが。 頭の皮膚の痛みは、脳内異常を、知らせているというように思える。
過去の経験の話だが、頭の皮膚の痛みは、絶え間なく1週間続くことも、何度もあった。
最近は、人体にデバイスを埋め込むことが本当に行われているというニュースを聞くが、 僕にはそういったことはない。 赤ん坊のころ記憶は、誰もそうだと思うけど、ないので、そこまでは、わからないが。


9月17日 とにかくICF3-Fの作業を進めます

前進あるのみ。


9月17日 今日も意識消失に耐えながらバックアップ作業

頭が壊れていくようだ。最も働いて成功した部下を強制的にリストラ、 その後も遠隔操作による脳破壊で、人にばれないと思って、十年以上も殴りつづけ、なおも、継続中。 ここまで酷いことができるのか、という感じです。


9月16日 開発用のパソコンのセットアップ完了

今月12日、設計図を書くのに使っていたパソコンの壊れや頭痛で作業が進んでいませんが、 パソコンのセットアップは完了したので、間もなくICF3-Fの作業を開始します。 頭痛も止まってくれるといいのだけど。 まだ、しゃべっているうちに言葉がでてこなくなることが、しばしば起きる。


9月16日 頭痛が続いて作業が進まない

文字も普通の速度で読もうとすると、理解する速度が追い付かない。 瞬時記憶や、相関関係を思考する能力の低下が長期的に続いている。
僕は某大企業を汚い方法でリストラされたが、それで儲かったのは、 神奈川県秦野市にある事業部の東大卒がいっぱいる部署なのです。


9月15日 断続的に頭痛

あまり長い時間、頭痛で倒れていると、まずいと考えているのか、 断続的に頭痛発生をさせているようだ。かなり作業が進まない。


9月15日 開発用パソコンのセットアップ中

今月12日、設計図を書くのに使っていたパソコンが壊れた。 バックアップを強化する作業と並行したため、まだ、新しいパソコンのセットアップが完了していない。 ICF3-Fを急ぎます。


9月15日 今日は頭の痺れ

多少、意識消失が起きている。作業スピードが半減。


9月15日 自作8bit CPUをもう一度、3日間公開

再び公開しようと思った動機はMITがカーボンナノチューブでRISC-Vプロセッサを開発したニュースがあったため。 自作8bit CPU、ICF3-ZとWZetaどちらもトランジスタ数を少なくすることしか考えずに設計している。 そういった設計が何に向くのか、考えていました。 新しいデバイスで、まだ少ないトランジスタ数しか実装できないようなケースで役に立つと思っていたのです。 MITのカーボンナノチューブはエネルギー効率10倍ということらしく、エネルギー効率だから、 低消費電力なのだろうと予想しています。例えば従来の2倍、電池が持つような物が作れるのかもと。 まだMITのカーボンナノチューブのRISC-Vは32bit×32本のレジスタが16bit×4本しかなく、 大きなプロセッサを作るのは、難しいのかもと思われます。 自作8bit CPUで動作するアプリで従来の2倍、電池が持つような物が作れるなら?、役に立つかもと思いました。 不確定要素が多い中で役に立つケースがあることを割り出して言っているので必ず上手くいくという話ではありませんが。
ICF3-Z : https://icf3z.idletime.tokyo/
WZeta : https://wzeta.idletime.tokyo/


9月14日 体が痛い

ひどくなると、それほど苦しいわけでもないが、動けなくなる。健全な状態な時間は、あまりない。 どうだろう、ひどい、健全、中間の3っつにわけると、20%、10%、70%くらいだろうか。中間の状態でも、作業のスピードは落ちる。


9月12日 続いてパソコンが壊れた

設計図を書くのに使っているパソコンの電源が急に入らなくなった。ほんの数時間前まで調子良く動作していたのです。 壊れたのはNECのパソコンで中古ではなくリファビッシュPCというやつ。10年近く前にソフマップで購入。 いつ壊れてもおかしくないのかもしれないが、トラブルが続いていて、作業が進まない。


9月12日 続いて頭痛

半日倒れた日記を書いた後も眠り続けた。そして今度は頭痛。作業が進まない。


9月12日 半日、倒れて寝ていました

僕の経験が、役に立つ人があると思って書いています。 人間には満腹中枢というのがあって遠隔操作で刺激されたような感じで、眠っていた。 強烈に刺激されたような感じだと、眠気を通りこして、苦しい感じです。目を開けて意識がある状態なのにイビキをかく。 ここ最近、異常に空腹になることがあって、満腹中枢を調べると、 どうやら満腹中枢を刺激することで空腹感も制御できることを知った。


9月12日 5サイクル2スレッドの演算器のアセンブラの作成開始

昨年の3サイクル1スレッド(Rev0.4)は、 アセンブラからDSP48E1を含むマイクロコントローラを自動生成する変わったアセンブラを作成した。 プログラムメモリに分散RAM(LUT RAM)を使おうとしたため、使っていない命令の分の分散RAMを削減するためでした。 今回はBRAMに余裕があってLUTが不足気味であることが、わかってきたのでプログラムメモリにBRAMを使います。 BRAMでは使われていない命令を削減しても、あまり変わらないので普通のアセンブラになる予定。


9月11日 ICF3-Fの5サイクル2スレッドの演算器の設計が出来た

昨年の3サイクル1スレッド(Rev0.4)と配線はあまり変わらず、u生成担当のDSPが1個から2個になった。 これからVerilogにして、昨年と同様の論理検証をしていきます。 産業スパイ対策のための設計図の公開については、もう少し考えてから。 剰余乗算を使う大きな整数の公開鍵暗号の演算を安価にできるハードを開発することを優先しています。


9月9日 ブルーレイ ドライブの調子が悪くなったのは設定ミスか?

まだ不可解な点が残るが、僕の設定ミスが原因かも。調子が悪いことを書いた日記を削除します。


9月8日 今度は体中が痛い

次は眠気で寝込むことになるかと思ったが背骨を中心に痛む。 食事、風呂、トイレに行くことに支障はないが、それ以外は、寝て痛みをこらえながら過ごす。数時間たって、ほぼ治った。


9月7日 今度は頭痛

頭痛が酷くなって作業ができなくなってしまった。次は眠気で作業ができなくなってしまうのだろうな。 ここのところ記憶の欠落が多くなっている。こんな状況が続いて、大丈夫な国であることの問題とか。 ICF3-Fの5サイクル2スレッドの演算器をVerilogにして動作検証をする作業を急ぎたい。


9月7日 FPGAの乗算器の効率

これまで低価格なXilinxのFPGAデバイスにICF3-Fを実装することを目標に考えてきました。 もう少し先のことを考えXilinxのUltraScaleファミリのDSP(DSP48E2)を見てみることに。 乗算器のサイズが24×17から26×17になっています。 剰余乗算を高速化するアルゴリズムによっては16×16の乗算器としてか利用できず、その場合、乗算器の効率が良くないのです。 ICF3-Fは26×17の乗算器を26×17として利用することができます。つまり
(26×17)÷(16×16) ≒ 1.73倍
(24×17)÷(16×16) ≒ 1.59倍

UltraScaleで3入力加算器(DSP48E1)から4入力加算器(DSP48E2)になったことも多分、便利かもと。


9月5日 このWebサイトのアクセス統計

この日記、どのくらいアクセスされているのか調べてみると、日本語の日記であるにも、 かかわらず全体の30%くらいが海外からのアクセスのようです。 フランス、ドイツ、アメリカが多く中国からのアクセスもあるようです。 サバンチ大学の論文について書いたからかも 思ったのですが過去のデータを調べても継続的にフランス、ドイツ、アメリカ、次いで、中国という状況でした。 OpenICF3への期待感が、世界的にあるのかなと感じております。 ICF3-Fはクローズドですが^^;


9月5日 パソコン内のすべてのファイルのハッシュ値を計算

Windows10のパソコンを使っています。ICF3-Fの設計ファイルなど改ざんされると困るし、 市販のセキュリティ・ソフトを使って改ざん検出するとなると、セキュリティ・ソフトが信用できるかが問題になってくる。 そこでパソコン内のすべてのファイルのハッシュ値を計算するソフトを自作しました。 この方法では、ファイルが無くなっていることも検出できる。 手動で定期的に、すべてのファイルのハッシュを計算して計算結果をファイルに出力。 ネットワークに接続していない安全なパソコンに計算結果のファイルを持って行って、USBメモリに蓄積していく。 何かあれば、調べて、詳細な状況を確認できる仕組み。 既にパソコン内に散らばっている動画ファイルで重複しているものを検出するソフトを自作して確認した。 USBメモリは、昨日、購入した異なるメーカーのUSBメモリ2本。2重化して、どちらかが壊れても、大丈夫なようにしている。
ちなみにICF3-Fのエクセルは、操作する度にファイルサイズが増大するバグかウィルスに遭遇したため、再度、作成することに。 Microsoft Officeのセキュリティ・センターでネットワークにアクセスする項目をすべてオフにしてアドインも全て無効にしました。


9月4日 自転車がパンク、修理で時間が過ぎる

USBメモリを近所の電器屋に買いに行くため自転車に乗ろうとしたら、空気が完全に抜けている。 パンクかもしれない。なぜ、ここでパンクするのかと思いながら修理ができるところを探すことに。 パンク修理セットを買って自分で修理することもできなくはないか。
誰かが勝手に庭に入って自転車の空気を抜いたのではとも思った。防犯カメラを設置していれば良かった。 10年くらい前はパソコンにUSBカメラをつけて防犯・監視カメラ制御ソフトウェアHermesというソフトを購入して監視をしていた。 動体検知機能もあって、人が侵入してくるのを検出することもできるのだが、調整が難しく、 かなり重い処理でノートパソコンでも電気代が気になるので、止めてしまいました。また考えたほうがいいのかな。


9月3日 RSA Doublerと命名

RSA暗号はCRT(中国人剰余定理)のアルゴリズムによって専用演算器のビット幅の2倍の鍵長を計算できる。 つまり1024bitの演算器では2048bitのRSA暗号が計算できる。2030年にはRSA 2048bitよりも鍵長を長くする方向になっている。 演算器のビット幅を2倍にして対応してもいいのですが256bitの楕円暗号を計算するには無駄が多くなる。 そこで演算器のビット幅の2倍のモンゴメリ乗算を可能にするアーキテクチャを考える。 ICF3-Fでは、現在、5サイクル2スレッドの設計をしている。 1スレッド目で前半を計算、2スレッド目で後半を計算する。 もともとループ毎に最下位ビットの値を元にuを計算して ブロッドキャストする部分がディレイのクリティカルパスになるから2スレッドにして高速化をしている。 1スレッド目で前半を計算、2スレッド目で後半を計算するなんて、できるのか?という疑問があると思う。 僕は、今のところ実装できるように思っています。 そこで演算器のビット幅の2倍のモンゴメリ乗算を可能にする、このアーキテクチャを「RSA Doubler」と命名しておくことに。 従来の2倍の鍵長のRSA暗号を計算できる技術の名前としては、ぴったりかと。^^)
そういえばRAM Doublerというのが、昔、ありましたよね。Macintoshのメモリ・ユーティリティで、 実装されている物理メモリーを独自の技術によって、見かけ上、2倍の容量にするやつ。 仮想記憶ではなくて物理メモリを見せか上、倍の容量にする。


9月2日 作業中の設計図が半壊したかも

ICF3-Fの5サイクル2スレッドの設計図、完成まで7割くらいだったファイルが半壊。 Microsoft Excel 2016のファイルで通常、数十キロバイトなのですが、 矢印(→)を挿入し始めたところでファイルが急激に増大、5MBに。慌てて矢印を削除するも、ファイルを更新するごとにサイズが増大。 そして、ほとんどフリーズに近い状態の動作になった。Microsoft Excel 2016は32bit版だったので、 64bit版にすれば、高速化されると思って再インストール。ところがファイルを開くことができなくなった。 Windows10にインストールされた64bit版、Excelがバグっているようにも見える。 悪人が設計ファイルにウィルスを付けるパフォーマンスをしている可能性を考え、Windows Defenderでスキャン中です。
今日まで、数か月の頭痛で停滞、エアコン故障で部屋の移動で数週間停滞、FPGAコンテストの割込みで停滞、 そしてまた頭痛で停滞続き、今日、やっと頭痛が良くなったかと思えばExcelのトラブル。
厳しい状況ですがICF3-Fの開発を進めていきます。


9月2日 作業ができる程度には体調は良くなったようです

けど頭が十分に動いているのかは、まだわからない。でも、取り急ぎ。


9月1日 僕が暗号装置を開発することになった経緯

経緯の前に、ちょっと。 メインのパソコンのバックアップなどをしています。この2日間、メンテナンスをやっている時間よりも眠っている、 もしくは、具合が悪くてあまり何もできない状態の時間が長い。例えばインターネットで記事を読んでいるとき 「ABC」の文字が「ABC」として目に映っているにもかかわらず「ACB」とか「ACD」として認識される。 おかげで繰り返し読まなければならないし、次の単語を読み出しに入ると、前の単語が何だったのか、消える。 この話が役に立つ人は、いると思っています。 僕は手術を受けたことはなく、要するに、知らないうちに、そうなるということ。
経緯の話です。1996年ごろアメリカのAMD本社の正門前にあるホテルに3ヶ月にいたのですが、 帰国するときに「(帰国したら)暗号装置をやってもらう」と言われたことから始まっています。 そして本当にICF1(1997年)のリーダーとして仕事をすることになったのです。 ちなみに日本の法律で有効な電子証明書を発行できる部屋に入るためには、書類にハンコを押した記憶がある。 しかし、このときは、書類を読むことも、ハンコを押すこともなかった。


8月31日 5サイクル2スレッドの設計中(2)

頭痛でゆっくりとしたペースでしか設計が進まない。今日の午前中は頭痛が酷く5時間くらい眠っていました。
さて設計について。離れたDSP同士の転送を3サイクルでする方法の実装が進んでいる。 3サイクルではXilinxのSSIのような複数ダイのFPGAでも接続できるのかも。 接続できれば巨大な整数で演算可能になると思います。 日本で2030年ごろに公開鍵暗号の鍵を長くするような話はあるようです。 まだ先の話で量子コンピュータなどの動向もあるので決まった話ではないようですが。 SSIが必要なほど大きな整数になることは、あまりないように思っていますけど。カラムを横断できると便利かも。


8月29日 5サイクル2スレッドの設計中

自分で書いた文章なのに文字は鮮明に目に映るが理解するのに2度、3度、読み返す必要があるようになった。 脳がおかしい。
おかげで、ゆっくりとしたスピードでしか設計は進まないがICF3-Fの5サイクル2スレッドの設計は順調。 周波数を高くするとカラムを横断したDSP配置が難しくなるのですが、どうにかなりそうです。 5サイクル2スレッドで、ほとんどの用途をカバーできる方向が見えてきた。ということです。 スピードがあれば、中間報告なしに、いっきに報告できただろうと思っています。
米アマゾンとイーサリアムによるFPGAコンテストに参加するのは、 コンテストで紹介されているサバンチ大学の論文の実装だけではないかもしれません。 SSLアクセラレータの実装向けとしてはICF3-Fのほうが、いいと思われます。 ICF3-Fに微妙に似ているものが参加して、先に実装を完成されると、日本が先行していたのにということになるので、 脳の調子が悪くならないように、考える必要があると思います。


8月27日 ICF3-F性能予測の8月27日版

遠隔攻撃再開され苦しんでいる。別に頭が痛いわけではない。 物を思い出せななくなり、数秒前の記憶が飛んで頻繁に思考停止が起きる。 この話が役に立つ人はあると思っているので精密に書いています。
さてICF3-F性能予測の8月27日版です。 XilinxのデータシートにDSP48E1のBレジスタ(正しくは入力)からPレジスタ(出力用)への遅延が 5nsと書かれていることに気づいた。 DSP内のディレイがクリティカルパスになっていることに注意をしていなかった。 5nsだと200MHzでしか動作しない。 そのあたりの修正とDSPへの命令の順番をかえてカラム横断の能力を向上させた。 5サイクル2スレッドのモデルが良さそうなので追加。

型番

RSA性能

性能

面積

カラム横断

ICF3-F-3S0

C

C

A

A+

ICF3-F-2S0

C+

C+

B

S

ICF3-F-4D0

A

B

C

A

ICF3-F-5D0

S

A

B

B+

ICF3-F-6D0

A

B

A

B+

ICF3-F-3S1B

B

B

A

A

ICF3-F-3S1C

B

B-

S

A


8月26日 ICF3-Fのスレッドの改良

昨日は2スレッドにしてできる演算はA×B mod NとA×A mod Nのみと日記に書いたのですが、 シフトレジスタの機能をDSPブロックの外部に出したモデルではA×B mod NとC×D mod Nのスレッドが実装できそう。 A×B mod NとA×A mod Nだけでは楕円暗号は、あまり高速化できないが、A×B mod NとC×D mod Nができると、 楕円暗号や、その他の暗号の高速化にも役立ちそう。


8月25日 ICF3-F性能予測の現時点版

同日 23:00修正

2スレッド化で性能は上がりそうですが面積が大きくなったりカラムを横断してDSPを配置することがない場合など用途によって、 複数のモデルを考える必要がでてきた。面積については Cmod A7Cmod S7に実装するため、 ほんの少し大きくなっても減点している。大規模なFPGAデバイスのSSLアクセラレータではカラムを横断することなく RSA 4096bitが実装できるためカラム横断能力の意味がないこともある。 もっと大きな鍵長のRSAを考える場合はカラム横断能力を考える必要がある。 スレッド化は一般的にはレジスタが増加し面積が増加する傾向なのですが、 ICF3-Fのアーキテクチャでは、面積増加が思っているよりも小さい。予想です。これは現時点での予想です。

型番の形式
1ループで17bitのモンゴメリ乗算を行う。1ループのサイクル数、1ループで処理するスレッド数などで分類する。

ICF3-F-[1ループのサイクル数][スレッド数][バージョン][特長を示す文字]

1ループのサイクル数

1文字の数字、1~9の数字

スレッド数

CPUのスレッドとは異なり、A×B mod Nの1つを演算するのか、A×B mod NとC×D mod Nの2つを演算するのかの違い。 1つ場合はS(シングル・スレッド)、2の場合はD(デュアル・スレッド)。DはデフォルトではA×B mod NとA×A mod Nを示す。A×B mod NとC×D mod Nが可能なものは特長を示す文字としてTTが追加される。

バージョン

1文字の数字、0~9の数

特長を示す文字

B2などの文字列。文字数に制限はない。ない場合は書かない。例えばDSPブロック間の転送のサイクル数などを示す。TTはTrue Threadの意味でA×B mod NとC×D mod Nが可能であることを示す。


型番

RSA性能

性能

面積

カラム横断

ICF3-F-3S0

C

C

A

A+

ICF3-F-2S0

C+

C+

B

S

ICF3-F-4D0

S

A

C

C

ICF3-F-6D0

A

C

A

C

ICF3-F-3S1B

B

B

A

A

ICF3-F-3S1C

B

B-

S

A



以下、モデルの説明ですが、実際に実装してみると実装できないということはあり得ます。

ICF3-F-3S0

2018年8月に試作。uのブロッドキャストの中継の仕組みに特長があり、良くできている。

ICF3-F-2S0

2019年8月に検討。3S0よりクリティカルパスが長くなってしまうため、トータルの性能では、あまり変らない。 2S0は少しでも3S0の性能改善させる目的に向いている。カラムを横断した配置を重視するなら、これ。 3S0でも、カラムを横断した配置の性能は高く、2S0と同程度か、若干落ちる程度。

ICF3-F-4D0

2019年8月に検討。高周波数で高性能だが性能がRSAに偏る。 シフトレジスタをDSPの外部に出したので面積が大きくなる。カラムを横断した配置が厳しい。

ICF3-F-6D0

2019年8月に検討。高周波数で高性能だが性能がRSAに偏る。 シフトレジスタをDSPに入れたので面積が小さい。カラムを横断した配置を容易にする設計ができる余地が4D0よりも、やりやすいと思われる。

ICF3-F-3S1B

2019年8月に検討。シフトレジスタをファブリックで実装。3S0との違いは、あまりない。

ICF3-F-3S1C

2019年8月に検討。3S0は、シフトレジスタの初期設定をDレジスタに直接書いているが、AレジスタからPレジスタを経由させてDレジスタに。A×B mod Nの初回ループを実行するのが数サイクル遅れるが全モデル中最も面積が小さい。6D0も3S1C並みに小さい。



8月23日 ICF3-F、あれ2スレッド化で性能2倍になるぞ?

米アマゾンとイーサリアムによるFPGAコンテストのおかげでICF3-Fの製品化よりも先に性能向上の設計をしています。 コンテストに参加しようと思っているわけではなくて、将来、コンテストの優勝者によってICF3-Fの価値が下がることを懸念してのこと。 コンテストではレイテンシの性能で争いますが、SSLアクセラレータとして大きな鍵長のRSAの性能を安価に開発できることを基準に考えています。 ICF3-Fの2サイクル版モンゴメリ乗算器をパイプライン化してA×B mod NとA×A mod Nを2スレッドで処理をする設計をしています。 2スレッドといってもA×BとA×Aの組合せしか計算できないのですが、周波数を2倍にすることができて、 少しファブリックの論理を追加するだけで性能が2倍になっているように見えている。設計図上で。 A×BとA×Aの演算で性能が2倍になるのはRSAだけですが、楕円も1.2~1.3倍にはなるように思います。 周波数を2倍にできるとA×B mod Nのレイテンシ性能が1スレッドの演算器と変わらないということで、 使い勝手のいいモンゴメリ乗算器になるように思っています。
2スレッドにして性能が2倍になって、あれっとか、思っているところで、 理由はクリティカルパスにフリップ・フロップを2か所に入れることができる。 つまり理論的には周波数を3倍にできる。フリップ・フロップを、ちょうど、1/3の場所と2/3に入れることは不可能で、 現実的には2倍くらいかもと思っているところ。勘違いもあるかも。


8月22日 サバンチ大学の剰余乗算の論文の解析(5)

解析(5)というタイトルにしてみましたが独自に小型化した解析(4)の演算器を、さらに効率を上げることができるかもしれない。 という話です。これまでA×B mod Nの演算結果を、そのまま次のA×B mod Nに代入できることを前提としてきました。 大型加算器を使ってA×B mod Nした後に、毎回、正規化することで、DSPの24×17の乗算器を16×16よりももっと効率的に利用できるようになるかもしれない。 DSPによる乗算後、全加算を2回していますが、これを1回に減らすことができるかもしれない。 1ループ2サイクルにすれば、ICF3-Fと同じように、中継FFを入れて、どこまでも巨大な剰余乗算器を作れるかもしれない。 しかし、1ループ2サイクルにしてしまうと、ICF3-Fに常に負けるような感じなので、1ループ1サイクルを守る。すると、いま一つ。
一方、ICF3-Fのほうは1ループ2サイクル化が順調に進んでいます。1024bitのシフトレジスタがDSPの外に出てしまうものの、 24bitの全加算器が不要になるという幸運に恵まれ演算器の効率が上がりそうです。DSPの数は44個から45個に増えますが。 現在、考えているのは1ループ4サイクルにしてA×B mod N と A×A mod Nを、いっしょにやってしまう方法です。 何がいいのかといえば、このモンゴメリ乗算器はu生成がクリティカルパスなのですが、2つ同時にやることで、パイプライン化され、周波数を2倍近くにできること。 どうなることやら。^^;


8月21日 ニュース、史上最大のコンピューターチップが開発された

GIGAZINEの記事、「1兆2000億個ものトランジスタを搭載した史上最大のコンピューターチップが開発される」 欠陥でコアの一部が使用できなくなることを想定した冗長な設計が行われているということらしいです。 この記事を見て思ったのは、欠陥のある大型のFPGAチップの欠陥の場所がわかるチップが、安価に手に入ると安価なSSLアクセラレータを開発できるかなと。 例えばICF3-Fが32個あるFPGAのSSLアクセラレータで欠陥のあるICF3-Fを使わないようにするファームウェアなんかは容易に開発できそう。


8月20日 同程度ではないか?

昨日の日記にICF3-F解析(4)の演算器を比較してICF3-Fのほうが面積当たりの性能がいいことをいいました。 しかしプロセッサを含めると同程度ではないか、と思った人があったのかも。 RSAの1演算には並列性があり、同時に4個の演算器を並列に動作させて計算することができます。 1プロセッサで4個の演算器を担当すればプロセッサを含めても性能がいいということが、できそうです。 これは見積もりレベルの評価での結論です。 実際に実装してみると、解析(4)の演算器が面積当たりの性能で、勝つことは、あるでしょう。 実際の実装と、こちらでの検証方法が、あれば、見てみることはあるかもしれません。
1999年のICF3を良く知っている人は4個並列にできるのかと、思ったのかもしれないですが、 ICF3-Fのモンゴメリ乗算器は乗数と被乗数を演算器にコピーして演算するので、 並列に4個動作させることが容易に実装できると考えているのです。


8月19日 ICF3-Fを高速化、1ループ3サイクルから2サイクルに

米アマゾンとイーサリアムによるFPGAコンテストに触発され ICF3-Fの性能改善を考えることに。
コアな演算は1ループ3サイクルでしたが、乗数のシフトレジスタの役目をDSPの外に出して、 2サイクル化が可能であることを、だいたい確認しました。昨日の日記、解析(4)の演算器ICF3-F(「わかりやすいICF3-Fのモンゴメリ乗算器の説明」) を比較してみました。
結論を先に言うとSSLアクセラレータの用途ではICF3-Fが有利。理由は作りやすく、1ループ2サイクル化に成功すれば面積当たりの性能が、いいこと。 mod NのNの値の入替えを1RSA演算単位にしても性能に影響しない。あるいは、ほとんど影響しない。 大きなモンゴメリ乗算器も作りやすく、面積当たりの性能が、ほとんど下がらない。
一見、ICF3-Fは最下位ビットからのブロッドキャストで、 解析(4)の演算器は最上位ビットからのブロッドキャストという違いしかないように見えますが、 隣接するDSPブロック間の転送に違いがあり、これが大きな演算器を作ろうとした場合に性能に影響する。 解析(4)の演算器では演算器を大きくしていくとチップの端から端までいくディレイが長くなっていくので周波数が落ちていく。 ICF3-Fは1ループ2サイクルだが、隣接するDSPブロックのデータが必要になるのは、次のループの最後の最後。 このため中継FFを入れることができる。そして開発でディレイのチューニングがあまり要らないこと。 これは様々なFPGAデバイスに移植するのに役に立つ。
解析(4)の演算器の1024bit×16bitはDSP 64個と1万LUT以上だが、ICF3-Fの1024bit×17bitはDSP 44個と2千LUT以上。 ICF3-Fは1ループ2サイクルなので同じ周波数で動作すれば、解析(4)の演算器の性能は2倍になるが、 クリティカルパスにチップの端から端までいくような配線が入っているため同じ周波数では動作するのは難しいかもしれません。 解析(4)の演算器の周波数が0.7倍だとすると性能は1.4倍になるが、そのために必要なリソースが1.4倍よりもかなり多い。 演算器の面積だけでなくプロセッサの面積も考慮する必要があるが、 1プロセッサで2個~4個など多数の演算器を担当することで効率を上げられます。


8月18日 サバンチ大学の剰余乗算の論文の解析(4)

サバンチ大学の剰余乗算の論文の解析(1) 解析(2)  解析(3) から、独自に小さいチップにも入るようなシステムを考えてみた。 参考になる自分のブログ  目的は、この方式の効率を見積もること。正しく動作しないかもしれない。 コアな演算ループは1ループ、1サイクルだが、そこにチップの端から端まで転送するクリティカルパスがある。 思ったより性能が出ないということはないか?あまり有効なディレイ対策が見つからなかった。


図をマウスでクリックすると拡大されます

図をマウスでクリックすると拡大されます


8月17日 17時ごろ目が覚めることが多い

頭痛だけではない。睡魔も襲う。17時を超えて眠っていると夕飯の席に僕がいなくて、 気づく人が多くなるからだろう。


8月16日 サバンチ大学の剰余乗算の論文の解析(3)

解析(2)でサバンチ大学の剰余乗算器は小さいチップに入れるのは難しいという予想をしたが、 小さいチップにも入るような改良型は可能かもしれない。 解析(2)で小さいチップに入らないと予想した部分に取り消し線を追加。 今、改良型を思いついた。間違っているかもしれないが、n bitをk個に分割して上位から下位に向かって乗算。 n bitより少し大きい値になるが、LUTでリダクション。LUTはn bitを少し超えた分だけあれば良くて、LUTを使いまわすことができる。 そして普通のCPUのバスに接続できる点はメリットがあるかも。 チップのサイズに合わせて性能を調節できる点はいいかもしれない。効率は、わからないが、 この方法でも鍵長の大きなRSA暗号を演算できるのかもしれない。 僕の予想ではコストパフォーマンスが悪いため、ICF3-Fでレイテンシの性能が不足するまで、市場に登場しない。 永遠登場しないことも。 あるいは、コストパフォーマンスではなく、モンゴメリ乗算を使わないことに価値観がある人達には、受け入れられるのかもしれない。


8月15日 Chromium OS R76ビルド中

7月29日にエアコンが故障して修理のためエアコンの直下にあった13台のパソコンを一時退避していましたが、 ようやく元に戻りつつあり、そろそろICF3-Fの開発を再開できるように思っています。 部屋を片付ける作業が残っておりChromium OS R76のビルドと並行してやっています。 ずっと頭痛が続いています。設計作業だと、完全に止まっている体調かもしれないのですが、 部屋の片づけや、Chromium OSのビルドくらいは、休み、休み、できるという状況。
FPGAコンテストがあったり、世の中、動いている。 このまま頭痛が続いて、何か、取り返しのつかないことにならないといいのですが。


8月12日 わかりやすいICF3-Fのモンゴメリ乗算器の説明

ブログ書きました。 「わかりやすいICF3-Fのモンゴメリ乗算器の説明」
目の筋肉が勝手に引っ張られて痛い。仕事が進まない。


8月10日 2つのICF3-Fを連結動作する機能

モンゴメリ乗算器4個を搭載するICF3-Fは面積効率はいいがRSA以外の効率が悪くなる。 2つのICF3-Fを連結させる機能を考えたほうが便利かもしれない。


8月10日 モンゴメリ乗算器4個搭載のICF3-Fの予想

ICF3-Fはモンゴメリ乗算器を2個搭載している。1つの1024bitのモンゴメリ乗算器は44個のDSPで構成される。 モンゴメリ乗算器4個ではDSP176個。 RSA 2048bitでは中国人剰余定理により2つの1024bitの剰余演算で演算される。 2つの剰余演算は並列に実行可能なためモンゴメリ乗算器4個を搭載したICF3-Fを開発して同じ周波数で動作させれば性能はほぼ2倍になる。 実際に実装して確認する必要はあるが、同じ周波数で動作する可能性はある。 周波数が下がることがあっても、わずかという予想。 面積あたりの性能は2個搭載の場合より4個搭載のほうが良くなる可能性すらある。


8月9日 サバンチ大学の剰余乗算の論文の解析(2)

論文のアルゴリズムはn bit(n=128,256,512)をd bitのブロックに分割しています。 そしてクリティカルパスのディレイが、数ブロックの範囲に入っている。 nに比例していない。かなり高速。僕は、正しいことを保証できないが、間違っているようにも見えていない。
小さいチップに入るようにするには1個のDSPで数サイクルに分けて演算します。 LUTによるリダクションの部分は数サイクルにしても面積はあまり変わらないので効率が、かなり悪くなります。 つまり僕の予想では小さいチップに入るような改良型は効率のいいものにならない。
サバンチ大学の論文はASICでは、どうかという予想は、ハイエンドCPUで将来使われそうな、1nmプロセスを考えれば、かなり大きな鍵長のRSAが演算できるのかもしれない。
楕円はRSAに比べて鍵長が短いのでコストパフォーマンスがあまり悪くなくSSLアクセラレータとしての活躍が期待できる可能性があります。 将来、SSLに必要な鍵長が長くなって、コストパフォーマンスが悪くてもいいから、どうしてもということを考えると、 アマゾンのFPGAコンテストは有意義なものになるように思いました。
ICF3-FはRSAのSSLアクセラレータとして、サバンチ大学の上をいくコストパフォーマンスになると予想しています。 楕円は署名の処理が検証と比較して軽くCPUで演算してしまうほうがいいということになればサバンチ大学のSSLアクセラレータは、すぐには立ち上がらないのかもしれない。 実際の実装で、どのくらいの性能になるのかで、予想は変わります。 アマゾンのFPGAコンテストの結果に注目です。
昨日、書き忘れましたが広島大学のIEEEの論文はDSP1個か2個で演算させています。ICF3-Fが88個で、サバンチ大学は4225個と巨大LUT。


8月8日 サバンチ大学の剰余乗算の論文の解析(1)

アマゾンFPGAコンテストで紹介されている論文に「Low-Latency Modular Multiplication Algorithm - Erdinc Ozturk」がある。 まだこれしかないが、わかりにくいのでサバンチ大学の剰余乗算の論文と呼ぶことにします。 連絡をとっているわけではないので、間違っていることはあると思いますが、独自に解析してみます。
論文は剰余乗算(A×B mod N)を、うまく分割して可能な限り並列に実行できるような方法が書かれています。 分割するにはRNS(Redundant Number Systems)を使っています。 可能な限り並列化するとbit長が長くなると1チップに入らない問題が出てくるので普通は、 直列に演算できるようにして、1チップに収めます。 この直列に演算できるようにする制御とデータパスに工数と面積のコストがかかり、効率を落とすのですが、 この論文の目標はレイテンシを小さくすることなので、直列に演算することなく、 大きなチップに入るところまで入れるということなんだと思います。この論文ではモンゴメリを使っていないようです。
論文にあるXilinxのFPGAでの実装結果から、わかることについて、説明します。 この剰余乗算器(A×B mod N)が1サイクルのレイテンシと仮定します。 LUTを使ったリダクションは、1999年のICF3の前に世界一だったFastMapの方法と似ています。 サバンチ大学の論文は乗算結果が冗長性をもったデータなのですが、それをそのままリダクションできるみたいです。 よく考えると、そうかもと思いました。かなり高速かもしれない。 FPGAでは分散RAMのコストがASICに比べて安価なのでLUTを使ったリダクションが有利なんだろうと予想。 ただしSSLアクセラレータとして使う場合は、証明書ごとにLUT(分散RAM)を書き換える運用がやりにくいことが難点になるだろう。 最大の問題は鍵長が2倍になると面積当たりの演算性能が、おおよそ70%になることで、鍵長が長くなるにしたがってコストパフォーマンスがかなり下がることだろう。
一方、ICF3-Fは鍵長が2倍になっても面積当たりの演算性能は、あまり下がらない。サバンチ大学の論文ではXilinxのDSPの乗算器24×17を16×16として利用している。 ICF3-Fは乗算にRNSは使っていないので24×17として使えている。つまりDSPの乗算器を(24×17)÷(16×16) ≒ 1.59倍 効率的に使っている。 またICF3-FではDSPを乗算器として使っていながら、空いている隙間に、まったく無駄なく、シフトレジスタとして使えていることも効率を上げている。

1024bitでのサバンチ大学の論文で必要なDSP数は4225個。ICF3-Fで必要なDSP数は88個(or 44個)です。 またICF3-FではDSPでリダクションをしますが、サバンチ大学の論文では別途、鍵長の2乗で面積が大きくなる巨大なLUTが必要です。 ICF3-Fはレイテンシの性能ではサバンチ大学の論文と比較して圧倒的に遅い、そして広島大学のIEEEの論文より圧倒的に速い。


8月8日 家具の裏側にサイバー攻撃対策

HDD、USBメモリ、DVD-Rなどの電磁的記録は標的型電磁パルス攻撃によって微妙に改ざんされることがあるかもしれない。 なので紙に印刷して家具の裏側に貼り付ける対策をしている。 拇印が押されているのは不法侵入によって微妙に改ざんされることをも想定している。


8月7日 RNSを使ったA×A mod N

遠隔頭痛発生システムで脳がいかれて頭悪くなっているけど、アマゾンのFPGAコンテストで紹介されている論文を 読んでRNS(Redundant Number Systems)の理解が深まった。高性能だというのはわかったのですが、 鍵長が大きくなるにしたがって実装が厳しくなるのかもと。LUTを使ったReductionのあたりは、良く読んでないので 正しいのか、わかりませんが。結局、ICF3-Fの低基数型モンゴメリ乗算器が、 うまくコンパクトにまとまっていて、データのローカリティが高く効率は良さそう。 もし紹介論文が実装できなければ、VDF関数においてもICF3-Fがいいみたいな。 VDFのbit長が長くなると紹介論文では実装できなくなるのでは?とか。


8月7日 ICF3-FのA×A mod Nの性能予想

ICF3-F「米アマゾンとイーサリアム財団ら、賞金10万ドルのFPGAデザインコンテストを開催」 の課題のコアの部分、1024bitのA×A mod N (A,N: 1024bit かつ A < N)を計算させると、どのくらいの性能予想になるか? XilinxのFPGA(XC7A35TICSG324-1L)を搭載するArtyにVivadoでインプリメントした結果で予想してみます。 XC7A35TICSG324-1Lはスピードグレード-1なのでFPGAとしては遅い方ですが、おおよそ2000nsではないかと思われます。 コンテストでモンゴメリ乗算の高基数型のものが優勝するかもしれませんが、 ICF3-Fは低基数型で、bit長が、もっと大きくなってくれば高基数型よりも高速になる可能性はあります。 ICF3-Fは性能よりも開発が容易であること、サイドチャネルなどの耐性があることなどのメリットも、あるのです。
原文には50nsに設定されたベースラインから1ns改善されるごとに3000ドルと書かれているが、僕は、この意味は、わかっていません。


8月7日 1999年のICF3はアマゾンとイーサリアムの課題を計算できます(改訂版)

1999年の暗号LSI ICF3は「米アマゾンとイーサリアム財団ら、賞金10万ドルのFPGAデザインコンテストを開催」 の課題のコアの部分、1024bitのA×A mod N (A,N: 1024bit かつ A < N)はICF3のプロセス270nmのASICですが約6448[ns]で計算できます。
この課題をICF3のシミュレータで演算できるコードは下記リンク先のテキストです。

VDF.txt

OpenICF3のサイトのブラウザ版のシミュレータで実際に動作させることができます。 レジスタ0にN、レジスタ1にxを設定します。
Nは、既に記載されているのでxを書き換えるだけです。10進数ではなくて16進数です。 コードには最初に2048サイクルの除算がありますが、これは最初の1回でいいので1回のA×A mod N は後半の約520サイクルで実行できます。1999年のICF3の1サイクルは12.4[ns]なので520×12.4 = 6448[ns]になります。


8月6日 1999年のICF3はアマゾンとイーサリアムの課題を計算できます

(tの値が間違っていたので削除。ICF3-Fの話の大筋には影響しません。先ほどと同じです)


8月5日 ICF3-Fが海外に抜かれる問題が現実に!

「米アマゾンとイーサリアム財団ら、賞金10万ドルのFPGAデザインコンテストを開催」  一見、暗号資産に関係する関数を高速化するコンテストに見えますが、RSA 2048bitの演算器部品で計算できます。 しかし1024bitの演算器で2048bitのRSAを演算するにはプロセッサが必要になるのでRSAの高速化問題とは異なります。 例えば演算器がいかに高速でもプロセッサが大きくなりすぎてトータルの性能は下がるなど。 もう一点、もし高基数のモンゴメリ乗算が優勝したとしても、ICF3-Fは低基数のモンゴメリ乗算ですが、鍵長がもっと長くなると、ICF3-Fが有利かもと、思っています。
参加されるチームはICF3-Fの詳細な設計図を下記のURLで公開しているので確認していただけますようお願いします。 Rev0.4ですが1年前に完成しています。
https://openicf3.idletime.tokyo/icf3f/
このコンテストでICF3-Fをパクった海外チームが優勝すると、ICF3-Fによる日本の成果が、危ういものとなります。
ICF3-F、急がないといけません。しかし、ここ1か月以上、頭痛でICF3-Fの作業が、ほとんど進んでいません。みなで遠隔頭痛発生システムを止めない限り、作業のスピードが上がりません。


8月3日 机の補修で1日潰れました

頭痛はつづいていて、頭痛がなければ、それでも数時間の作業時間が得られたはず。 後の文章は1日潰れた話をするだけなので読む必要なし。 エアコンの故障でパソコンを移動したので机が空いた。 32年前の木製の机だが表面に汗がべっとり積層され使いにくくなったので補修をすることに。 木工品は父親が得意でお願いしたのだが、汗が積層されたまま水性の茶色のニスを塗ってしまった。 塗装の前には必ず磨くものだと思っていたので、まさかと思った。 汗の油は水をはじくのか斑になって乾燥せずベトベトになった。 60mlの650円の「はがし液」を買って全面にスプレーしたが全然、量が足りなくて、ベトベトで汚い状態になっただけだった。 諦めてDIYショップに行って、塗料はがし液(300ml)、ぞうきん、ウィットティッシュ、サンドペーパーなど、いっぱい買った。 これで1日が潰れてしまった。


8月2日 ICF3-F、製品化できるのか?

そう思った人があったみたいなので答えると。技術的には、できると思う。 SSLアクセラレータは純粋な演算のみで製品になるので、既成のFPGAボードでいい。 もちろん既成のボードにはICF3-Fに必要のないDRAMが搭載されていたりするので、 そういったものを削って原価を下げることもできるでしょう。 (オープンソースのボードの設計図があればDRAMを削るだけ) SSLで使われるRSAは、通信性能について、それほど高い必要がないので、 既成のFPGAボードに実装されているUSB-UARTでも、なんとかなる。 約1年前にはICF3-Fの暗号プロセッサの試作ができていて、今まで、 何をやってきたのかといえば、そこが実際にソフトウェア含めて実装できるのかの確認。 将来、通信性能が不足するのかといえば、逆で、鍵長が長くなればなるほど必要な通信性能は下がっていくのです。
ちなみに1997年のICF1と1998年のICF2の通信回路は僕が担当しています。どちらも1回ではできなかったけど。 数日だけどKiCADのようなCADを使って大型コンピュータの基板を試しに作ってみたことはある。 基板上に「ライカ」を乗せる作業だったと思うけど「ライカ」ってインターネットで調べても出てこない。 コンデンサのことなんだけど、日立用語なのかな。電気工学科も卒業してるし。


暗号プロセッサ OpenICF3