暗号プロセッサのオープンソースハードウェア

科学・IT izuna 自問自答 自家受粉

31 Res. +1 MONA 3 Fav.

1 :izuna五段:2016/06/09 17:20:42 +0MONA/0人

1999年、世界一だったRSA暗号LSI ICF3をベースにした
暗号プロセッサのオープンソースハードウェアです。
OpenICF3
http://openicf3.idletime.tokyo/

シミュレータで楕円暗号とか、できるサンプルも用意したので遊んでみてください。

楕円暗号ができれば仮想通貨関係の人も興味ある人多いと思いました。

2 :izuna五段:2016/06/11 07:02:49 +0MONA/0人

サイトのトップページにも書いてあることなんだけど

1999年製なので、超古いとか、思っている人もあるかもしれない。

実際、RSA 1024bitの時代だったので演算器のビット幅は1024bit
なんだけど中国人剰余の定理を使えば2048bitになるのだ。
楕円暗号のほうも256bitから521bitになってきているけど
1024bitの演算器がちょうど良くなってきているという状況。

つまり現在でも、そのまま、有効という状況なのだ。

3 :izuna五段:2016/06/11 07:06:11 +0MONA/0人

>>2

なんでRSA 1024bitの時代に、512bitの演算器で中国人剰余定理を
使うことをしなかったのか?
このLSIはRSA暗号LSIではなくてIBMの暗号LSIの互換製品だから。
IBMの仕様を満たすために、そうなっている。

4 :izuna五段:2016/06/11 15:01:16 +0MONA/0人

これは、かなり命中精度の低い、予想なんだけど、当たっていると痛いから
書いてみる。

IoT家電のCPUも、セキュリティが必要になってくると思う。
CPUで暗号演算することも可能だが、セキュリティがない。
そこでCPUの支援がいらない暗号プロセッサが役にたつと思う。
TPMという安い外付けチップもあるが、CPUのLSIの中に入れてしまったほうが
安価な家電ができると思うのだ。

5 :izuna五段:2016/06/11 15:07:23 +0MONA/0人

OpenICF3では、一応、命令セットを公開して、マイクロコードの互換性なるものも、考えてみる方向だから、このオープンソースハードウェアが普及すれば、ハードウェアの製造ができなくても、マイクロコードの開発は可能。

独自の暗号アルゴリズムをマイクロコードにして、売り込む?
なんてことも、可能になるのかな。
オープンソースハードウェアの可能性を世界より先に発見しよう!

6 :izuna五段:2016/06/11 15:33:44 +0MONA/0人

>>2 で演算器のビット幅に、こだわる、話をしたけど

かなり将来の話になるけどOpenICF3のアーキテクチャは
2048bit、4096bitへと拡大させることは容易。
マクロコードの互換性は、なくなるが、対応させることは
それほど難しくないだろう。
アーキテクチャ上、マイクロコードのサイクルは長くなってしまうが
モンゴメリ乗算器のサイクルとの比率を変更することでカバーできる。
1999年のICF3は、マイクロコードとモンゴメリ乗算器の比率は1:2
これを1:4にしてやれば、いい。
性能を大きく決めるのはモンゴメリ乗算器のサイクルだから。

7 :izuna五段:2016/06/11 15:48:52 +0MONA/0人

>>6

比率の話は、1999年のICF3の実装経験で、少し余裕があったことが前提。
演算器のビット幅を2倍にすれば、当然、実装面積も、それなりに
大きく広がってしまうので、必ずしも比率を変更して性能を向上させる
ことは、できないかもしれない。
それでも、ビット幅を2048bitへと拡大することは可能だから。

8 :izuna五段:2016/06/11 15:56:58 +0MONA/0人

OpenICF3の特徴は、非常に簡素なアーキテクチャであることで
この結果、いろいろな実装系に移植しやすいメリットがあるよ。

