Home
2018年
2019年

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は性能だけでなく、そういった特性もセールスポイントなのです。^^)


6月30日 8bit CPU LWZetaからNapalmに入れ替え

Napalm完成直後から頭痛が続いている。 作業がかなり滞っている。某大企業のリストラ屋の持つリソース、科学力、頭脳、とても優秀。ここから考えられることを考えればいいのかも。 CRC32の回路はXilinx PicoBlazeに合わせて作ったためLWZetaに入れ替えたとき1命令2サイクルから1命令4サイクルの変更をしました。 そしてCRC32回路が進化。またLWZetaからNapalmに入れ替えたので、1命令4サイクルから1命令2サイクルの変更が必要になりました。 頭痛がなけれ、今日この日記の進捗に変更完了が、書けたと思う。 頭痛が酷くならなければ、明日には変更完了になるだろうか、、、


6月29日 8bit CPU NapalmがFPGAで動いた

頭痛と眠気で眠ったあと起きると全身の筋肉で力がはいらない。偏差値35ビームは、頭が悪くなるだけではない。 WZetaのNapalm(ナパーム)をFPGAの実機で動作させました。 AES暗号の計算が正しく動作することを確認しました。 FPGAの実装結果をWZetaのサイトに追加しました。


6月28日 8bit CPU ナパームのシミュレーションが全部通った

周波数10分の一、偏差値35くらいの頭になっていたので時間がかかりましたが8bit CPU WZetaのナパームのVerilogが完成し、 シミュレーションのテストベンチが、全部通りました。 オリジナルのWZetaは1命令4サイクルですがナパームは1命令2サイクルの実装なのです。


6月25日 暗号解読を加速しないのか?

暗号プロセッサのオープンソースOpenICF3を公開していますと言うと、 たまに「暗号解読を加速しないのか?」と聞かれることがあります。 FAQに「暗号解読を加速しないのか?」を追加しました。


6月21日 進捗がないけど日記を書く

頭の痺れで思考能力が著しく低下したので、こういうときに設計をしても、 やらないほうがいいくらいの酷いものになることがある。なので日記を書きます。 言いたいのは、僕が若いころなら5倍は速く仕事が進んでいる。 1か月で終わる仕事が、今は5か月かかっている。 今、開発を進めているICF3-Fは、RSA1回の演算時間でFPGA世界最速の性能になるのではないかと思っている。 それを明らかにすることが、一番、現状の状況に対して効果があると考えている。 そして、効果に比例した邪魔が入る。 若い頃なら、回避行動なしに被弾しながら一直線にICF3-Fの性能を測定できるものを開発していただろう。 今は5ヶ月、被弾しながら一直線は、厳しいと思う結果、回避行動が多くなる。 その結果、10か月かかるような状況だと思っています。 若い頃なら、1か月なのに。頭に痺れを入れるのをやめさせることはできないのだろうか
ついでに今日の作業内容。新しい8bit CPU Napalm(ナパーム)の設計図を作成しています。 WZetaと同じバイナリが動作する互換CPUです。 配線を入れ替えるだけでWZetaとLWZetaのどちらのバイナリも動作する予定。


6月20日 RISC-V DAY 2019が中央研究所で!

RISC-V DAY 2019 が9月30日に日立の中央研究所で予定されているようです。 海外から来られる方の話題に暗号プロセッサのオープンソースOpenICF3もあるように思います。
海外の人に  OpenICF3は僕のプロジェクトです。日立や中央研究所は無関係です。 僕はRISC-V DAY 2019に参加しません。
1999年の暗号LSI ICF3の設計のほとんどは僕がやっています。開発についても僕が多くをしています。 僕は1994年から約1年、中央研究所の超高速プロセッサ部にいました。 ICF3の開発に中央研究所超高速プロセッサ部の出身は、僕以外に2名います。 1人はICF3のリーダーでIBMのCPUと接続するI/F部のハード設計・開発担当。 リーダーは僕がRSA暗号のモンゴメリ乗算器を検討した結果を承認する役割も持っていました。 暗号プロセッサの部分は僕が単独で設計開発しています。 もう1人はLSI全体を大型コンピューターを使ったシミュレータでシミュレータするチームのリーダーで、 ICF3のシミュレーションをしていました。検証のみで設計には関与していません。
ちなみにICF3開発中の開発現場に中央研究所の人は全くいませんでした。 世界の銀行に収めるような暗号装置のLSIですから、当たり前といえば、そうですが。 ICF3の設計・開発者といえば僕1人で、だいたい正しい。


6月19日 また8bit CPUを作り始めました

