Home
2024年
2023年
2022年
2021年
2020年

1月30日 8bit CPU WZetaの補足

CPU初心者向けの補足。半導体業界が再びARMの件で騒がしくなっているようです。 既に、昨年の12月22日の日記にARMの話を書いたので、 気にしていなかったのですが、CPUについて詳しくない人だと、 僕への視線が厳しくなっていたりしないかと、思ったので、補足します。
まずは12月22日の日記を読んでください。

補足の1つ目は、アドレスを32bitに拡張する拡張命令について。 32bitのアドレスを出力できるような機能を追加しただけで8bit CPUのままです。 過去の8bit CPUは、バンク切り替えによる方法で、より多くのメモリを扱えるようにしています。 WZetaのアドレス拡張は、リニアなアドレス空間を提供しますが、非常に遅い点は、覚えておく必要があります。

つまりRISC-VはARMと競合しますが、WZetaはRISC-Vほど競合しません。

補足の2つ目は、今月の23日の日記のパリティチェック
従来のCPUでは、パリティ有りのメモリでなければ、できない信頼性を、 WZetaは、パリティ無のメモリで可能にします。 15bitに対して1bitのパリティにすることがお薦めで、WZetaの目玉機能かもしれません。 パリティ有りメモリでは8bitに対して1bitのパリティなのでWZetaより、信頼性が高いのですが、 パリティ有りメモリに近い信頼性が、得られるように思っています。 この機能は、あらかじめ命令コードに空いているビットを用意する必要があり、 8bitクラスのCPUでは、それが難しいので、WZeta独自のメリットになるように思っています。 PICマイコンは命令コードが14bitのものがあるので、パリティ無のメモリで、パリティ有りの 信頼性を出せるような気がしますが、命令セットが、だいぶ貧弱なのでWZetaが負ける用途は 少ないと思われます。

WZetaもPICと同じように14bitの命令コードにすることが可能ですが、ハードマクロ命令が 使えなくなるため、より多くのメモリが必要になるので、メモリの費用が高くなる問題があります。 性能が劣化することはないので、用途によっては、14bitの命令コードもあるかもしれません。

ただし、まだ公式コアで実装する予定はありません。 誰かが互換コアを作って、やってしまう可能性はあるかもしれません。


1月27日 暗号半導体チップにおける『ナオキの法則』

ブログに投稿しました。
暗号半導体チップにおける『ナオキの法則』

