Home
2018年
2019年

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を使って大型コンピュータの基板を試しに作ってみたことはある。 基板上に「ライカ」を乗せる作業だったと思うけど「ライカ」ってインターネットで調べても出てこない。 コンデンサのことなんだけど、日立用語なのかな。電気工学科も卒業してるし。


7月31日 ICF3-Fの作業速度を上げるには

頭痛を止めることだが、その方法を考えるのに、既に数時間が経過している。


7月31日 ICF3-Fの開発環境が立ち上がりました

一時的に移動してきている部屋に開発環境を構築しました。 まだ故障したエアコンの部屋にあるパソコンの退避作業が残されており、開発作業ができるようになっているわけではありません。 軽い頭痛が続いている。


7月30日 一時的に別の部屋に移動

SNSと日記が書けるようにはなりました。エアコンの修理の人が来るのが8月5日です。 8月5日までに13台あったパソコンシステム退避、1日の修理で治るとして、復帰にあと数日かかる予想。 それまでICF3-Fの作業は、ほぼできない。6月末から頭痛でほとんど作業ができていない状況が続いたが、 今は、頭痛で作業が止まらない程度に頭痛というだけなので、パソコンの退避、復帰作業は、 通常の人のおおよそ5倍の時間はかかる。遠隔頭痛システムを沈黙させなければ、作業速度は、普通の人よりかなり遅い。 頭痛で数時間、寝込むことが頻繁に起きているが、その日、作業が停滞したようには見えないのです。 ICF3-Fが完成したからといって、普通の人は、それほどうれしくはないかもしれませんが、 他の国に抜かれてから悔やんでも、取り戻せない。
RSAを高速化する問題は有名で、昔から多くの研究がありました。 FPGAの性能が向上し2001年~2005年ごろにはICF3-Fが実装できるレベルにありました。 にも、かかわらず、今まで、誰も、気づけなかった。 そして、このICF3-Fの発明を、僕が誰にも譲る気がない。 そういう状況で、僕の作業が遅れることの問題を考える必要があるように思います。 頭痛が続いて体が壊れるような方法で、譲る気になるのかというと逆で、稼ぎが減るため、ますます、 ICF3-Fから、大きな利益を得ようとしなければ、ならない。当然、怒りも半端ではない。


7月29日 部屋のエアコンが故障(2)

故障したエアコンの直下にはパソコンが13台、2個のパソコン切り替え機によって、稼働しています。 エアコン修理のため、これらのパソコンを退避せねばならず、ICF3-Fの作業に、大きな遅れが発生。 配線が多数、絡み合っていて、退避、復帰の作業に時間がかかる。 あまり退避せずに修理できればいいのですが。 これから別の部屋に移転します。別の部屋に移転するまで、連絡が途切れるかも。


7月29日 部屋のエアコンが故障

エアコンの故障で、またICF3-Fの作業に遅れが。 さらに5年半前に購入したエアコンで量販店の5年保証が切れていて、泣いています。 空いている扇風機もなく8年前に活躍した太陽光発電の扇風機を使っています。 今日は天気が良く快調に扇風機が回っている。


7月29日 3で割った商を求める論理回路の誤字修正

昨日の日記の説明文に誤字がありました。(2)、(3)、(4)でFAc(m,n,cy)のcyが0になっていたので修正しました。 一昨日のプログラムは正しくcyが設定されていたので誤字です。


7月28日 3で割った商を求める論理回路を考えて証明してみた

ブログ「3で割った商を求める論理回路を考えて証明してみた」にも投稿していますが、この日記にも同様の内容を転写。

はじめに
コンピュータの内部では2進数で計算しています。最近、3進数の半導体の研究も進んでいるようです。 半導体の微細化も限界が近づいてきたため3進数にすることでチップ面積を小さくしたり、低消費電力にする方向が考えられるようになった。という理解を僕はしています。 2進数のコンピュータと接続するためには2進数を3進数に変換する効率のいい回路が必要になる。そこで3で割った商を求める論理回路を考えて証明してみました。

考えた回路の特長
回路が小さいこと。比較的、高速。一般的な除算は最上位ビットから商予測をしながら2bit/cyc程度の性能です。 この回路は最下位ビットから予測なしに直線的に解を求めます。