ICF3-Fの通信制御のCPUとしてWZetaを使って開発を進めてきました。 WZetaは1命令4サイクルで動作するのですが性能的にギリギリという状況が見えてきた。 それほど無理でもないが、WZeta互換な1命令2サイクルの8bit CPUを開発しても、それほど時間がかからない。 それで、また8bit CPUを開発することに。WZeta Napalm(ナパーム)と命名。 WZetaのプログラムがI/0命令のタイミングを除いて、そのまま動作。 Napalm(ナパーム)の高性能版をSuper Napalm(スーパー・ナパーム)ということにしようかと。
ところでWZetaは、8bitレジスタ×128と大容量ですが、データ用の8bitのSRAMの先頭128バイトに実装できたり、 プログラムは8bitのROMで良かったりするので、TTLでCPUを作るようなこともできるもかもしれません。 僕自身に経験がないので、確かな話ではありませんが。


6月16日 限定公開してわかったこと(2)

このまま、いけばCPUのオープンソースは公開停止になるのかと。 そうなれば、世界の銀行に暗号装置を納品したときの名残の問題が残るのみ。 もう長いこと名残が続いて酷いことをされている。彼らの目標、彼らが利益を上げる方法を考えると、 僕は1999年に世界一のRSA暗号LSIを開発して会社の利益や日本に貢献したはずが、どうしてとなる。 そこに大きな問題があると思っています。
公開鍵暗号の高速化の方法としてモンゴメリ乗算があり、そして大きく2種類ある。 ICF3のような低基数型と高基数型。 高基数型も、タイミングアタックの脆弱性を対策すると、性能が落ちる場合がある。 ICF3型は、タイミングアタックの脆弱性がない。 完璧な脆弱性対策をすると、どちらも性能が劣化する可能性があるが、 以前の日記に書いていなかったと思ったので。
ICF3-Fの発明の価値は、 まだわからないかもしれないですが、海外に先を越されるのは、大きな問題になる可能性がある。
ICF3-Fの進捗は、作業時間に対する効率は良く順調。 これからFPGAの実機を使って、加算のような簡単な演算を、サーバーから連続送信して、 結果を受信するテストを開始するところです。


6月16日 世界の銀行に暗号装置を納品したときの名残

そのせいで政財界関連、医関連、T関連が、あんまり合法的でない方法で勝手に出入りしてくるのです。 ある、ARMの超大物、日本人が煙たがっているとの報告が入りました。 関連を経由すると、情報が、かなり捻じ曲がったり、ねつ造される場合があるので、 そういう問題を避けるには、直接話せる方法があったほうがいいのかもしれません。
限定公開によって、一般の人がCPU技術を知る機会があったことは、僕はいいことだったと思っています。 そして、これから、どうするのか考えていければと思っています。
ICF3-Fを急いでいます。関連は破壊的な行いをする場合が多く、今、破壊的な行いをされると困ったことになるのです。 破壊防止策として、これを書いています。防止策になるかは、みなさん次第なのだと思いますが。


6月16日 限定公開してわかったこと

2つの8bit CPU ICF3-ZWZetaについて、2019年6月16日~18日の3日間、 Verilogのソースを含めたすべてのβ版を限定公開します。 今日はまだ初日ですが、ネット上の反応からわかったことは 既存のCPUのライセンス料を安くする目的に使えそうか?ということです。

ICF3-Zは従来CPUとはアーキテクチャが異なり、命令セットに性能レンジがありません。 低性能領域においてコア面積に対する性能がいい、という特性を持っています。 乗算器がないクラスのCPUでは、加算器1個を効率的に利用するICF3-Zの アーキテクチャによって既存のCPUの数倍から10倍以上の性能がでます。 この情報からRISC-Vの組込み向けの小さいCPUコアでは、 このアーキテクチャの一部を模倣するところがあるかもと想像しています。 既存のCPUのライセンス料に注目するよりは、 加算器1個で高性能が出せる効率のいいアーキテクチャや、 まだ成功するか、わかっていませんが、 仮想マシンを効率良く実行できるアーキテクチャを注目していだだければと。

WZetaはCPUコア面積を小さくすることを絶対として作られたアーキテクチャです。 命令セットは、ごく普通の命令セットですが、面積を小さくするために偏屈している部分があります。 ASICで使うことも考えられていますがFPGA寄りかもしれません。 しかし、既存の32bit CPUの最小構成のコア面積よりも10倍~30倍小さいので、 ライセンス料の理由というよりは、面積が小さいという理由でWZetaを使うというように考えていただければと思います。


