Home
2024年
2023年
2022年
2021年
2020年

6月30日 電通大演算器をスキップ

最近、世の中、半導体の話題が多くなっています。この日記を読む新しい人も 増えたかもと思っています。半導体好きな人、嫌いな人、いろいろな人がいると思います。 この日記は、特定の人を対象としていないので、あまり読まずに反感を持ってしまう人 があると思っています。
6月24日の日記「 TPM2.0チップのビジネス」で、 電通大演算器をスキップして僕のSnakeCubeにしましょうと言ったことで、 不満に思った人はあるかもしれません。 ICチップのハードウェアを、どうすればいいのか、なるべく国民の目線で考えた ことを言っています。暗号プロセッサSnakeCubeは、巨大な整数の四則演算器です。 応用範囲は広いのですが、すぐにお金になる用途は、RSA暗号搭載のICチップです。 そしてRSA暗号は量子コンピュータの暗号解読の脅威のため鍵を長くして延命するか、 廃止になるかの運命が決まっています。 電通大演算器は基本的な性能も低く、鍵を大きくすると効率が下がるので、SnakeCubeを選択することが、 良さそうだと思っているのです。


6月27日 超軽量8bit CPU WZetaのハード検証ツール(2)

ハード検証ツールをオープンソースでの公開はしない予定ですが、WZetaを、 広く普及させたいという考えからWindowsのバイナリで配布できるようにしたいと思います。 両端の値を含めた乱数を使ったRSA暗号の演算テストのハード検証ツールを作りました。 Xilinxのverilogシミュレータxsim用のツールでしたが、 Xilinx以外のデバイスにWZetaを実装したい人もあると思いましたので フリーのverilogシミュレータicarus版を作りました。 icarus版のWindowsのバイナリは完成したので既に配布可能な状態になっています。 まだ新型WZetaをgithubで公開していないので、ハード検証ツールだけ配布しても意味のない状況ですけども。


6月26日 超軽量8bit CPU WZetaのハード検証ツール

前回の日記で、ハードウェア検証ツールを公開しない方針を言いました。 公開をしない大きな理由は、公開のために整備する時間が惜しいことなのです。 僕の検証ツールは、自作の多倍長演算ライブラリやC言語による開発なので、 技術自給率が高いものになっています。一方で出来の悪い自作ライブラリであったりもします。 自作ライブラリなので、検証ツールをWindowsのバイナリとして公開が可能です。 状況に応じて公開することはあると思います。


6月26日 超軽量8bit CPU WZeta開発状況

WZetaのverilogファイルが、ほぼ完成しverilogシミュレータで動作検証をしています。 作業報告では動作検証ツールの話が出てきますが、ハードウェアの検証ツールについては githubへ公開しない予定です。もし検証ツールに興味ある方は、 別途連絡をするという方針でいこうかと思います。
アセンブラなどのWZetaのソフトウエア開発ツールについては公開する予定です。

WZetaのプログラミングをしてみた感想になります。
WZetaはアドレッシングモードを簡素にすることでトランジスタ数を少なくできたり、 ハードウェアが簡単になったりしています。 簡素なアドレッシングモードのためにプログラミングのほうではデータの配置を考える 必要がでてきますが、WZetaのアセンブラにアライメントが可能な文法があります。 これによりデータの配置を可能にしています。

RSA 2048bitの乱数による長時間シミュレーションがパスするようになりました。 厳密には1024bitのべき乗剰余演算ですがRSA 2048bitが計算できたと言っていいと思ってます。 これができると、誰が見ても恐らく安全だとわかるTTLを使ったICカードのようなデバイスが実現可能 になったように思います。「誰が見ても恐らく安全だとわかる」の付加価値によって、数万円でも、 売れるようにならないだろうか。 ICカードが信用できず、オンライン化ができなかった用途での利用が期待できるかも。 暗号化機能のない署名や認証のみのICカードなら規制されることもないと思われます。


6月25日 超軽量8bit CPU WZeta作業報告

verilogシミュレータで1024bitのべき乗剰余演算の乱数テストが動くようになりました。
フリーのverilogシミュレータicarusでは遅すぎるのでXilinxのxsimで動くものを作りました。 xsimでも1024bitのべき乗剰余演算のシミュレーションを1回すると7.5時間。 遅いパソコンですると25時間かかる。 xsimが並列に動作するようにプログラムを作ったが、並列動作させると、何故か演算結果を間違う。 原因を調べると同時にxsimを複数起動すると、xsimがごちゃ混ぜに動くために誤動作していた。 30秒間隔でxsimを起動するように修正すると、正しく動作するようになった。 xsimの複数起動が仕様外なのか、わからないけど、いいことにしよう。