計算方法の説明と証明
まず3で割り切れる場合を考えます。わかりやすくするため5bitの数、X={x4 x3 x2 x1 x0}で説明します。3は2よりも大きいので商は必ず4bit以下の数になります。商をQ= {d c b a}で表します。 X は2Q + Q で表せます。つまりQを1bit左シフトした値と、Qを加算した値がXになる。1bitの全加算器(フルアダー)を FAとします。 FAのサムをFAs(m,n,cy)、キャリーをFAc(m,n,cy)とすると、2Q + Q の加算は、次のようになる。
(1) x0 = FAs(a,0,0) , cy0 = FAc(a,0,0)
(2) x1 = FAs(b,a,cy0) , cy1 = FAc(b,a,cy0)
(3) x2 = FAs(c,b,cy1) , cy2 = FAc(c,b,cy1)
(4) x3 = FAs(d,c,cy2) , cy3 = FAc(d,c,cy2)
(5) x4 = FAs(0,d,cy3)

これはQからXを求める計算方法ですが、Xはわかっている数なので、XからQを求めます。排他論理和を^の記号とすると全加算器の定義からFAs = m^n^cy です。またFAc = (m&n) | (m&cy) | (n&cy) です。

よって(1)から a = x0 , cy0 = 0

次に(2)のFAsを考えます。
x1 = b^a^cy0 = b^a
aは既知なので、b = x1^a で計算されます。bが既知になったのでcy1も計算され既知になります。

次に(3)のFAsを考えます。
x2 = c^b^cy1
b,cy1は既知なので、c = x2^b^cy1 で計算されます。cが既知になったのでcy2も計算され既知になります。

次に(4)のFAsを考えます。
x3 = d^c^cy2
c,cy2は既知なので、d = x3^c^cy2 で計算されます。

したがってXからQ = { d c b a} が計算できます。

余りがある場合は
3で割った余りを計算する方法は、良く知られています。僕のブログでも解説しています。 余りは1か2なので2の補数にして加算して3で割れる数にしておきます。商を求める計算とパイプライン的にすれば、もっと高速になります。

終わりに
5bitでの証明でしたが、一般化したn bitでも最下位bitからの計算を繰り返していくだけなので自明です。 3で割った商と余りが計算できれば2進数の値を3進数に変換することは、できると思います。


7月27日 超小型3固定除算器、考えた

昨日の日記でICF3を3進数の半導体で作ることはできそうだと言いました。 しかし2進数を3進数に変換することまで考えていませんでした。昨日、以外と難しいと思いました。 そこで超小型3固定除算器、考えてみました。 巨大な数を3で割った余りを求める方法は良く知られています。これは商を求める方法です。 この論理回路を使って2進数を3進数に変換します。 3進数の半導体のメリットを活かすためには、超小型でなければ、ならない。 そしてRSA1演算よりは高速に演算できなければならない。という要件を、多分、満たしている。 超小型3固定除算器をC言語(C++11)のプログラムにしてみた。 最下位ビットから直線的に3で割った商を計算するところが、この論理回路のポイント。 昔、東芝が逆数を演算する特許を取得しようとしたとき、これと似た方法を使っている。 東芝は特許を取得できなかったみたいだが、これはどうだろうか。誰かが特許を取得しているかの確認はしていません。 3進数を2進数に変換するのは、それほど難しくないように思います。 これでICF3-Fを3進数の半導体に実装して実用化できる可能性が見えたような気がします。

このままC++11の処理系でコンパイルできます。 実行するごとに64bitの乱数を生成して、CPUで3で割ったものと、回路で割ったものを比較します。結果が同じならX^Zは0です。


7月26日 ICF3の3進法半導体版のプロジェクト

僕はSSLアクセラレータのICF3-Fで忙しいのですが、 韓国の研究チームが大型ウエハ上でエネルギー効率の良い3進法金属酸化物半導体(MOS)を実現する手法の開発に成功 したと発表したみたいです。スラド記事
ズバリ言うとICF3のアーキテクチャは3値法でも、なんとかなりそうと感じた。
少し実際の実装イメージを考えてみたのですが、半導体上に効率良く実装できそうに見える。 ICF3-Fを3値にするプロジェクト。つまり現在、製品化に向けて開発中のクローズドなプロジェクトの3値化ということで、悩んだ末、ICF3-Fと同じクローズドにしないといけない。
そういえば、国立高専で「モンゴメリ・パイプライン」の実装の研究発表をしている論文を見かけたことがある。 高専の方でも、結構、モンゴメリの実装をやっているのですよね。
結論ですが、研究ネタには、なるだろう。非常にうまくいけば実用化の可能性があるかもしれない。 研究にはverilogシミュレータと現状のFPGAがあれば良く、学生でも可能ということが利点。 韓国の研究に全く依存せず、どこの3進数半導体でもいい。3値にすることで2048bitのRSAが1293bitになる。約63%になる。 これは3値論理にしたことで120%に膨れても、十分なメリットがあることになるが、120%の数字は全くのデマカセ。
でも、僕は先生ではない。