以下は冒頭の文章。
半導体業界ではムーアの法則が有名ですが、ムーアの法則は集積回路上のトランジスタ数は「2年ごとに倍になる」という指標のような経験則です。似たような法則として平山 直紀(Naoki Hirayama)が2018年に発明したSnakeCubeから、後世の人に役立つ指標になるナオキの法則(Naoki's law)を提案します。


1月25日 WZeta仕様修正(案)

WZetaのフォーラムにも 投稿しています。

(1) GETSTAT(0151h) 必須
修正前 A = { 0, 0, 0, 0, 0, 0, 0, AE }
修正後 A = { EF, 0, 0, 0, 0, 0, 0, AE }
EF : 割込み許可フラグ 0なら割込み禁止、1なら割込み可能
EFビットがなくても、なんとかなると考えていたのですが、EFビットを追加


(2) PMEMACC(01C8h) オプション 2022年1月25日変更
まだ検討中。メモリモデルをプログラムメモリとデータメモリに分離するモデルを選択するとプログラムからプログラムメモリをリード・ライトできないので、次の1命令のみリード・ライトできるようにする命令。ユーザーモードでは書込みが抑止されます。 割込み禁止状態で実行しない場合、最悪プログラムメモリが壊れます。
この命令は常時稼働するIoTなどのデバイスで宇宙線によるメモリのソフトエラーを修復するために必要となりました。
この命令でシステムの信頼性が向上しそうなら、このオプションが有効になっているマイコンチップの価格を、少し高くしても、いいのかも。


1月24日 8bit CPU WZetaのソフト開発はお早めに

WZetaのリリースは、まだですが、 ソフト開発において、美味しい成果となるところを、産業スパイ関係の人に持っていかれることは、 僕にとって面白いことではないし、結局、WZetaが発展しなくなるように思います。

WZetaの命令セットアーキテクチャは、この規模のCPUにしては、圧倒的に優れています。

是非、オープンソースのWZetaに参加してください。 フォーラムも昨年からですが、オープンさせて待っています。
WZetaForum
産業スパイに邪魔をさせないような社会しなければ、将来を切り開けないと思います。
なお、WZetaの仕様および、公式コアの権利は、僕1人だけという方針です。 制限の緩いオープンソースのライセンス予定なので互換コアはOKなのですが、 追加命令の仕様がバラバラになっていくと、コンパイラ・アセンブラなどのエコシステムが、 問題になっていくので、そこは、フォーラムで調整していくことがいいかなと思っています。

WZetaは最大128KB(192KB)のメモリで動作するアプリケーションにターゲットを絞っています。 この範囲での性能は良好ですが、アドレス拡張仕様による拡張メモリの読み書きは非常に遅いため、 128KB(192KB)以上のメモリを扱う場合は、トランジスタ数が少ないことが有利なアプリケーションでの 利用になると思われます。


1月24日 8bit CPU WZetaの進捗状況

産業スパイの1人がメモリウェイト回路のテストを日記に2度、書いているという指摘。 1度作ったメモリウェイト回路をCPUコアに接続して、微調整をして、 再度分離したメモリウェイト回路をテストしています。 実際のPREFIX命令の信号で検証しているのです。

アドレス拡張の仕様を少し変更します。 拡張RAMのリードとライトで時間が異なる場合に対応します。


1月23日 WZetaのメモリのパリティチェック

まだパリティチェックの実装を予定しません。WZetaの命令コードの最上位ビットは空いています。 モードによって、最上位ビットをパリティにするとパリティ無の安価なメモリで信頼性を高める機能ができます。 この機能は命令セットの命令コードに空いているビットを用意していないと不可能なので、 既存のCPUの命令セットに追加できません。

WZetaが必要とされる機能になると思います。

パリティはモードによってオペコード7bitのパリティにするか、 オペランド含めた15bitのパリティにするか選択できる実装が考えられます。 また、ハードマクロ命令を無効にするとハードマクロ命令のビットをパリティに割り当てることが可能なので、 オペコード7bit、オペランド8bitのパリティチェックが可能となる実装ができるでしょう。

パリティチェックをしないモードの他、デバッグモードも考えています。 デバッグモードでは最上位ビットをブレークポイントにすることができて、 出力ポートにレジスタの値をリアルタイムに出力させることができる実装が可能。 組込み向けではブレークポイントでブレークせずにリアルタイムでデータを取得できる機能とかあると、 便利かなぁと思っていたりします。


1月23日 8bit CPU WZetaの進捗状況

作業再開されたが、まだ妨害で、わずかしか進捗していない。 遅いRAMやROMを接続した場合のメモリウェイトの回路を単体でテストしています。 まだ全部テストしていませんが、正しく動作している模様。


1月20日 大学受験日に2度、下剤を盛られた

駄文に近いので一般の人は読む必要なし。
1月17日の日記、僕の生まれ2022年版のオマケの続き。

東京と大阪の教育方針が真逆だった話
小学校4年のときに北海道札幌市の小学校から東京の小学校に転校した。 科学クラブに入り、生徒の自主性を重んじる顧問の先生の配慮によって、 理科室にある、ほとんどの薬品を自由にできる鍵の場所を教えてもらった。 そこではアセトンを試験管に入れてアルコール・ランプで熱して炎を出す遊びが、 流行っていた。
ノーベル賞で有名なノーベルのダイナマイトの発明は、実は偶然の発見。 これを本で読んで知っていた僕は、薬品をデタラメに混合してアルコールランプで 熱してみるという実験をした。小学生ながら、何か、すごい発明ができるのではないかと、 大志を抱いていた。
算数の授業では、先生に、なんかの計算式の説明をノートに書くように言われて、 ノートに書いていると、先生が僕のノートを取り上げて、褒めてくれた。 他の人は皆、教科書を書き写すのみだったのが、僕の独創的な説明がすばらしいと。

小学6年生になるときに大阪の小学校に転校。 東京弁を、しゃべる僕はクラスで一番の人になるには不利だったのかも。 担任の先生は、毎日、テーマを与えてレポートを提出させることをしていた。 宿題が多い先生ということで評価が高い先生だった。 僕の独創的なレポートを提出すると「努力賞」と評価され返ってきた。 隣の人は「合格」という評価だったから、満足げにしていると「努力賞」は 「合格」よりも下の評価なのだと、隣の人に教えられた。

僕の独創性が否定された感じ。参考書の丸写しのほうが評価がいいのだ。 こんな書き取りしかない授業で、大阪府で一番の北野高校に入る人間を決めている。

ただ東大に合格するためには、まず詰め込みをすることが、最良では、あると思っている。

しかし、ここから僕の人生の敗戦処理が始まったのかもしれない。 中学校の成績を北野高校に入る人に奪われ、自宅近くの公立高校に入ることになった。

駿台予備校の最上位クラスに入った話
成績を奪われ地元の公立高校に入ったので、学年トップを取ることもある 優等生になっていた。 高校2年になるときに駿台予備校で、最上位クラスが設置された。 多分、東大理3とかを目指す人とかも、いるクラスだ。 比較的、少人数のクラスだったが、何故か、この「特類」に受かったので、 数学だけ、高校3年の卒業まで受講した。

講義の内容は、東大で出題される最も難しい問題にターゲットが絞られていたと思う。 なぜなら、予備校業界でトップの駿台の最上位クラスが、東大で出題される最も難しい 問題をあきらめると、その問題を解ける人は、あまりいないことになるから。

東大で出題される問題を多数やってみて思うのは、問題の解法を覚えていないと 受験では役に立たない。問題の解法を考える能力は、受験では、あまり測れていない。 ありきたりな結論だけど、大学受験で数学の才能を十分には測れていない。

大学受験日に2度、下剤を盛られた話
高校では3年のときに学年トップの成績を取ったこともあったが、とりあえず、 現役では早大、東工大、阪大を受験することにした。
受験当時は、大阪府に住んでいたので東京の大学を受験するためには、 埼玉県狭山市にある、お祖母ちゃんの家に泊まって試験会場に向かう必要があった。 この、お祖母ちゃんが、何も知らずに近所の人間に下剤入りの食材を、 つかまされていたのではという疑いを持っている。 1度目、早稲田大学の受験のときは、試験終了まで、耐えることに成功した。 明らかに下剤入りだと、バレルので、1度目は量が少なかったのかもしれない。
2度目、東工大の受験のときは、試験中に下痢になってトイレに行った。 トイレにカメラが仕込んであれば、下痢の状況を撮影できたと思う。
参考まで阪大は合格したけど、親族が埼玉県狭山市近辺に多いので早大に入学することに。

要するに僕が、東工大、落ちたのは試験の問題ではないということ。 工作員によって下剤を盛られていた可能性が高い。
産業スパイが、いろいろ入れ知恵をしているように思っている人が、 まだいると思うのだけど、そうではなくて、 僕が数学が、できるのは、多分、日本道路公団が組織的に数学の才能のある赤ん坊を引き 取ったからだと思う。


1月18日 仕事を2つに割ると良い製品ができない

頭痛が続けば、暗号プロセッサSnakeCube の開発作業を1人で、やりきれなくなることを期待する人がいるかもしれない。 仕事を2つに割ると、良い製品ができなくなるから、 頭痛を止めることを考えて欲しいという説明。
RSA 4096bitを1024bitの演算器のICF3(1999年)に実装したときの話。 このコードはOpenICF3の公式サイトに掲載しています。
https://openicf3.idletime.tokyo/soft/impstatus.html
ICF3は1024bitレジスタを16本持っていますがRSA 4096bitでは 1つの値でレジスタ4本を使うことになるため実装が難しい。

この仕事を仕様屋と実装屋に分けると、実装屋がRSA 4096bitは、 できませんという答えが、返ってきて終わる。

1人でやるとRSA 4096bitの演算を3回に分けても仕様上、 困らないということに気づき、RSA 4096bitが演算できる製品となる。

上記のように、 僕の脳破壊をすると、いい製品ができなくなるので、産業スパイに転職していただいた方が良いと思われます。


1月17日 僕の生まれ2022年版

僕の生まれについて、親に聞いたところで、権力者によって 予め予定されていた都合のいい作り話をされるだけなので、 一度も聞いたことはない。
だから僕の想像になるのだけど、生まれつきある 左手首の傷と、これまでの状況から推測した2022年版。

---------
ある富豪の本妻の長男として生まれる。そして若い妾の子供に財産を相続させたいと 思う人のほうが多かった。そう思う何者かによって1歳か2歳のときに左手首を切られ 暗殺された。傷の大きさから推測すると出血多量で即死だったと思うから、 医者に見守られながら死亡を確認。法律上、財産権が妾に移ったことを東大法学部卒が確認。 安易な考えの暗殺なため、もめ事になった場合に備え、蘇生された。また東大に合格できそうな遺伝子であることも蘇生された一因か。 そして日本道路公団(分割民営化される前のNEXCO)の東大卒に託された。 公団の東大卒は日本大学の卒業生で出世希望者に蘇生した赤ん坊を実子として育てるように命令した。
---------


このようにして東大卒が儲けたのではないだろうかと、思っている。

当時の日本道路公団は、高速道路の路線を決定する時に、 東大卒の多数決によって決まるルールだったのかもしれない? このため僕が子供の頃は、東大に入ることが期待されていたような気がする。 僕の才能が大学受験向きな才能でなかったのか、 周囲が僕の子供の頃に、東大合否判定を誤ったという気がしています。

高校生だったころ、わざわざ僕に「物価の優等生だね」と言いに来た人がいた。 物価の優等生といえば鶏の卵のことだけど、ここでは、物理と化学の成績がいい人、 物化の優等生ということ。つまり数学が、今一つという意味でもある。 大人になってわかるのだが、数学の成績で、人を判断する傾向にある。 子供の頃、東大合格判定を貰えなかった僕は、成績を削られていると思う。 そのことを「物価の優等生だね」は、伝えているのかもしれない。 ちなみに大学受験に無関係な地学の成績はダントツのトップを取ることもあった。 (2位に20点以上差をつけた)
僕としては、数学も、物理も、化学も、地学も同じように勉強している。 成績に差がでる理由は、見つからない。

このため、最近の僕は、数学の成績を削られていたと思っている。

僕の数学の才能を、あれこれ言う人は、多い。誰の遺伝子なのか、 調べるのも、方法の一つかもしれない。

おまけ
僕は小学校6年になるときに東京の小学校から、大阪の小学校に転校した。 小学6年から中学1年にかけて、大阪府で一番の北野高校に誰を入れるのか、決めているはず。 この決定で、北野に入ることが決まった人間が、周囲の成績を奪うと、中学の先生も説明している。
つまり、いきなり東京から来た僕にとって不利な状況だったという話。

弟が中学1年のときは学級代表になって、時の総理大臣、中曾根康弘氏の公式訪問の 対応をしたみたい。テレビ放送されたのをビデオに取ってある。 狭山市に住む、僕の婆さんが、近所の人に、このビデオを見せまくっていたのだが、 僕も見せられていた1人だ。
つまり、なんか権力が絡んでいるっぽい。

頭のいい人材を、東大に入れるより、奴隷にして、酷使したほうが、お得だということ。 頭のいい人材を妨害して、東大受験を断念させると、関東から出たくない場合、 東工大受験になるのだが、合格すると東工大で優等生となってしまうため、これも困ることになって、東工大も落とされる。
早稲田にいると、そうじゃないかと思われる人材を見かける。 以前、日記に書いたけど、東工大落ちるくらいのほうが、早稲田で成績優秀というのは、こういうことかもしれない。 僕の同期で、普段は静かな優等生なんだけど「東工大を養老院にしてやる」と、落とされた悔しさを語る人がいた。 僕の受験の年の東工大の試験問題が偏屈しているという噂が、早稲田の同期の間で流れている。
国立と私立の落差が大きいので、こういったことは良く起きているのかもしれない。

言いたかったことは、東大卒が儲けているだろうということと、 子供のころから、東大医学部が僕を観測、制御している疑いを持っている。 参考までに2005年に日立を退職して、さくらインターネットのレンタルサーバを借りて ウェブサイトを運営していたのだけど、東大理3からのアクセスが多かった。 最初は、僕の仮想ICカードの技術を東大が注目しているのかと思ったのだけど、 なぜ理3なんだろうと、次第に思うようになっていった。


1月16日 (株)iCanalのSSL OV証明書の更新完了

(株)iCanalは僕が社長の会社です。 サイトをブラウザで証明書を確認するとOV証明書なので実在性が確認できます。

暗号プロセッサSnakeCubeの事業化メドを立たせることを考えていますが、 現在は8bit CPUのオープンソース WZetaのリリースに向けて作業を進めています。

WZetaと暗号プロセッサSnakeCubeをSoCでワンチップ化したものは、 銀行のトークンや暗号資産のハードウォレットとして、 競合他社にマネができない安全性を提供できるようになるでしょう。

余談ですが「競合他社にマネができない」という性質が、いかに役に立つのか、 実感しています。


1月15日 8bit CPU WZetaはJITができるよ

ツイッターのTL上にRISC-Vのコード圧縮のための拡張命令の議論があった。
https://twitter.com/a4lg/status/1481977065721462784
サブルーチンで使うと、かなりプログラムメモリの節約になる拡張命令のようです。 WZetaでは、ユーザーがこういった命令を自由に定義することでコード圧縮が可能です。

WZetaで、こういった命令を実験して、その結果をRISC-Vに繁栄させるというパスを ショートカットされた気分だけど、WZetaが小規模な開発で実験できるということを 日記に書くきっかけにはなりました。

こういったコード圧縮命令の拡張によりマイコンの製造原価を下げることができれば、 誰かが得をできる。そして地球環境にいいことを言えるので宣伝効果もあるかもしれない。

マイコンのCPUはハーバードアーキテクチャが多い。 そしてハーバードアーキテクチャではJITコンパイルはできないはず。 WZetaは最大メモリ192KBという制約があるもののJITコンパイルが可能です。 現在、作業中のWZeta RedCoderコアはアドレス拡張でアドレスを24bit/32bitに拡張できます。 リニアなアドレスでプログラミングがしやすく、JITコンパイルも可能ですが、 トランジスタ数を少なくすることに重点を置いた拡張なので、非常に遅いという難点はあります。


1月12日 半導体ハイテクICカードの最先端技術とは

最先端の半導体というと多くの場合、5nmとか3nmとかいう数字で示されるデバイスの プロセスのことを言う場合が多い。しかしCPUや演算器などのデジタル回路(論理回路)にも 最先端の技術はある。

結論を先に言います。
1月9日の日記、「日本にしか作れないハイテクICカードを世界中に」の ハイテクICカードで最先端と言っているのは、デバイスのプロセスのことではなく 暗号プロセッサSnakeCubeのデジタル回路のことです。 もちろん最先端技術のプロセスでSnakeCubeを作れば低消費電力で高性能な製品ができますが、 必ずしも最先端技術のプロセスは必要ありません。

またSnakeCubeは、DNPのマルチチップ搭載基板があれば、数世代前のプロセスを使って高い性能が出せるように思います。 複数チップを使えば当たり前と思うかもしれませんが、RSA暗号で使われる、べき乗剰余演算器を複数チップに分割すると、 チップ間の遅延がネックになって、あまり性能がでないというのが一般的なのです。 これを解決できているものはSnakeCube以外では見たことがない。SnakeCubeの画期的な発明なのです。
DNP、次世代半導体パッケージ向けインターポーザを開発

詳しくは、当サイトのトップページに「文系でもわかる暗号プロセッサSnakeCubeの説明」があります。 まだ読まれていない方は、読んでみてください。


1月12日 (株)iCanalのSSL OV証明書を発注

駄文なので興味のない人は読み飛ばしてください。長い前置きから始めます。

2002年ごろ政府認証基盤(GPKI)のため総務省と打ち合わせをする機会があった。 僕が大型コンピュータの事業部から転勤した直後のことです。 打ち合わせの冒頭で総務省の課長からお叱りがあった。 当時は国土交通省や経済産業省、警視庁など各省庁がバラバラに電子申請システムを構築していた。 このためメーカは各省庁のお偉いさんに同じ説明をしなければ、ならなかった。 総務省の課長は、他の省庁から連絡されて情報を得ていたことを、怒っていた。 このとき、僕は気づいていなかったが、日立製作所の中では、僕が一番偉い立場にあった。 つまり僕が怒られていたのだ。

時間もないので今日のところは、ここまでにしておきます。

要するに僕はSSL証明書に詳しい。参考までに国土交通省が電子申請システムの開発が早かったようです。 経済産業省は、汎用的な電子申請システム、ITEM2000を開発していた。 警視庁は、悪名高いJavaのコード署名を使った電子申請システムだった。 そして最終的に総務省が勝利したという記憶です。

本題に入ります。今日は僕が社長の会社、(株)iCanalのSSL OV証明書を更新するため OV証明書を発注。 このお店は、SSL証明書の発行手順について一通り知っている人でないと、 厳しいということはないが、そのほうがいいかもしれない。

SSL証明書を発行するときの秘密鍵は、利便性のためオンラインで鍵生成をする方法を 提供しているところもありますが、安全を確保するため僕は、オフラインのLinuxの パソコンで鍵生成をしています。


1月11日 SnakeCubeの模倣品を作らないで!

暗号プロセッサSnakeCubeの模倣品を作られると、産業スパイがサイバー攻撃で 僕の脳を壊すことを可能にします。僕の脳を壊すとSnakeCubeが完成しなければ 産業スパイは破壊活動ができなくなります。 現状、少しずつ壊れているかもしれない。実際、3年前から眼鏡を4回作っている。 自動車載れなくなっています。 作業は、通常の人の10分の一くらいの速度まで落ち込んで、これが回復していません。 早く産業スパイを転職させないといけないような気がします。


1月9日 日本にしか作れないハイテクICカードを世界中に

量子コンピュータの進歩により既存の公開鍵暗号のリスクが増加しています。 恐らく世界中の人が、今後、どうするのか考えています。 日記、1月7日に書いたような複数の暗号アルゴリズム搭載の ICチップは、コストが高いことを除けば、問題が少ないので、有力候補です。

暗号プロセッサSnakeCubeでなければ、 このハイテクICカードを実現できません。そしてSnakeCubeは僕しか利権を 持っている人がありません。 日本政府の暗号輸出規制が厳しくなった感じなので、 このハイテクICカードは日本で作るのが割安になるのかと。

従来暗号と新暗号を併用しなければならない期間を乗り切るため、 全世界の人がハイテクICカードを安く手に入れるためには、日本がまとめて 全世界分作ってしまうことかもしれない。

早急に僕にまとわりつく産業スパイを転職させなければ、ならないということです。

参考 12月17日の日記 「僕の自宅は大阪ではなく東京の隣」


1月8日 ICF3の1024bit加算器の特殊配線

ファブ(チップ製造メーカ)関係の人が前日の日記を読んで 暗号プロセッサSnakeCube を製造するには特殊配線が必要なの?と思ったかもしれないので補足します。

SnakeCubeは鍵長と同じ大きさの大型加算器を持っていますが、 特殊配線によって性能を改善することができます。 しかし、あまり性能に影響しません。特殊配線は全く必要ありません。


1月8日 ICF3の開発期間の話と現体制では厳しい予測

暗号プロセッサICF3(1999年)は、 僕が超高速開発をしたものです。当時、日記をつけていなかったので正確な日付は覚えていませんが、 1998年10月末ごろにICF3の方式を基数2のモンゴメリ乗算と決断して1999年6月ごろに 日立の製造部署に依頼、1カ月後にチップとなって設計部に到着。1999年12月に製品出荷です。

ICF3が超高速開発できたのは、僕1人の頭で仕様から製造ファイルまで作ったからです。 1024bit加算器のキャリーは高速化のために円状に配置すべきとか、 キャリーは3倍配線の上層配線の特注品になるとか、現場でアドバイスは頂くことには、なったのですが。 公開鍵暗号のプロセッサは僕1人でファイルを作っています。(当時の日立の資料では剰余演算器と表記されています)

要するに、 ICF3(1999年)は最盛期の僕が1人でやることで約1年で製品化できましたが、 クレジットカードやキャッシュカードのICチップを作るためのASICのチップを開発するには、 現体制のままでは、うまくいかないので、日本のみなさんに考えて欲しいのです。

3年前、日本が僕の破壊を決めなければ、再度、超高速開発が可能だったかもしれません。 しかし僕には経験と実績があるので、その分は開発が加速されるだろうと思います。

大袈裟に言いますが、これが日本の歴史ifとなる分岐点で、日本滅亡後、 このときの判断を悔やむことのないようにと思っています。このままいけば日本滅亡かも。 国民の、みなさん立ち上がってください。


1月7日 複数の暗号アルゴリズム搭載のICチップ

量子コンピュータの進歩により既存の公開鍵暗号では解読のリスクが高まっています。 近いうちにNIST(米国国立標準技術研究所)が量子コンピュータに耐性を持つ新しい 公開鍵暗号を決定するそうです。

解読リスクに備え、大きく2つの方法が考えられます。 一つは既存のRSA暗号や楕円暗号の鍵長を長くして延命する方法。 もう一つはNISTが選定する新暗号を使う方法。

既存の暗号の鍵長を長くする方法では、量子コンピュータによる解読のリスクを回避しきれていませんが、 これまでの実績があります。 新暗号は量子コンピュータ以外による解読方法が発見される可能性が懸念されます。

そこで、双方の演算器を搭載したICチップが期待されます。 双方の演算器をワンチップに収める場合、トランジスタ数が多くなり歩留まりが悪化、 双方の演算器の知財管理など、コストが増加する問題があります。 マルチチップのICカードがあれば便利だろうという話です。

以前、この日記でも紹介していますが昨年11月にDNP(大日本印刷株式会社)が 40mm×40mmの複数チップが搭載できる基板を開発したと発表しています。

DNP、次世代半導体パッケージ向けインターポーザを開発

40mm角ならICカードに収まる大きさですがガラス基板だと厚みとかICカードに収まるのか、不明ですが、 可能性はありそうですね。DNPはICカードで有名なメーカなので、まだこの他にもICカード用の基板も、 あることが考えられますし。

以下は、僕が考えているアイディアの図です。 ご興味がある方は産業スパイを経由せずに、ご連絡ください。


1月7日 6G向け新ブロック暗号Rocca

ITmedia記事、
KDDI総研ら、世界最速の暗号アルゴリズム開発 6G時代見据え
少し古い記事なのですが、昨日、ツイッターのTL上で見かけたので。

日本のことわざに「豚にPerl」じゃなくて「豚にPearl」がある。 価値のわからない者に貴重なものを与えても何の役にもたたないことのたとえ、です。

価値のわかる僕が、この記事にコメントをすることで、価値がでるように思っています。 なので、ちょっとだけ批判的な意見を書きます。 忙しいのに興味でroccaの論文を斜め読みしただけなので、 僕の言っていることは間違っていることはあるかもしれません。

ネットの落書きにも既存のAES暗号を軽量化したように見えるとあったのですが、 僕にも、そう見えています。 基本的な考え方は高速に演算できると解読の速度も上がるので安全性は下がります。 鍵を128bitから256bitにして暗号強度をあげているのでいいという記事も見つかっています。 論文の復号化のアルゴリズムに暗号化の関数が使われているようなので、復号化も高速なのかなと思われます。

暗号化の性能はAES 256bitと新暗号Rocca 256bitで比較しています。 Roccaが予想通りAES 256bitより安全性が低い場合は、RoccaではなくてAES 192bitを使う案のほうが、 優勢な気がします。Roccaを実運用するために脆弱性を新規に調べるコストが、必要だからです。

Roccaを日本ローカルで運用して、海外メーカの参入を防ぎ、国内メーカの利益確保を目指すのだろうか。 日本の衛星放送や地デジのときのMULTI2暗号のように。

あれ、僕、MULTI2の高速化の特許で国内メーカの利益確保に成功したはずなのに、 なんで貧乏なんだろう。日立、上納し過ぎなのか。


1月6日 僕のバックエンドを名乗る不審人物に注意

暗号プロセッサSnakeCubeも、 半分以下のトラジスタ数で倍の性能の8bit CPU WZetaも、 僕1人でやってます。僕の作業が止まると、それだけ遅れます。

SONYと一緒にやればいいというアドバイスも、頂いてます。 大勢で作業ができるので、僕の頭が壊されても大丈夫みたいに思っているのかもしれない。

僕の頭が壊れて大丈夫になったら、僕が困るのです。 つまり産業スパイが潰れない限り、大勢には展開できない。 8bit CPUについてはオープンソースだから、CPUのハードの利権を独占できれば、 それより上は、現状でも、大勢で展開できるけど。

僕の過去の日記を読んでWZetaがZ80の機能削減版のように思った人もあるようです。 僕は暗号アルゴリズム実装経験を持っているので、暗号で使われない機能を 知っていると書いたからなのですが、WZetaは、これまでにない独特なアーキテクチャです。

要するに、WZetaを代替できるオープンソースの8bit CPUは、ないので、 産業スパイを潰すことを考えるほうが良いと言いたいのです。

ARM買収の動向をネットで調べていますが買収が白紙撤回されれば ソフトバンクに1000億円以上、キャンセル料みたいなものが入るとか。 ソフトバンクからARMライセンスを安定して購入できていたのにみたいな話とか、 僕の8bit CPUの影響は非常に小さいと思うようになっています。 それよりWZetaの全世界への影響のほうが大きい。

ソフトバンクの問題を、なるべく緩和するため、 8bit CPUよりSnakeCubeを先にしろと言ってくる人もあるけど、 昨年の1月に大型のサイバー攻撃をうけて、まず8bit CPUのオープンソースという 作戦に出ているのです。原因が解決されずにSnakeCubeに戻っても、 大型のサイバー攻撃が発生する可能性があるのです。 また、ここで8bit CPUを中断すると、闇に潜む競合8bit CPUに先手を取られて、 大敗する可能性を心配しています。先手を取られても、 WZetaが技術に優れていると思っているので、中断しなければ良かったと、再開して頑張るだけ。

まとめると8bit CPU WZetaの公開に向けて急ぎます。 産業スパイを潰さないと、この国は良くならない(と僕は思う)。 産業スパイに金を払うことなく、速攻で産業スパイを潰すことが良さそうだと僕は考えている。

左目をつぶりながら書いているので文章が多少、雑になっていると思いますが、 ご了承ください。


1月4日 WZetaは1段の高速スタックがあるので高性能

8bit CPU WZetaはスタックがないため 遅いと思った人があったみたい。

特殊INC命令を使ったソフトウェアスタックなので普通のソフトウェアスタックよりも高速です。 マルチタスクで時分割実行する場合、普通はスタックポインタを入れ替える手間がかかりますが、 メモリをスタックポインタとして使うため、入れ替えが不要。思ったより遅いということはありません。

サブルーチンはスタックがなくても実現できます。 その場合は、ソフトウェアスタックよりも高速ですが、再帰呼出しはできません。

またWZetaには1段の高速スタックがあるので普通のCPUより高性能になる場合が多いかもしれません。 ハードマクロ命令の機能は1段の高速スタックのハードともいえる機能なのです。 マイコン用途ではプログラム規模が小さいため、多くの場合、効果的に利用できると思われます。 ハードマクロ命令は64命令までですが、サブルーチンのコード、 16バイト毎にハードマクロ命令1命令を消費します。 ただし63番目のハードマクロ命令には、その制限がないので、大規模なサブルーチンを置けます。 ハードマクロ命令と分岐命令を組み合わせれば、やっぱり1段ですが、 普通のCPU並みの速度のサブルーチンを多数、使用できます。


1月4日 半分以下のトラジスタ数で倍の性能

昨年の7月25日の日記、 「超軽量8bit CPU WZetaのトランジスタ数(速報版)」で 僕の8bit CPUは従来8bit CPUの半分以下のトラジスタ数で倍の性能だと書きました。 FPGAによる見積なので精密な見積ではないが、机上計算よりは精度がある見積です。 まだ下方修正するような問題は、見つかっていない。

これが本当ならApache License 2.0のような制限の緩いオープンソースのライセンスで公開すれば、 製造原価が安価になって、地球資源問題に貢献するなど、世界的に役立つと思うのです。

さらにハードマクロ命令の機能は64命令をユーザーが定義できる。 用途固定のIoTでは用途に特化した命令を用意できるのでメモリ効率が上がる。 これを使いこなす新しいテクニック、コンパイラなど、若い人の活気溢れる社会を作れると思っています。 「平山ぶっ壊す」とか考えている人たちが多いと、これがうまくいかないでしょう。

ルネサスの激安FPGA、ForgeFPGAは1個 0.5ドルらしく トランジスタ数の少ないCPUなら、なんとか入るサイズです。 家電の開発経験がなくて感覚がわからないのですが、1個20円のCPUよりも、 EOLで入手できなくなる可能性の少ない0.5ドルのCPUのほうが魅力があるということはないだろうか。 最もForgeFPGAも、立ち上がるころには0.5ドルではなくなる可能性もありますけど。

ARMはイギリスですが、このForgeFPGAはイギリスの会社を買収して実現されている点を、 どう考えるのだろうか。

8bit CPUでメジャーなAVRのアーキテクチャは、遅いROMに極端にパラメータを振った アーキテクチャだと思うのでSoCに搭載するサブCPUには全く向かない。 WZeta SDogコアはSRAM1個で動くので脆弱性の心配のない、 物理的に完全に隔離された暗号プロセッサとしても期待ができる。

AVRとWZeta SDogコアとの比較を、メモリ上の1バイトを読んで8bit レジスタの値を加算して、 書き戻す処理で説明します。

AVR
LDS R1, 1234h ; R1 ← (1234h) 4バイト 2サイクル
ADD R1,R0 ; R1 ← R1 + R0 2バイト 1サイクル
STS 1234h , R1 ; (1234h) 4バイト 2サイクル


WZeta SDogコア
LD B, 34h ; B ← 34h 2バイト 4サイクル
ADD [12h:B],A ; (1234h) ← (1234h) + A 2バイト 4サイクル


AVRは10バイト 5サイクル。WZetaは4バイト 8サイクル。 AVRの1サイクルは遅いROMに適合したアーキテクチャなのでSoCのSRAM上では WZetaほど周波数が上がりません。恐らくWZetaの半分程度。 またAVRはハーバードアーキテクチャなのでSRAMが2個必要になります。 SDogコアはプログラムとデータを交互にアクセスするため、 データを書き込んだ直後の命令で読みだしても、1サイクル空けて読み出すことに必ずなるため、 通常より高い周波数でメモリアクセスが可能なのです。

WZetaは1970~1980年代のZ80やファミコンのCPUで有名な6502と異なり、 インデックスレジスタやスタックが存在しない。独自な命令セットアーキテクチャです。 これでどうして、従来8bit CPUの半分以下のトラジスタ数で倍の性能がでるのか、 これから僕が、もう少し精度のある見積をしていきますが、興味ある人は 命令セットは、もう公開しているので、考えてみるのも楽しいと思います。
このくらい効率的であれば、半永久的にWZetaの命令セットは、世界に残ると思います。


1月1日 ICF1(1997年)のクロック不良

明けましておめでとうございます。本年もよろしくお願いいたします。
これから公開予定のオープンソースの8bit CPU WZetaのメモリI/Fの設計をしているところです。 20年前に大型コンピュータの設計部で設計していたときのことを半分、懐かしいと思いながら日記に書いてみます。

1996年ごろ米国、AMD本社の正門前にあるホテルに3カ月近く滞在していた。 日立の米国にある子会社に出張するためだった。 帰国直前に次の仕事は暗号プロセッサICF1(1997年)の設計になることを言われた。 RSA暗号の性能で世界一になった ICF3(1999年)は有名だと思いますがICF1は、ICF3の2世代前です。

帰国後、ICF1のリーダーとして仕事を始めた。 そして秘密鍵を格納する装置との通信I/Fの論理を設計したり、各部署を巡る雑用をした。 リーダーといっても名ばかりで、各部署は、僕の指示で動いていたわけではなかった。 各部署は、既に上で話が通っている状態で、僕にやってほしい雑用を言うだけだった。 これから設計部門の中枢になる人間として、各部署を制御できるようになるための 修行みたいな感じで受け取っていた。

論理設計といっても、先輩の作った通信I/FをIBMのCPUに合わせて改造するだけだった。 しかしぶっつけ本番で設計をしたので、2方向からの同時出力を処理しきれず、 結果がORされ、パリティチェックになるというバグを作りこんでしまった。 バグを修正しようとしたが、周囲に止められ、論理設計を降りることになった。 再度、バグを作り製品出荷が遅れることを懸念されたためだ。 先輩の通信I/Fの仕様書がなくて、論理を読み取りながら改造しなければならず、 どうせ誰がやってもバグを作ることになる設計仕事だった。

そして製造されたICF1のチップが事業部に届いた。 毎週水曜日は定時に帰る日だが、帰ろうとするところを、捕まえられた。 どうもクロックのノイズが酷いらしかった。 測定機器によるクロック観測の手伝いをさせられた。 クロックの波形は綺麗だったが、立ち上がりと、立ち下りが前後にスプリットしていた。 技術開発部は、僕の所属する設計部が3倍クロックを作らせるから、いけないと言い出していた。 設計部が悪いことになってしまった。いや、設計部が技術開発部に成果を分けないことが原因だったのかもしれない。

1994年に発売されたIntel 486DX4は3倍クロックの製品。 それほど3倍クロックが問題ではないだろうという気がしている。

ちなみにメモリアクセスの論理は、現場でもバグが出やすいところとして有名なようだ。 大型コンピュータではハードウェアのバグは1回で1000万円開発コストが上がるのと同じように言われる。 ソフトウェアのバグよりも重いという概念。 レジスタファイル(配線マクロによるSRAM)を使う設計をするときに現場で言われたし、 隣で設計していたメモリアクセスチップは、本当にバグを作った。 そのときはメモリアクセスのチップが先行していたので、僕のICFは助かったけど。

昔話をしましたが、8bit CPUの設計に話を戻すと、 非同期メモリを接続するのに3倍クロックとか4倍クロックにしようか。 あるいはもっと基板の前提条件をはっきりさせて最適な設計で高速化を狙うのか。 マイコンの設計をしたことがないので、少し悩んでいる。 性能より、基板実装しやすい、整数倍クロックかなぁ。という感じ。

マイコンだともっと割り切ってクロック単層のマルチサイクル。 外部メモリへのアクセスは必ず2ウェイト以上1ウェイト以上とかかな。

1月2日おまけの追記
日立のCPU向けに作られた暗号装置には暗号装置からCPUに割り込むI/Fがあった。 IBM CPUのコプロ専用I/F仕様に割込みがなかったためIBM CPUからポーリングする方式になった。 暗号装置にポーリングする命令を追加したときに、ポーリング命令処理が従来制御と 同時に起きるケースがあって、双方の結果を同時に同じレジスタに書き込むバグだった。 これを1回で完璧に改造することは難しかった。
ICF1、ICF2はDES演算器しかなかったのでプロセッサというより専用演算器だった。 プロセッサに新規命令を追加するような改造ではなかった。


暗号プロセッサ OpenICF3