6月15日 CPUのオープンソースを3日間限定公開

2019年6月16日~18日の3日間限定で 8bit CPU ICF3-ZWZetaの2つのオープンソースを公開します。 今回の限定公開は「中を見てみないことには検討できない」ということを考慮しました。 こういったCPUのオープンソースが、日本にもあるべきか、多くの人の考えが必要なのかもと。


6月13日 演算中に次のデータをレジスタに転送

8bit CPU WZetaが演算中の暗号プロセッサのレジスタに 次のデータを書き込む機能を検証する簡易なVerilogシミュレーションが動作した。この調子で完成を急ぎたい。


6月12日 1日中寝ていた

睡魔が酷く、昨日もあまり作業できていなかったが、今日は、全くできていない。 SSLアクセラレータの性能を上げる分割加算を 早く実証しないといけないのに。万が一のことがあったらどうするつもりなのだろう。


6月11日 RISC-VベースのPicoRV32

PicoRV32をXilinxのFPGAに実装した結果を見つけました。 僕の8bit CPU WZetaと比較してみます。

CPUコアLUT数FF数BRAM数LUT-RAM周波数
PicoRV32
(最小構成)
761442-48-
WZeta
SPM=128Byte
Data=2KB
67641.00217MHz

WZetaの周波数はArtix-7の-1LなのでPicoRV32で使われているスピードグレードより遅いデバイス

PicoRV32は1命令、平均4サイクルのようです。WZetaは1命令4サイクル固定です。 WZetaでもAES暗号 256bitの演算やI/O操作が可能です。 PicoRV32は32bitのRISC-VなのでWZetaにできない、いろいろなことができるはずですが、 10倍違うとWZetaにできることなら、WZetaが便利のように思いました。


6月11日 BRAMから暗号プロセッサにデータ転送する論理の設計図

開発中の設計図ですが、睡魔に眠らされ、全身の筋肉から力が抜けることに耐えながらやっています、それを言いたかった。 1999年のICF3では演算中は暗号プロセッサしか汎用レジスタ(1024bit×16)を操作することはできませんでした。 ICF3-Fでは性能を上げるため暗号プロセッサの演算中に次のデータを汎用レジスタ(1024bit×64)に書き込みをする、 データ転送機能(DataMover)を実装します。 XilinxのFPGAの分散RAMが16本×2だと簡単だったのですが64本×1なので暗号プロセッサが 汎用レジスタをリード・ライトしているタイミングではデータ転送機能のほうからリード・ライトできません。 そこで「データ転送機能」が書き込みを、とりあえずしてみて成功したか否かを確認する方式になっています。 Verilogのシミュレーションの図で言うとWの部分です。


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


6月11日 回路開発ソフトはExcel 97(追記)

1999年のICF3の開発部で、LSIの実装ファイルのどこまでを作っていたのかを、もう一度、説明することに。 暗号プロセッサを3000ゲート程度の論理に分解して、レイアウト実装する部署に依頼するところまで。 レイアウト実装する部署では、3000ゲート単位の論理セルを、クロックバッファーを避けながら、 配置します。自動配線プログラムは使っていたようですが、配置がどこまで自動化されていたのかは僕の知るところではありません。 ICF3の開発部で、いきなり3000ゲートの単位のNAND、NORのセルで構成されるファイルを作っていたわけではなく 2段階に分けて作業していました。 1段階目では、AND、ORよりも、もう少し抽象度の高い設計図を作ります。 OpenICF3の公式サイトでICF3の暗号プロセッサの設計図を公開していますが、この1段階目の設計図になります。 1段階目の設計図を作るのにExcelによるタイムチャートを使います。 1段階目の設計図からVisual HDLというGUIのEDAを使ってNAND、NORのセルに置き換えた設計図にしていきます。 Visual HDLが、どこのEDAツールか、知る必要がなかったので、知りませんが、内部的にはVHDLのようです。 一応、VHDLによるシミュレーション機能はあったようですが、使い方を勉強する暇がなかったので、使っていません。 基本的にシミュレーションによる論理設計は厳禁でしたし。 1段階目の設計図から2段階目の設計図を作成するのに、隣の大型コンピューター開発部では、 アルバイトを使っていたようですが、東大卒の多い、僕の部署では、僕が自分でやります。
一般的なCPUではレイアウトから設計にフィードバックして、設計とレイアウトを繰り返すことが普通のようです。 ICF3はレイアウトからフィードバックなくLSI実装が可能なアーキテクチャでした。 これは設計者をリストラしても、外部にLSI実装の社外秘が漏洩しないため経営者や 半導体製造メーカにとって都合のいい特長でした。