7月27日 2:15AM 2値、3値変換をしっかり考えてなくて修正しました。それでも大きな影響はないと思います。


7月20日 購入したFPGAでLチカ

7月6日に購入したFPGAボード(Cmod A7 35T) でLチカをやってみた。 ICF3-Fを最初に実装するボードを、これにするかは、決めていません。 今朝は体調がいい。しかし、ここ3週間で、まともに動けた日は2日くらいか。


7月19日 ICF3-FはCPUではありません

ICF3について、まだあまり知らない人向けなので、他の方は、読み飛ばしてください。 ICF3は1999年に世界一のRSA暗号の性能だった暗号LSIです。 ICF3-Fは、ICF3の専用演算器を、もっと高速な専用演算器に取り換えたものです。CPUではありません。 ICF3-VとICF3-ZはCPUです。 詳しくは、プロジェクト一覧


7月19日 眼科に行きました

また少し目が劣化したので眼科に行ってきました。 眼底写真を撮り、近くが見えにくくなったみたいですねとしか言われなかったが、 劣化の状況は、わかる範囲で把握できたのではないかと。 もう少し良くならないと、ICF3-Fの作業のスピードは落ちる。 論文など詳細に調べているわけではないが、ICF3-Fが世界初かもしれない状況で、 開発遅延を止めない国というのは、どうにかならないでしょうか。 世界初だと思っている理由は、 「分割加算」を思いつけば、 今の僕のように情報発信するので情報が入ってくるはずなので。
例えば、難問が提案され、20年間解けなかった問題が数か月の差で複数個所で解けたとするなら、 本物は1つで、他は産業スパイによる偽物である可能性が高い。
仮実装の段階で情報発信してしまうのは、ズルイと強く言われているが、 僕は世界の銀行や外務省に収めるような暗号装置を開発した経験があり、最初から産業スパイに狙われていた可能性が高い。 僕の場合は、そうせざるを得なかった、ように思っています。


7月18日 Googleの検索ランキング「PageSpeed」

GIGAZINEの記事、 Googleの検索ランキングを上げるのに重要な指標「PageSpeed」とは何なのか?  記事を読む必要はなくてGPUよりFPGAが有利になるのか?そう思う記事だった。 必ずしもFPGA(ICF3-F)が有利ということはないのですが、そういう傾向ではあるようにと思っただけです。GPUでは、複数のトランザクションを、まとめて演算するため遅延が大きくなりやすくPageSpeedに影響するのです。


7月18日 ファイル暗号ソフトの公開について

良く考えてみるとファイル暗号ソフトを自分のサイトで公開していると、 僕が標的型ウィルスを混入する可能性を考える人があるのだと思った。 僕の場合は、最初から監視されていそうだったので、気にしていなかった。 しかし、あまり監視される材料を持っているのも、問題なので、少し減らすことを考えてみた。 自分のサイトではなくてVectorで公開することにしました。 ダウンロードのページを修正しました。
暗号解読ソフトsha1benchも、Vectorでのみ公開ということに。


7月17日 暗号解読ソフトを開発したのが原因!?

定番のファイル暗号ソフト 「アタッシェケース」のVer3.5.0.0が公開されました。 僕は、このファイル暗号ソフトの解読ソフトを開発しています。 しかしGPUプログラマであれば、 解読ソフトを開発するのに1か月は、かからないでしょう。 (複数のパソコンを連動させる機能を追加したものは、もう少し開発に時間がかかるかもしれませが。) つまり僕が脅威だというなら、GPUプログラマ全員、脅威なのです。
●もう一つ!
この「アタッシェケース」も、とても長いパスワードを使えば、かなり強力に暗号化できることを考えるなら、 僕のToraToraとの違いは小さい。 僕だけを脅威とは言えないと考えます。 ちなみにToraToraはWindows標準関数のAES暗号を使っているので暗号化したいデータを丸ごとOSに渡す仕様です。

なんか日記をいっぱい書いている暇があるならICF3-Fの作業をしろと言われそうですが、 ICF3-Fの作業を開始しようとすると眠くなる仕掛けで、あきらめて日記を書きだすと一時的に治る超科学。


7月17日 量子コンピュータの公募

今日も眠らされていた感じ。満腹になると眠くなることを利用しているかのよう。 こんな体調が続くと本格的に壊れる。そうなる前にと。 IPAの量子コンピュータの公募 があったようです。量子コンピュータはRSA暗号や楕円暗号を解読できる可能性があり、そうなれば社会インフラに大きく影響する。 監視の対象となる。監視者は監視して得られた情報を有効利用する。 どんな有効利用をするのかは僕を見ればわかると思う。僕がICF3-Fを完成させるほうが、いいように思うのです。