論理合成とか使わなくても、手作業でできる規模だから。
ブロックの種類が少ないから、配置にも、それほど苦労しない。

9 :izuna五段:2016/06/12 08:48:39 +0MONA/0人

PV作ってみた



よかったら宣伝して

10 :izuna五段:2016/06/14 10:07:57 +0MONA/0人

スラドでニュースに!

「日立のメインフレーム向け暗号LSIをベースとした暗号プロセッサ仕様がオープンハードウェアとして公開される」
http://security.srad.jp/story/16/06/13/0836219/

11 :名無し四段:2016/06/14 11:35:24 +0MONA/0人

スラッシュドットを開いたらizunaさんが言ってたハードウェアの記事が出ててびびった

izunaさんslashdotedか

12 :名無し四段:2016/06/14 11:47:03 +0MONA/0人

ってその前のSHA-1のも前見たときに気づかなかったけど(というかその時izunaさんを知らなかっただけかも)
izunaさんが公開したやつだったのか

13 :izuna五段:2016/06/14 14:45:04 +0MONA/0人

OpenICF3がスラドのニュースになって7時間
コメントがいくつか、あったので、ここでちょっと解説

> どうでもいいから公開、これは正しい。
> 利益に繋がるなら公開しないよね。

いえ、これから役に立つと思って公開しています。
個人では利益にできる方法がなくて公開なのです。

> RSA 2048→現役。
> ただし、RSA-4096に対応していない実装系は使いにくいかも。

サーバー向けではなくてIoT向けだと、あらゆるニーズに対応する必要はないと考えています。RSA 2048bitと楕円の併用で立ち上げて、鍵長の長い楕円に切り替えていく方向にすれば、問題ないと考えています。

あとハードウェアの演算器のビット長を2048bitに拡張することは簡単です。暗号演算において隣接する近いデータだけでいいような構造にしているので、単純に増築すればいいというイメージ。厳密には注意しなければいけないディレイはありますけど。

14 :izuna五段:2016/06/14 16:24:24 +0MONA/0人

OpenICF3がスラドのニュースになって8時間
あたらしいコメントがありました。

> SH-1とかSH-2にしてはなんか変だなとおもいつつ読んでた。

このコメント読んで初めて気が付いた。
OpneICF3の暗号プロセッサとしてSHマイコンを使っていると思う人がいるかもって。

OpenICF3の暗号プロセッサはSHマイコンではありません。念のため。
OpenICF3のサイトのソフト編にアセンブラらしきものがあります。
一般のCPUのアセンブラとは、全く異なるものだということに気が付けるとおもいます。

15 :izuna五段:2016/06/14 16:26:01 +0MONA/0人

>>14
> ソフト編にアセンブラらしきものがあります

「剰余演算器μコード設計仕様」のPDFのことです。

16 :izuna五段:2016/06/15 08:24:52 +0MONA/0人

IoT家電がネットワークに接続しIoT家電のCPUの暗号コプロが必要になるかは、わからないが、もし、そうなるなら、そこに「日本の痕跡を世界に残せないか?」と思うのです。

IoT家電の暗号コプロの市場を得るチャンスを、失わないために
あるいは、日本はやればできたって、ことを残せるように
もう少し、OpenICF3が立ち上がっていたほうが、いいと。

このままだと、潰れそう。

スラド様のおかげで、昨日、少しサイトがヒットしたのですが。

17 :izuna五段:2016/06/15 10:56:01 +0MONA/0人

イギリスの5ドルのコンピュータRaspberry Pi Zeroには
グラフィック用のコプロGPU(Broadcom VideoCore IV 250MHz)が搭載されているんだけど、ディスプレイのない家電には必要なくって
暗号コプロを搭載したほうが、家電をネットワークに接続する場合に
セキュリティを向上できるからいいかもと

ちなみに中国のOrange Pi のGPUは Mali400MP2 600MHz

18 :izuna五段:2016/06/21 16:13:14 +0MONA/0人