6月24日 TPM2.0チップのビジネス

マストドンのTL上に外付けTPM2.0 3000円というのがあった。 TPMはパソコンのマザーボードに付けてセキュリティを上げる半導体チップ。 それとWindows11でTPM2.0が必須になること。AMDのCPUは内蔵というようなツィートだった。
パソコンのマザーボードによってはTPMチップは、ついていないので、 Windows11が登場する当たりまでに、外付けTPM2.0を開発、販売できれば、儲かるのかな。
TPM2.0の仕様は読んでないけど超軽量 8bit CPU WZetaと暗号プロセッサSnakeCubeを組み合わせれば、 僕のIPだけでTPM2.0ができるのかな。少なくとも暗号演算の仕様は満たせるかもしれない。
自分が信用できるメーカのTPM2.0チップを選択できる利点があるのかも。 電通大の公開鍵暗号演算器をスキップしてSnakeCubeにすれば全体の 開発コストを下げることができるのかな。
今のところ、まだ考えてないけど。


6月23日 従来研究との違いを一言で

暗号プロセッサSnakeCube と従来研究との違いを一言でいうならパイプライン化の方向が違うのです。 従来研究は大きな数字の下の桁から上の桁向かう方向でパイプライン化をしています。 SnakeCubeは時間軸方向にパイプライン化しています。 これを可能にしたのは最下位の桁からのブロッドキャストを、 うまく中継する方法を発明したからなのです。


6月23日 TSMCは次世代ICチップに役立つか?

クレジットカードなどに搭載されるICチップはRSA暗号が多いようです。 ETCなど、一部の用途では楕円暗号も使われています。 RSA暗号は安全性の根拠が大きい数の素因数分解問題が困難であることです。 一方、楕円暗号は楕円曲線上の離散対数問題の困難性を安全性の根拠としており、 曲線ごとに異なるという理解です。このためRSA暗号が好まれる場合が多いのかもしれません。
僕は15年前に株式会社iCanalを勝手に立ち上げ、 ルネサス エレクトロニクスのICチップを搭載したICカードを販売していました。 世界の予定は2030年にはRSA 2048bitは廃止され4096bitなどに切り替わっていきます。 最新の情報ではありませんが、中国人剰余定理を使わずに、 RSA 4096bitを演算できるものはありませんでした。 もし現在もそうであればSnakeCubeは次世代ICチップとして非常に有望です。 従来研究で最大と思われる「電通大と欧州の共同研究」の方式より 演算器単体でも3~4倍の性能がでる見込み、かつ、鍵がさらに大きくなっても、 周波数(効率)が低下しない優れた特長があるからです。 中国人剰余定理は理論的な計算量を4分の一にしますが、SnakeCubeの方式性能 によっても、同じことが実現できるのです。 つまりSnakeCubeによって中国人剰余定理がなくてもRSA暗号を必要時間内に 演算可能になる。米中半導体戦争にあってはSnakeCubeのICチップは米国に好まれる ように思うのです。SnakeCubeはTSMCの有効なアプリとなり得えます。

話は変わりますが、15年前ごろには、日本では放送波切替によって非常に多くの 地デジの機器が売れ、多くの人が儲かる中、地デジ機器で使われているmulti2の高速化の 特許を取得した僕は、リストラされ、普通の人未満の人生になった。 1流の大学、1流の企業に入った。あとは1流の嫁のために無駄なことは一切せずに頑張った。 甘い汁を一滴もすすっていない。会社の事業に大きく貢献 (ICF3)したにもかかわらず、 僕はリストラされ普通の人未満の人生になった。 multi2は職務発明でしたが、今回の暗号プロセッサSnakeCubeは僕1人で利権を持っているので、 multi2のときのようにならないように考えて欲しいものです。

参考
暗号プロセッサ SnakeCube
https://openicf3.idletime.tokyo/snakecube/

1月22日の日記、 発明が従来研究の性能10倍の根拠

「電通大と欧州の共同研究」
「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


6月22日 超軽量8bit CPU WZeta作業報告

verilogシミュレータでRSA 2048bitの演算が正しい答えを出力しました。 厳密には1024bitのべき乗剰余演算ですがRSA 2048bitが計算できたと言っていいと思ってます。 8bit加算器1個で演算するため1回のべき乗剰余演算のシミュレーションにかかる時間が長いのです。
トランジスタ数を少なくすることに力を入れたWZetaはTTLで作ることが比較的容易なので、 8bitのパソコンを作ることも可能だと思われます。TTLで実装したWZetaでICカードを作れば、 TTLでWZetaを作った人が秘密鍵の安全性を、かなり保証できるところがいいと思われます。
需要があれば自作ICカード向けの機能縮小版を考えます。今のところRSA 2048bitの性能は、 通常版と同じになる予定。