7月16日 「RSA暗号の高速化問題」!?

そういう名前で、呼ばれているのかは、知りませんが、 僕の回答(ICF3-F分割加算)は、 高速にRSAが計算できて、FPGAでは最も実用性があると、思っている状態です。 RSAの鍵長が大きくなるとレイテンシが重要になってきますから。 演算器のみの効率で言えばICF3-Fの低基数型ではなく高基数型になるのですがRSA1署名の回路全体での評価は、 まだわからないように思っているのです。


7月16日 英国の新札にチューリング

BBC「新50ポンド札にアラン・チューリング コンピューターやAIの先駆者」
チューリングといえばチューリング賞。チューリング賞を受賞する人にとっては、その知名度が上がることになったように思います。
チューリング賞は、計算機科学分野でのノーベル賞なのだとか。
チューリングの人生を見てみると偉大なる功績を上げたにもかかわらず、 同性愛による罪で、禁錮刑の代わりに、薬品投与による「化学的去勢」を伴う保護観察処分。その2年後、自殺。
ちょっと自分の人生に見えて、しかたがない。僕の揚げ足を狙う輩に注意しようかと。 僕の発言が薬物による障害に見えるから、家宅捜査したら、大麻が出てきました、 みたいなシナリオとか、作られているかもしれない。
一昨年、亡くなった元国会議員の叔父が「大麻合法化活動」をしていました。 僕が大麻と関係することは、とてつもなく、危険だと理解しています。 つまり大麻で、あらぬ問題を作ることは、できないと思います。

昨日、頭痛が治ったかと思ったのですが、まだあまり調子が良くなくて、 「超科学的去勢」で眠らされているような感じ。感じです。 今日も1日、まったくICF3-Fの作業が進みませんでした。


7月15日 ICF3-Fの作業再開

2週間以上、頭痛が続いていましたが、1時間前くらいに、平常に近い状態に戻りました。


7月15日 ICF3-Fの技術は分割加算だけではない

技術にあまり詳しくない人もあるかと思いましたので。 「分割加算」だけでは RSA暗号の鍵長を長くすることはできないのです。 モンゴメリ乗算の アルゴリズムの式から、ICF3-Fのような低基数型を実装すると、最下位ビットから 暗号プロセッサ全体にブロードキャストする配線が必要になります。 鍵長が長くなると、このブロードキャストが間に合わなくなるのです。 このためブロードキャストが1サイクル遅れても、1サイクル早い隣接演算ブロックと接続できることが必要でした。 試行錯誤の末、うまく接続できています。


7月15日 発明されると物の値段が上がるのか?

「レンズの収差問題」がついに解決 というニュースがネット上で賑わっている。
ところで「RSA暗号の高速化問題」の論文は、昔から多数あります。 僕の「分割加算」が世界のどこかで、 既に発明されているなら、「レンズの収差問題」のようにネット上に話題になったのではないだろうかと思う。 つまり世界初な予感。僕は光学は範囲外なので公式は見てもわかりませんが、カメラ系メディアの結論を見て、 ああ、そっか、そう見られているのかと思いました。
もしかして、僕の「分割加算」も、そう思われているのかと。 この発明の特殊事情は、1999年のICF3の暗号プロセッサを、 ほぼ1人で開発した僕が発明していること。 僕はFPGAに不慣れなところはあるもののASICのLSIのI/Oの回路シミュレーションまで実務経験がある。 頭が破壊されていない限りは、そこそこな品質のものができるように思っています。 SSLアクセラレータは、万が一、バグっても事故につながる確率がかなり低い商品で、 保証に期待することがなければ、かなり安価に販売できるだろうと思っています。 (市販の基板価格を見ていて、全く無理と思う値段のものも多く、最も安価な基板の価格で、ようやくという感じ)
発明の対価が製品に無駄に上乗せされて高くなる感じを持つ人があるのかと思います。 「分割加算」の場合は、僕の最も?安価なSSLアクセラレータを、ご購入いただくだけでいいという方向にならないだろうか。
RSAは鍵長が2倍になると計算量が8倍になって厳しくなるが、 僕の「分割加算」は、RSAの鍵長が2倍になれば、演算器を単純に2倍にするだけで2倍の性能になるのでRSAの延命に使えるのではと思っています。 また大きな数を使う量子コンピュータなどに対する耐性の高い新しい公開鍵暗号の実用化に役立つ可能性など、 社会に貢献するように思っています。

2019年7月15日 8:23AM 初回、ちょっと雑に書きすぎたので、もう少し丁寧に書き直しました。