XilinxのFPGAでは、3000ゲートに分割することなく、丸ごと自動配置が可能です。 そしてマニュアルで配置することもできるみたいで、全部1人でできそうです。


6月10日 回路開発ソフトはExcel 97

睡魔に襲われ、わずかな作業時間で開発しています。脳内睡魔を止めないと、ゆっくりとしか進まないのかも。 1999年のICF3の暗号プロセッサはExcel 97でタイムチャートを作成して論理回路を開発しました。 Verilogのような論理シミュレータはありません。Excelと脳内シミュレータでの開発を強いられました。 それでもバグを1つも出さなかった。かなり凄いことです。 当時の僕が、とても精密に動作していたということだと思います。
通常、メインフレームを使った論理シミュレータを使うのですが、 暗号プロセッサ単体でのシミュレーションはしませんでした。単体シミュレーションを新規に起こす方法を知らなかった。 いきなりLSI全体でのシミュレーションで動作検証をして正しく動作しました。
ICF3-Fの開発でもExcel 97を少し使っていますがCUIのVerilog中心でやっています。(激安な開発コスト)
Excel 97でタイムチャートを作るのは、0、1の遷移を人手でナナメ線にしているので、 かなり時間がかかって大変なので、もう少し複雑な論理設計では最新のEDAが便利なのかもしれません。

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


6月9日 シミュレーションでダミーの演算結果が得られた

RSAの演算データはYから送信されWに届く。 Wは暗号プロセッサにデータをセットするためにあるが、今回は、 届いたデータをそのままダミーの演算結果として返すプログラムになっています。 Wは、Xのクロック周波数とは無関係な周波数で動作していますがBRAMを挟むことで、 周波数の違いを吸収します。 Wの周波数は暗号プロセッサの動作限界のギリギリまで上げることができます。



6月8日 思考能力が著しく低下したので作業中断

現象を正確に書きます。 ネット上の記事を読んでいると1度、読んだだけでは理解できず、2度3度、 読み直して、頭に苦痛を発生させながら理解することができるという状態。 3単語を読み終えることには2単語目の記憶がなくなっている。 記憶がある場合でも、理解に結びつけるためには、苦痛が発生する。 睡魔の乱発も感じていますが、痛みがないので、あまりここに書かれていない。 作業が遅れることは問題と思います。

追記 10:10 PM ベッドで横になっていたら1時間以上眠ったようです。 とりあえず作業再開します。


6月8日 CPUオープンソースの海外の動向

オープンなハードウェアの開発と普及を促進する団体「OpenHW」グループが発足したようです。 昨日の記事より、もう少し詳しいかも。


6月7日 RISC-VベースのCORE-VとWZetaの面積比較

CORE-VはRISC-VベースのSoC向けのプロセッサコアなんだそうです。 WZetaと競合しそうです。 RISC-Vは32bitなのでCORE-Vが、Xilinxの32bit MicroBlaze MCS(一番面積が小さいもの)と同程度と仮定して、 面積比較をします。LUT数で10倍違うのでWZetaが便利な用途はありそうです。

CPUコアLUT数FF数BRAM数LUT-RAM周波数
MicroBlaze7003381.0176166MHz
WZeta67641.00217MHz

6月6日 転送と同時にCRC32を計算する回路が動作した

動作を確認できたのはBRAMからUART送信回路への直接転送。 プログラムで1バイト単位にCRC32を計算するか、否かを選択できる。 CRC32は処理が重い計算なのでIntel CPUのサーバーではCRC32Cが使える。 またCRC32、CRC32Cの専用演算命令がないサーバーの場合、垂直パリティに変更することができる。 BRAMにCRC32/CRC32C/垂直パリティのテーブルが入っていて、テーブルを切り替えるだけなので、 3種類の巡回冗長検査ができるが回路は1個分の面積。



6月5日 サーバーからのデータを高速に受信

USBのUARTでサーバーからRSA演算に必要なデータを1バイトづつ8bit CPUで受け取って FPGAのメモリ(BRAM)に書き込むと遅くて処理が間に合わない。 そこで直接転送することも可能な回路を追加した。直接転送を使ったBRAMへの読み書きの動作が確認できた。

20年以上前に米国カリフォルニア州のサンノゼに3か月間いたことがある。 そのとき泊まっていたホテルがAMD本社の正門前だったことに今日気づいた。 ホテルの敷地で、一番、AMD本社の正門に近いところでAMDのマークが良く見えた。