6月20日 台湾企業VIAのx86互換CPU

VIAのCPUは独自の暗号ハードウエアを搭載している。 このハードウェアを使ってMicrosoftのCryptoAPIに準拠したミドルウェアを開発したことがあった。 VIA製のMicrosoft準拠のCryptoAPIミドルウェアも、あったのですが、完全互換ではなくて、 困ったので、自作したのです。独自のハードを使った自作ミドルウェアの配布について、 VIAに問い合わせたほうが、いいと思ったので、電話で問い合わせると日本語のできる エンジニアの人が出てきたのです。 僕が「紙一枚書けばいいの?」と聞くと、そんな日本語でも、理解できたみたいで、 何もいらないから、配っていいという返事がきた。
台湾って日本語ができる人、多いのかな。


6月20日 暗号プロセッサはTSMCの良いアプリです

高性能CPUでも、できないRSA暗号10万bitのSSLサーバ証明書、実現の可能性が出てきます。 量子コンピュータによる解読の問題をRSA暗号の延命で凌ぐという選択が可能になります。 延命でいいことにすれば、世界各国の税金を抑えることができるような気がします。 産業スパイの責任で暗号プロセッサSnakeCube の開発が遅れSSLアクセラレータとして販売できた期間が終わるころに完成予定になりそう。 この問題を産業スパイに向けて産業スパイを追い出せば、今後は、いろいろ改善されるかもしれない。
6月12日の日記「半導体お金かかるの?」にも書きましたが SnakeCubeはTSMCがなくても、XilinxのFPGAで実現可能なのですが、誘致されたから TSMCを活用したいと考えるころになって産業スパイを追い出しても、間に合わない。
FPGAの設計データをASICに移行すれば、いいのですが、ASICはFPGAのように需要に合わせて 再構成できないため、追加設計に、時間がかかるのです。 一般的なFPGAからASICへの移行ではないということを頭に入れてもらえれば。

追加機能の名前が欲しいと言われたので、 プラナリア(英: Planarian Flatworm)からプラナリア機能(Planarian Function)にします。


6月20日 超軽量8bit CPU WZeta作業報告

verilogシミュレータでハッシュ関数SHA-1の演算が正しい答えを出力しました。 ハードマクロ命令のverilog実装が動きました。 SHA-1の計算ではハードマクロ命令を使った32bit整数型、仮想コプロを使っています。 WZetaは8bit CPUなのですが、この仮想コプロを使えば、逆ポーランド電卓を操作する感覚で、 SHA-1などの演算が可能になります。従来CPUにはない、プログラミングが可能になります。


6月17日 ガロア体演算の乗算用RISC-V命令セット

msyksphinzさんのFPGA開発日記の 「CARRV 2021の発表論文概観 (1)」を読んでみました。
ガロア体演算の乗算用RISC-V命令セットの紹介があったのです。 ガロア体演算は公開鍵暗号の高速化でも使われるので、それに関する発表があったことを言っているのかもしれない。

FPGA日記の紹介文が

"ガロア体演算の乗算用RISC-V命令セット"なんじゃそりゃ!?

だったので、公開鍵暗号向けではなくて、AES暗号向けのガロア体のことなんだろうなと、思って読むと、 やっぱりAES暗号向けのようです。つまりSnakeCubeに影響しないと思われます。 僕も詳しく読んでないですが^^;;;
僕の暗号プロセッサSnakeCubeが、この研究で不要になるという、誤ったうわさ、を拡散する目的で、 このFPGA日記の記事が、使われそうなので、この日記に書くことにしました。


6月16日 超軽量8bit CPU WZeta作業報告

verilogによるシミュレータで256bit AES暗号のプログラムが正しい計算結果を出力しました。 論理ゲートレベルのverilogファイルなので、実際にハードにするためのファイルです。 完成が近づいてきました。


6月14日 超軽量8bit CPU WZeta作業報告

新型のWZetaで256bitのAES暗号のプログラムを作ってみました。 3月にelchikaの審査を通った時点での 旧型のWZetaと性能を比較します。C言語シミュレータによる比較なのでクロックが異なるはずなのですが、 おおよそは、同じになると思われるため、同じクロックという前提を起きます。まだ精度がありません。 暗号化の性能は65%に下がりました。 新型はノイマン型にしたため、メモリの性能が50%に落ちているためと思われます。 XilinxのFPGAに実装した場合、2KBのBRAM 2個だったのが1個に減りました。