SSLアクセラレータの商品が、どういうものか、ご存知ない方もあるかと思いましたので説明します。 青色LEDのように白色を作りだすのに必要不可欠というようなことはなく、 サーバーのCPUを新しいものに乗せ換えるとか、SSL演算サーバーを、もっと高性能なものに買い替えるなど、代替できてしまいます。 これらの代替方法よりも、ずっと安ければ多数売れることもあるでしょう。 最初のICF3-FはUSBの小型のやつなので、サーバーのPCIeスロットの空きがない場合でも性能増強できるメリットはあるかもしれない。 別途、SSL演算サーバーを置くことなしにローカルのサーバーで演算できるメリットなど。 サーバーの建物代の関係で、高くても売れるところを知っている人は、得をできるのかも。 将来、必要な鍵長が長くなって対応にかかるコストが増加してきたとき、「分割加算」のSSLアクセラレータ(ICF3-F)が役に立つと思われます。

なを出資は募っておりません。・・・破壊活動が止まらないか・・・
今日も1日、頭痛で作業が全くできていないのでした。


7月14日 頭痛で全く作業できない

この2週間で1日分くらいしか作業ができていない。


7月13日 新しいLatticeのFPGA

目を開けるのが辛く脳内の痺れと頭痛が同時に軽度に続いている。3っつ合わせると作業不能状態だ。 もう3日以上、作業ができていない。新しいLatticeのFPGA、MachXO3Dが目に止まった。 AES、SHA、ECCなど一通りの機能を持ったハードが組み込まれたもののようだ。 あまり僕に関係しそうではないけど、知っておいていいか。


7月12日 僕1人で利権と開発と販売が可能

僕が100%の株を持っている、僕が社長の会社、株式会社iCanalがあります。 ICF3-Fが、それほど儲かりそうでなければ、個人事業になる可能性もありますけど。 利権と開発と販売と僕1人でいいわけですから、あまり儲かる計算ができなくても、開発が滞ることはないので、 僕がやるとICF3-F(SSLアクセラレータ)は完成しやすい。 従来SSLアクセラレータと違いUSBで小型のものなのでSSLアクセラレータ専用マシン無しの運用で、 効率を上げられるかもしれません。 ICF3-Fを急ぎたいのです。


7月11日 ICF3-Fの進捗ゼロ

24時間、まったく作業が進んでいない。原因は眠らされていることか。 タブレットの文字や、基板の文字が読めなくなっている。 正しくは手元の距離では目の焦点を合わせることができなくなった。不便。 そうなってから、どのくらいだろうか、1カ月になるか。 そのくらい長い間、調子が悪いのは、あまり回復しないことが多い。
1983年ごろ大ヒットした アニメ「北斗の拳」 (リンク先はWiki)を子供の頃、良く見ていた。 諸設定の北斗神拳の1行目の途中から。

エネルギーで人間の体に数多く存在するといわれる「経絡秘孔」を突くことで、 人体を内部から破壊することを基本とする一撃必殺の拳法。

そんなアニメを思い出した。ちなみにアニメは少年向けですが、大ヒットに値するほど良かったかと。


7月10日 分割加算はRNSと同じか?

違うと思っています。RNSの論文は多く見かけています。細部まで論文に書かれているものは少ない。 RNSはRedundant Number Systemなので論文に乗法が定義されていたり、2bitの冗長性を定義するものがあります。 東芝の論文にRNS(Residue Number System) がありますが、各桁で余算をしているように見えていますが、 僕の分割加算では、そういう演算は不要です。 累積加算のレジスタ1つを1bitの冗長性で表現して、普通の乗算結果を累積加算しています。


7月9日 ICF3-Fの作業を無理無理やってます

昨日は眠気が増大して寝ていましたが、今日は頭痛。 設計はできないが、デバッグはできると思って無理無理やっています。 8bit CPUをLWZetaから2倍の性能のNapalmに置き換える作業。 LWZetaで動いた回路が動かない。 Napalmでは初期化されていないレジスタを勝手に読み込んでハザードが全体に広まったことが原因だった。 レジスタを初期化したら正しく動作した。 普通は15分くらいの仕事だろうか。今の僕では半日かかる。ICF3-Fの完成が遅れる問題を!


7月8日 ノーヘル賞だね

僕が分割加算のアルゴリズムの話をインターネット上でしているので、 親が何か、期待したらしく「ノーヘル賞だね」と言ってくるので、 「いや、ノーベル賞の授賞者を見ると、CPUの実装や、演算器の実装で受賞している人はいない」と、まともに答えた。 もう一度、親の発音を思い出すと「脳減る症」だということに気づいて、大爆笑してしまった。 発明すると「脳減る症」になる問題。「脳減る症」が未然に防がれない、日本社会が、疎ましい。