追記: あ、いや。体が健康なら、アメリカに行くこともできたかもという話です。(英語ができるとは言っていない)



6月4日 Xilinx代理

Xilinx代理を自称する怪しげな声が 「WZetaは他社への移行を容易にするからXilinxは怒っている」と言っている。 WZetaはXilinxのPicoBlazeを代替するには、どちらかというと面倒なCPUだ。 PicoBlazeが1命令2サイクルなのに対し、WZetaは1命令4サイクルなのでタイミングが違う。 これだけでも、面倒なのが、わかると思います。 恐らくCPU開発の阻止をXilinxのせいにして、やりたかったのだろう。 Xilinxと直接、話せたほうがいいのかも。


6月4日 自作CPUに新命令INPUTANDを追加

超軽量CPU WZetaに新命令を追加しました。 現在、公開を見合わせていますが、公開できるようになればなぁと。 「いいね」などの支援より、反CPU開発な人たちへの説得が問題です。 新命令はINPUTAND、INPUTOR、INPUTXORの3つ。 I/Oからステータスを取得して、必要なビットとANDすることは、頻度が高いので実装しました。 この新命令の追加で、ゲート数が増えることがなかったのも、理由の一つです。
自作CPUICF3-Zの公開を見合わせている問題もWZetaと同じです。 仮想マシンの機能は、おまけなのですが、うまくいく可能性を捨てきれない。 (やり始めて、うまくいかないことはありそう) 税金なくArduinoの非C言語版みたいなものが、できることはないのだろうか。 加算器1個による暗号性能の単純な比較だけでなく。
しかしながら、基本的には自分が少しでも損をする可能性のあることはしない方針だと思っていただけると。 WZetaを競合他社が使って僕が損をするというようなことは全然OKです。ICF3-Zは、また別です。


6月3日 15年間使ったレンタルサーバーを解約

2005年7月14日から使ってきた、さくらインターネットのレンタルサーバーを解約しました。 僕が日立製作所を退職したのは2005年6月末です。 レンタルサーバーを借りることにしたのは2014年12月に社内展開できるレベルまで自分1人で作り上げた ICカードエミュレータmyuTokenを公開するためです。 2014年12月に謎の風邪を頻発して倒れました。このままだと体を壊されると思って退職しました。
昔の思い出話で、書いてある通りの意味しかありません。 ICカードエミュレータを公開して「窓の杜」や「Vector」にメールすると、 レンタルサーバーのアクセスログに来ていることがわかったりして、当時は、それが楽しみで毎日アクセスログを見ていました。 東大からのアクセスが、多数ありました。東大の方で、僕のやっていることを理解している人がいるのだと、 ちょっと感動したのです。良くみると「理3」からのアクセスでしたが気にしないことにします。


6月3日 加算器1個の除算なら5倍以上ですが、、

最近の日記(5月27日)、日記(5月29日)に 加算器1個のCPUなら、ICF3をCPUにしたアーキテクチャが5倍以上高速という話をしています。 有名CPUの最も下のクラスのCPUでは加算器1個なので、そうなのですが、 実際、乗算器オプションも既に明記されていて、その低速な乗算器を使った モンゴメリ乗算のケースを忘れていました。次世代暗号アルゴリズムで、 モンゴメリ乗算が利用可能なのかはわからないのですが、利用可能なら、 暗号演算の性能が2倍くらいまで落ち込むことはあるのかもと。 暗号性能以外は、エコシステムなど、デメリットが大きいので、2倍では、どうかというところ。 もう少し精度ある見積もりをするか、あきらめるか。


6月2日

"C9 C9 80"の3バイトを転送するとステータスを返すだけだが、サーバーからの命令を受信できるような、 プログラムをCPU Xで実行するシミュレーションがうまくいった。 自作CPUの間接ジャンプは128×n+8bitレジスタ(0~127)のアドレスにしかジャンプできない仕様ですが、 プログラムメモリの先頭をジャンプテーブルにすることで、便利に使えることがわかった。



6月1日 みんなハッピーという国

この国に役立ったと言えるレベルの発明をすると、 頭や体にムチを打って村八分にして、みんなハッピーという国か。状況の打開に苦労しています。 僕に言える特殊事情は、計算機のハードに強い。 大学1年のときに電磁気学を深く勉強してしまったこと。 世界の銀行や外務省に収めた暗号装置のもっともセキュリティの深いところを開発していること。 日立製作所の中央研究所に入ったこと。
電波ウィルスの被害に遭遇しやすい環境と、電波ウィルスへの強い検知能力だろう。


暗号プロセッサ OpenICF3