6月8日 超軽量8bit CPU WZeta、近日中に公開予定

YoTuber黒川さんの「つばさの党」で、比較的、 言論の自由がある日記システムが10日前に公開され、 日記に時間を取られていますが、超軽量8bit CPU WZetaは、公開まで行われる予定です。 WZetaは税金を使わないという方針に変更はありません。
この8bit CPUのメリットについては、 この4月19日の日記が、良く書けています。 https://note.idletime.be/diary/202104.html#c0419


6月7日 超軽量8bit CPU WZeta作業報告

仮想マシンRed Comet(赤い彗星)は全体の仕組みと2、3の命令の実装をしました。 どのくらいの性能になるのか見当がついたので中断します。 WZetaのverilogを作成する作業を再会。 verilogのシミュレータicarusやXilinxのxsimで8bit加算をするプログラムが動作するようになりました。 RSA暗号やSHA-1のプログラムが動くことを確認できてからトランジスタ数が、 どのくらいなのか、調べてみます。


6月6日 SnakeCubeが日本最大のロジック半導体の設計技術

デジタル庁、発足に向けて日本のデジタル産業が活発化しているようです。 ネット上のエンジニアも、その動向をウォッチしているみたいです。
国内のRISC-V関係で有名なFPGA日記のmsyksphinzさんの日記を読んでみました。
経産省の「半導体・デジタル産業戦略」の資料を読んでみた
政策として「デジタル投資の加速と先端ロジック半導体の設計・開発強化」があるのだそうです。 僕の持つ暗号プロセッサ、SnakeCubeが日本最大のロジック半導体の設計技術なので、 それをどうするのか、考えたほうがいいのかもしれない。


6月5日 無料のICカードのエミュレーションソフト

SNS上でWindowsのカーネルモードの署名方法が変更になった話があったようです。 USBメモリをICカードにエミュレーションするmyuToken が心配になったので調べてみました。 市販の全てのUSBメモリに対応するカーネルモードのコード署名をすることは、調べてませんが、 不可能だと思っているので、かなり前に、カーネルモードの署名をあきらめて署名無のドライバを インストールする手順を追加する方式に変更していました。 USBメモリではなくてファイルをICカードにする カーネルモードドライバもあります。 こちらはカーネルモードのコード署名がついているのでインストールが簡単で、 ICカードアプリの開発に便利でした。
Microsoftのサイトに書かれてる内容を読むと、既に署名済みでタイムスタンプのあるドライバは、 クロス証明書の期限が切れても、問題ないとのことで、恐らく、何の問題もなく、 今後も使えるのではないかと思います。
ソフトウェア発行元証明書、商用リリース証明書、および商用テスト証明書の廃止


6月4日 組込み開発は低スペックなCPUで要求を満たすこと

言い換えると、超軽量8bit CPUで要求を満たせるか?から開発がスタートすることになるように思います。 WZetaに期待してもらえそうな気がします。
余談ですが、30年くらい前、僕はSHARPのポケコン、PC-1251を持っていました。 CPUは8bitのSC61860です。その廉価版であるPC-1245も8bitのSC61860です。 大学受験などで目を放しているすきに後継機のPC-1246が出ていたようです。 なんと4bit CPU(SC61720)にバージョンアップして性能アップとか思わず爆笑してしまいました。 カタログにBASIC言語でPC-1245の3.8倍の性能とかあったのですが、 ポケットコンピュータのCPUでも4bitで足りる。


6月3日 8bit CPU WZeta命令セットβ版更新

大きな変更はありません。いくつかの命令を追加、削除しています。 興味のある人に最新情報を、と思っただけです。Bレジスタを使った相対分岐命令が便利になったかも。
8bit CPU WZeta公式サイト


6月3日 国家試験の仮想マシンCOMET-IIの実装