ビットコインのハードウェアウォレットというものが出たようです。
http://jp.techcrunch.com/2016/06/21/techbureau-to-sell-trezor/

OpenICF3も、当然、こういった製品で利用できる、はず。

19 :izuna五段:2016/06/22 19:55:05 +0MONA/0人

ビットコインのハードウェアウォレットを調べてみました。
http://doublehash.me/hardwarewallet-review/
「ハードウェアウォレットを物理的に盗んで、そのチップを分解して、
 解析すれば可能ということ」

このレベルのセキュリティでハードウェアウォレットを商品化できるということなら、安価に製造できて、OpenICF3が便利だと思います。

「ハードウェアウォレットのデメリット、ハードウェアウォレット自体のバックドアです。ハードウェアウォレット製造業者自体が詐欺を働いている可能性があります。これに関しては、ハードウェアウォレットの制御ソフトウェアのコードを確認する方法があります。オープンソースとして公開しているウォレットを使えば、問題がないかどうか検証することができます。」

国産でOpenICF3を使えば、ハードウェアもオープンソースです。
やっぱりOpenICF3 非常に有効です!!!

20 :izuna五段:2016/06/22 20:00:07 +0MONA/0人

>>19
ビットコインはペーパーウォレットという仕組みがあるので
ハードウェアウォレットが故障しても大丈夫のようです。

つまり、多少、品質の悪いハードでハードウェアウォレット
開発しても問題ないということなので

ハードウェアウォレットを国産してビジネスにできる可能性は
あるということなんだと思った。

21 :なむやん七段:2016/06/22 20:10:54 +1MONA/1人

銀行を口説いて融資受けることはできない?
ガッツよガッツ

22 :izuna五段:2016/06/24 09:34:11 +0MONA/0人

IPSJ SIG Technical Reports 2006-CSEC-34(13) 2006/7/20
「コプロセッサの2倍のビット長をもつモンゴメリ乗算」
(日立製作所 システム開発研究所)

この論文にある方法を使えばOpenICF3の1024bitのモンゴメリ乗算器と中国人剰余定理を使ってRSA 4096bitを高速に演算できるマイクロコードが開発できるかもしれない。OpenICF3は、汎用のCPUのような機能はないので、実装できない可能性もある。

言いたいのはOpenICF3がオープンソースハードウェアとして世界に普及すれば、性能や機能を改善するマイクロコードが販売できるようになる可能性があるということだ。

ただRSA 4096bitについては、昨日、OpenICF3の汎用演算器を使って実装できてしまった。約0.95秒で演算できる。RSA 4096bitをやるなら、これよりも、かなり速い必要がある。

23 :izuna五段:2016/06/24 12:52:51 +0MONA/0人

OpenICF3のシミュレータを使ってマイクロコードは開発できるよ

http://openicf3.idletime.tokyo/sim/index.html

説明書のPDFとサンプルのマイクロコードがある。
説明書は、ちょっと説明不足なところはあるけど、わからなければ
質問してみて。

24 :izuna五段:2016/06/24 22:45:39 +0MONA/0人

OpenICF3のマイクロコードを使ったアプリケーションの一例

●Miller-Rabin(ミラー・ラビン)素数判定法

これは2000年頃、国内の市場向けに、実際に開発したことがあるもの
ただ1024bitまでなので現在の利用価値は少ないかも。

25 :izuna五段:2016/06/25 23:06:42 +0MONA/0人

AWSのIoTデバイスは、ネットワークに接続するのに電子証明書を使って、認証するみたいです。

IoTデバイスにTPMチップやICチップを搭載すれば、電子証明書の秘密鍵を守れるけど、SoCのCPUにOpenICF3を実装してしまえば、安価になるかと思った。

SoCのCPUを販売する人は、TPMチップのベンダをユーザーに信用させる必要がなくなるのもメリット。

26 :izuna五段:2016/06/26 17:50:42 +0MONA/0人