7月6日 分割加算のアルゴリズムはFPGA向き

昨日の日記でRSAのアルゴリズムの話をしました。 中国人剰余定理やモンゴメリ乗算は実装手段にあまり依存しないアルゴリズムです。 それに続けて僕の分割加算のアルゴリズムを 書いたため違和感を持った人がいたようです。分割加算はFPGAやASICでモンゴメリ乗算の低基数の場合に高い効果を発揮します。 この日記でも何度か書いていますが、RSAを高速化する方法として、モンゴメリ乗算の高基数型と低基数型があります。 高基数型は乗算器をパイプライン化して高い周波数を出せるため高速です。 ただ乗算器にデータを途切れなく流し込んでRSAの演算結果にできる制御論理が大きくなりやすい。実装環境毎の依存性も大きく開発コストが大きいといったデメリットがあります。 一方、低基数型のICF3-Fはパイプラインはないものの、データのローカリティが高く作りやすい。実装環境毎の依存性が小さく開発コストが小さい。 鍵長に比例した演算ゲートを投入することで性能を上げることができる。デメリットは高基数型と比較して乗算器の周波数を上げられないため性能が出にくい。
楕円暗号のように鍵長が小さいうちは高基数型が有利ですが、RSAのように鍵長が長くなってくれば低基数型になってくるかもしれない。 高基数は演算器の効率は高いのですが、制御論理も大きくなってしまうため、演算器の性能だけでなく、RSA署名1演算の全工程ができる実装で比較しなければいけません。


7月6日 FPGAボード(Cmod A7)を購入

長い間続いた頭痛も収まり、秋葉原の有名通販でFPGAボードCmod A7-35T(XC7A35T-1CPG236C)を購入しました。 でもCmod A7-35TにICF3-Fを押し込むのは、 ちょっと厳しいかなと思っています。 入らない場合はCmod S7(XCS25-1CSGA225C)にして2つあるモンゴメリ乗算器を1つにすれば入るかなと。 モンゴメリ乗算器1個だと性能のほうは、ちょっと心配かも。


7月5日 ICF3-F作業再開するも、進まない

頭痛が治ったかと思ったら、頭痛の種類が変わっただけでした。 苦痛は軽いのですが、別の部分が重くなったというか、作業できるほどではなくて、弱りました。 わかっている人もあると思いますが、何故こんなマイナスにしかならないことを書くのかです。 どのくらいICF3-Fの作業が遅れたのかを、記録して後から、考えるためです。
中国人剰余定理のアルゴリズムは、RSAの理論的な計算量を約4分の一近くまで減らします。
モンゴメリ乗算のアルゴリズムは計算機が不得手な除算を乗算に変換してRSAの計算を加速します。
そして
僕の分割加算のアルゴリズムは大きな数の加算キャリーを分割して並列に加算できるようにすることでRSAの計算をさらに加速します。
何が言いたいかといえば、早くICF3-Fを実装して、その効果を検証したくて、しかたがない状態なのです。


7月4日 辞めた社員による機密情報の漏洩が話題に

僕の開発環境についていえば、ずっと僕1人でやっているので、大丈夫です。


7月4日 ICF3-F作業再開

5日間つづいた頭痛から、やっと解放されたようです。単に、おさらいです。読む必要ありません。 ICF3-Fの通信論理で使っている8bit CPUをLWZetaからNapalmに置き換えます。 LWZetaは1命令4サイクルなので1バイトの転送を平均12.5命令で処理しなければいけません。 間接ジャンプを上手く利用することで可能な範囲ではありました。 しかし1命令2サイクルのNapalmでは1バイトの転送を平均25命令で処理すれば良く、かなり楽になるのです。


7月4日 どうして過去を取り返そうとするのか、それが伝わっていない

ある人に、そう言われた。決定的な理由は、体が半壊していること。 電車で1時間の場所に行って、1時間歩いて、電車で帰ると、体中が筋肉痛で、次の日か、その次の日まで動けなくなる。 電車で1時間の場所に行くだけで運が悪ければ、頭が激しく痛み、引き返して家で寝ていなければならない。 退職直後から、徐々に悪化して、現在では、前述の通りの体になっている。 普通に働いて稼ぐことは、全く無理だからです。 そして、そのことは某大企業の問題だと、僕は考えているからです。 実際、関東の外に出たことは10年以上ない。東京に出ることも年に数えるほどしかない。


7月3日 頭痛が少し治りました