WZetaのハードマクロ命令を使ったCOMET-IIの実装、RED COMET(赤い彗星)ですが2命令語のLD、STの実装が完了しました。 どちらもWZetaの命令数で25命令でした。(オプションのGRx有りケースでは34命令) ハードマクロ命令を使わずに普通にCOMET-IIをエミュレーションしたほうが省メモリで高速かもしれない。 しかしハードマクロ命令による実装のほうがメモリの大きいCOMET-IIを作れます。 厳密なことを言えばハーバード型になってしまうのですが、試験に伝説のテクニック自己書き換えは出ないという予想です。 COMET-IIの仕様ではメモリは128KB(65536語)ですが、 ハードマクロを使わないエミュレーションでは48KB程度になると思われます。 ハードマクロを使った場合、プログラム96KB、データ48KB、合計 144KB。 仕様の128KBに近く、この容量でOSやコンパイラを考えていた場合、 ハードマクロによる仮想マシン機能は役立つということかも。
小型のFPGAボードにWZetaとCOMET-IIの仮想マシン、ソフトをいれればCOMET実機として 実験などで使える教材が、すぐにできてしまうので、儲けられる可能性はあるように思います。
COMET-IIを直接、FPGAに実装するような類似品も出るかもしれませんが、COMETを勉強するような人は、 WZetaが立ち上がることによって、仕事が増えることを望むはずなので、WZetaの仮想マシンを使った COMET-IIボードを選択すると思われます。いや、日本の将来を考えるなら、そうすべきなのかもしれない。


6月2日 国家試験の仮想マシンCOMET-II

8bit CPU WZetaのハードマクロ命令を使って仮想マシンは作れます。 このときハードマクロ命令を前提とした仮想マシンとすれば効率のいい仮想マシンになる。 既存の仮想マシンを実装しようとしても、基本的に実装できない。 基本情報技術者試験の仮想マシンCOMET-IIは、実装はできるものの、あまり効率は期待できない。 そこで実際にCOMET-IIの仮想マシンを作って効率を上げてみることに。
COMET-IIの実装の名前をRED COMET(赤い彗星)に仮決めしました。 ガンダムに出てくるシャアの異名でもあるけど、単なる偶然ですと言い切れるかも。 やってみると思っていたより効率は悪くなく実用になるかもしれない。 WZetaのアセンブラでサンプルが2,3通るくらいまでしか、実装しないが、参考になると思う。
最終的にはCASL2に準拠したアセンブラでバイナリが生成できるところまで作って WZetaの仮想マシンによるFPGA実装のCOMET実機で動作すれば誰か、儲かるだろうか?
約30年前、早稲田大学の電気工学科実験ではCPUにZ80を使った水位制御実験があった。 理系授業の実験でCOMET実機を使えば、国家試験の基本情報技術者試験で合格しやすくなる。
基本情報技術者試験の合格証が商品である産業が生まれるのか。 WZetaは税金プロジェクト不可なので、学校関係ではなくて、市販の教材だと問題がないのかも。


6月1日 8bit CPU、WZetaをCOMET完全互換なCPUにする

2021年6月1日 5:00PM、IPAのサイトでCOMET-IIの仕様が見つかったので全面改訂
国家試験の基本情報技術者試験で出題される仮想計算機 COMET-IIと完全互換なCPUをWZetaのハードマクロ命令で作れそうです。 保証はできませんが。(ICF3-Zの仮想マシン機能でも作れそう)
仮想計算機COMET-IIの仕様では機械語のフォーマットを規定していないようです。 参考値としてオペコードの値はありますが、COMETの実装系ごとに決められるようです。 WZetaのハードマクロ命令の形式の範囲内にCOMET-IIの命令を入れることが可能です。 2命令語は2個のハードマクロ命令で実装されるのですが、 後半のハードマクロ命令のオペコードをGRの番号として解釈します。 COMET-IIの仕様によればGRの番号にSPなどのレジスタが入ることはなくGR0~7で良いため、 COMET-IIに完全準拠することができるように思われます。
前述のように処理系毎に機械語フォーマットが異なるため他で開発された COMET-IIシミュレータでは動きません。 機械語フォーマットを単純に変換することで、相互乗り入れ可能な世界は、考えられそうです。

WZetaのアセンブラの文法はCASL2に似ていますが、同じではありません。 当面、僕のほうではできませんが、CASL2に完全に準拠したアセンブラを開発すれば、 COMET-IIの実機(当面はFPGA)のIoTガジェットが作れるかもしれません。

誰か作れば儲けられるかもしれない。失敗しても僕の責任にしないでください。 これも、やっぱり税金プロジェクト不可ということで。
参考までに、ICF3-ZでCOMET-II互換にするためにはICF3-Zの仮想マシンでは奇数アドレスに 分岐できないのでアセンブラで調整用のNOP命令を追加する必要があるかも。
あまり高速なCPUエミュレーションにはならないかもしれないが、 プログラムコードを大容量なROMに置けるメリットを考えるなら、COMETの実機として使えるかも。 COMETエミュレータのソフトを入れなければWZetaの実機として使えるみたいな。



暗号プロセッサ OpenICF3