ARMのCPUにセキュリティ コプロセッサを搭載したものがありました

●Kinetis K8x
http://techon.nikkeibp.co.jp/PR/10000378/20000071/

「認証処理がソフトウェア実装に比べて大幅に高速化され、コード・サイズは削減され、電力効率が大幅に高まる」

このコプロは性能向上と電力効率の改善だけなんでしょうか?
もしそうなら、OpenICF3のコプロを搭載するCPUは、秘密鍵を守れる
大きな利点があることになる。

どなたか、情報あれば、こちらに投稿してください。

27 :izuna五段:2016/06/27 06:34:55 +0MONA/0人

マイクロコードの実装状況の表を公開
http://openicf3.idletime.tokyo/soft/impstatus.html

OpenICF3のモデルを3種類つくりました
専用演算器2個のモデル
専用演算器1個のモデル
専用演算器0個のモデル(汎用演算器モデル)
の3っつです。
RSA、楕円暗号などの性能を1999年のLSIの値を使って算出しています。
まだまだ表は、埋まっていませんが、IoTの用途では
汎用演算器モデルで性能的に足りるのではないかと考えています。

28 :izuna五段:2016/06/27 16:28:46 +0MONA/0人

ICチップをSoCのCPUのLSIに入れればいいと考えるかもしれない。

ICチップは32bitあるいは16bitのCPUとRAMとROMから構成されている。
ICチップのCPUは汎用CPUと同等の能力があり無駄が多いと推測する。
そしてRAMやROMをSoCのCPUに追加するには、拡散層を準備する必要がある。
(拡散層については、随分前の知識だから、間違いがない保証はないが)

OpenICF3ならレジスタファイルで実装できるのでSoCの余ったところに
どこにでも置ける。
ICチップの論理も、そんなに安くないと思うから、OpenICF3が有利だと思う。

29 :izuna五段:2016/06/28 20:19:21 +0MONA/0人

ICF3はメインフレームの暗号装置だったため論理が全2重化されている。
(レジスタファイルはパリティがあるので2重化はされていない)

VPNの認証専用であれば、2重化の必要はないので、ゲート面積を小さくして周波数を上げられる可能性はある。
署名、復号化のケースでも2重化を避けられる場合はあるだろう。

30 :izuna五段:2016/06/30 02:57:03 +0MONA/0人

OpenICF3では、物理的なサイドチャネルは、あまり考慮しない方針。
もし物理的なサイドチャネルを防ぎたい場合には、ICチップやTPMの外付け
がいいような気がしているからだ。
それでも、SoCの1コアという状況であれば、電力解析をしても、OpenICF3以外のコアの消費電力が入ってくるので、容易ではないと思うが。

タイミングアタックのサイドチャネルに対しては、性能を遅くして対応することが考えている。

ただ性能を遅くせずにサイドチャネルに対応する研究論文も、いくつかあり、それらを使ったOpenICF3のマイクロコードの開発をしてみるのも、
いいかもしれない。

31 :izuna五段:2016/07/14 17:27:13 +0MONA/0人

1ヵ月前のニュースだが東工大とNICTが水晶をワンチップ化に成功したらしい。IoTの小型化・低コスト化に役立つとか。
http://eetimes.jp/ee/articles/1606/17/news042.html

ICチップをワンチップ化してIoTの小型化、低コスト化するOpenICF3も、何とかしないといけないと思う。ICカードの論理はCPUだが、OpenICF3は独自のアーキテクチャなので軽量であることが、特徴。多分、ワンチップ化しやすい。
協力者の募集中なので、よろしくお願いします。
現在、1人で奮闘中だが、なんとかしないと、なんとか、ならないと思う。
100人体制で税金で研究開発することなったら大変。

お気に入り

新規登録してMONAをもらおう

登録すると、投稿したり、MONAをもらったりすることができます。質問したり、答えたりしてMONAを手に入れてください。

新規登録ログイン