連続で日記を書いてすいません。 頭痛が続いてると日記に書いたので、治ったことを書かないと、 ご心配する方もいらっしゃると思いましたので、報告いたします。 少し治りました。まだ30分くらいしか経過していないので、実は、まだわからない。 一昨日の日記で左耳が聞こえなくなったときの話を書いたのですが、 現在も周波数が交錯していると書いたところ、そこまで酷くはないだろうとの指摘がありました。
正確に書きます。 ほとんど聞こえなくなった時点からの回復経過で、かなり酷い周波数の交錯がありました。 現在は、音量は8割に減り、雑音が1割入って、音質は、ペットボトルで自作したスピーカのように弾けた音になっています。 遠近を聞き分けることはできず、すべて耳のすぐ近くで鳴っているような音です。


7月3日 3人に1人が退職後も…

ある有名なコミュニティ型ニュースサイトで「3人に1人が退職後も元職場のファイルやメールにアクセスできる」 ということが話題になっているようです。 僕は2005年6月に日立製作所を退職していますが、最終日、「胸章」の返却を要請され返却しています。 「胸章」は日立のビルに入るときにチェックされるものです。人によっては返却しない場合もあるらしいです。 僕は全てのアクセスを遮断されたと思います。推定、毒を盛られて体を潰されています(頭も軽く)。 頭にきましたが、それを証明できるわけでもなし、会社を余儀なく辞めることにしました。 ここで会社の転職支援を受けると、日立に抗議できなくなるため、一切の支援を受けていません。 頭にきていましたが、しかし、まずは日立との和解を試みました。 そして日立の関連会社のICカードを買うことを考えました。 関連に連絡をしても、すぐには取り合ってもらえませんでした。 「独立行政法人IPAの未踏の公募で採択されて、 どうしてもICカードが必要なのです」と無理に押し切りました。 ちゃんと採択されたお金を使って、定価の1割、2割引きくらいで買っています。日立に借りはありません。 僕のICF3などの活躍の成果に対して体を潰して退職に追い込む酷い仕打ち。 これを政府関係に話せば、なんとかなると、当時は考えていました。 しかし現実は、うまくいきませんでした。現在も、この酷い仕打ちをどうにか、ならないか苦労しています。

このときICカードの開発、販売を通してわかったことですが、 僕がICカードのミドルウェアで実装した役に立つ機能を宣伝していると、あたかも、 日立のライブラリの機能の再販みたいな言われ方をすることが、非常に多かった。 できれば、気を付けて見てください。

2019年7月4日追記 日立のライブラリにも僕が独自に追加した機能と同じものがあるのではないか? との指摘がありました。当時の日立関連のICカードメーカがICカードのコマンドの仕様書を僕のところに送付しています。 10ページ程度で1ページに1コマンドしかない薄い仕様書です。カードコマンドの内容は、シンプルなもので、 読み間違うことも、読み落とすこともないと思います。同じ機能のものがあれば使っていると思います。


7月3日 頭痛が止まらない

頻繁に言葉が出なくなって偏差値で換算すれば30くらいか。辛い。 6秒間の会話で後半3秒になると前半3秒が消えていて思考が停止する。 頭痛が止まらないとICF3-Fの作業が進まない。


7月3日 ICF3は日立の製品名ではないのか?

いえ。ICF3は開発コードネームです。FAQに追加しました。


7月3日 ICF3-Fの作業が完全に停滞(その4)

今日も頭痛で停滞。 親も早く(ICF3-Fの作業を)しろと僕に言ったのですが、それを僕に言っても意味がなくて、みんなに言って欲しいと思いました。 これでも部屋で一人、「痛い痛い」と連発していることもある。
ICF3-Fは既存の基板のbitstreamファイルをダウンロード販売すること 可能な予定です。 半導体部品を全く仕入れずに販売すること 可能なのです。 FPGAメーカーが無償で開発環境を提供しているFPGAに限られますが。 もし結果が出れば、その結果を見て次を考えます。

既存の基板を使ったダウンロード販売を可能にするためには、 既存の基板に追加することなくサーバーと通信できること。 通信性能がFPGAの演算性能を上回ること。 SSLアクセラレータとしての性能がビジネスになる領域にあることです。 この1年近くをかけて、うまくいきそうであることを確認してきました。 現在目標としているUSB接続では転送性能は、あまり高速ではないですが、将来、 鍵長が長くなれば必要な通信性能がかなり下がるので、まずはUSBと考えています。


7月2日 大型計算機の回路シミュレーション波形の画像を削除

違法な方法で入り込む人の1人が「IBMの機密情報に当たるのでは」と連絡が入ったので、 念のため該当する部分を削除しました。 削除した画像は日立の回路シミュレーションデータのみでIBMの機密情報には相当しません。 IBMの回路データではなく日立が作成した等価な入力容量のみのもの。画像中にその記載がありました。 20年以上前の回路シミュレーションの波形画像で、 日立の大型計算機がIBMのCMOSチップを導入する上で重要だったCMOSノイズ評価の波形画像でした。 バイポーラからCMOSへの転換期、日立の電気屋の部署では情報処理技術者が不足していたため、 簡易な評価方法でノイズ評価をしていました。 当時、担当した僕がPerlなどのプログラミングが得意であったため、 電気屋の課長にやってみないかと言われ、Perlで回路シミュレーション波形データを画像化しました。 理論通りの配線長のところでノイズが大きくなることが確認され、そして簡易な評価方法との違いが明確になりました。 当時の日立の開発部署では入社2年目に、研修員論文を書く制度があり、 僕はこの簡易な評価方法とPerlを使った評価方法との違いを、研修員論文として社内で発表もしています。 2005年の日立退職時の打ち合わせで、自分のした仕事は、(競合他社の)転職先に持っていきたいと明示的に断っていたこと。 20年以上前の話で技術的には陳腐化しているので、問題ないかと思って歴史的資料として公開しました。


7月2日 ICF3-Fの作業が完全に停滞(その3)

まだ頭が辛い。寝ているほどではないのでChromium OSの最新版の独自ビルドを始めた。 頭が辛い問題がなければ、ICF3-Fの試作で性能値を出すことを先にするつもりでした。 ICF3-Fの性能値が正確に出せれば、僕だけでなく、いろいろな予測が出せるはずだからです。 最初からいいつづけていますが、RSAを延命することで、世界のコンピューター システムのコストを下げることなど。
参考まで、RSAの鍵長が長くなるとCPUでは性能が激減することを書いたブログ。
RSA 8192bitの性能を測定するソースコード

Qiitaのサイトが障害で止まっていた場合に備えて、もう一つ。
RSA 8192bitの性能を測定するソースコード

3:10AM 追記 : 意識が飛びそう。いつまでつづくか・・・


7月1日 ICF3-Fの作業が完全に停滞(その2)

今ちょっと頭痛が軽くなったので日記を書きます。CPUのオープンソースは公開を停止している。 ICF3-F(SSLアクセラレータ)の作業が停滞している問題について考える。 今は、それしかできないが、壊れると元には戻らないかもしれない。 十数年前、僕の左耳が一度、ほとんど聞こえなくなった。医者に3分の一の確率で、聞こえないままだと言われた。 現在、周波数帯によって、かなり戻っているところと、そうでないところがある。 人の声の周波数帯は、かなり回復している。ただ回復していても別の周波数帯の音に変わってしまって、 音楽を聴くと鑑賞には全く絶えないレベルだ。 壊れると元には戻らないのかもしれない。 ICF3-Fの進捗が大幅に遅れるだけでなく、本来、もっとより良いものが出来ていたはずのところが、そうでなくなるのかも。


7月1日 ICF3-Fの作業が完全に停滞

Napalm完成直後からの頭痛が、まだ続いている。 ネット上にある自分以外が書いた文章を読むと、吐き気がして、考える力がなくなっている。 目に文字は映っているのだが、文字の意味を、引っ張ってくる処理に支障が出ている。 本当に若いころなら1か月でできる仕事が10か月かかる状況。 ICF3-F完成に向けて技術的に困っていることはなく、頭痛が止まらなければ、時間が無駄になるだけだと思うのです。


7月1日 電力解析によるサイドチャネル

まだ頭が痛いし、偏差値35のままです。いや40ぐらいにはなったかな。 ICF3-Fの作業が止まっています。(いいのか?) さて、1999年のICF3を製品出荷した前後だと思いますが、 社内でICF3の電力解析のサイドチャネル耐性の「評価の」成果は中央研究所にという話が僕の耳にも入りました。 設計的にはICF3が電力解析攻撃に強いのは、評価するまでもなく当たり前なのです。 ただ僕が、そうなるように狙って設計したわけではありません。 ハードウェア制御論理を簡単にしたいという理由でできたアーキテクチャが、たまたま電力解析攻撃に強いものになった。 完成度の高い製品が1回でできたという幸運です。 どうして電力解析攻撃に強いのか。RSA暗号は、秘密鍵の値によって、A×B、A×Aの計算をします。 秘密鍵の最下位ビットから順番に値を調べて0ならA×Aの演算をします。1ならA×BとA×Aの演算をします。 ICF3は0、1の値に依存せずにA×Aの演算器と、A×Bの演算器を、並列に動作させるので、 秘密鍵の値によらず、時間と電力が同じになるという特性を持っています。 したがってタイミングアタックや電力解析攻撃に強い。 暗号LSIは性能だけでなく、そういった特性もセールスポイントなのです。^^)


暗号プロセッサ OpenICF3