Home

OpenICF3とは

OpenICF3は暗号プロセッサのオープンソースハードウェアです。 日立製作所が1999年に製品出荷したメインフレームMP5600EXの内蔵暗号装置に搭載された暗号LSIであるICF3がベースとなっています。 当サイトはOpenICF3の公式サイトです。 ICF3は開発コード名でRSA演算器、SHA-1演算器、Multi2演算器、DES演算器をもっていました。 RSA演算器は、当時、世界一高速であり内部にプロセッサを持っていました。 このプロセッサは非常に簡素ですが楕円暗号も演算可能であることから、 暗号プロセッサのオープンソースハードウェアとして2016年6月に公開することになったのです。 1999年製ですが、メインフレームの高性能暗号装置として開発されたものであるため、 現在、5ドル程度で売られているIoTのCPUの暗号コプロとして、ちょうどいい感じになっているのではと思います。 1024bitのモンゴメリ乗算器なので楕円暗号 521bit(←512bitではない)も可能ではないかと思います。 (現在確認済なのは楕円暗号 256bitです) RSAの鍵長は、2048bitが主流になっていますがRSA 2048/4096 bitも可能です。 OpenICF3は非常に簡素なアーキテクチャでありながら、暗号プロセッサとして十分な機能を持ち、 IoTマシンの暗号コプロとして活躍が期待できるような気がしています。 またいろいろな実装系に移植しやすい特徴も売りのひとつです。 IoTマシンもセキュリティのため暗号が必要となってくると思われます。 CPUでも演算可能ですが、十分なセキュリティを確保することは難しいと考えています。 OpenICF3はCPUによる支援がなくても楕円暗号を計算できます。

現在、当サイトにはICF3の当時の資料と、多少の解説、ICF3のマイクロコードを実際に動かして試すことができる シミュレータがあります。

OpenICF3の暗号プロセッサの命令長は32bitです。 命令コードというよりはセレクタ信号の集合体で、簡素でありながら、組み合わせで、さまざまな機能が作れ、 リソースがコンフリクトしなければ複数同時に実行できます。

OpenICF3の命令コードは、ハードウェア直結なので、維持することは難しいかもしれないですが OpenICF3の命令コードで書かれた楕円暗号などのコードが再利用していけるような構想を考えています。 OpenICF3のハードが移植しやすいことから、コードの再利用性の効果もあるように思います。

日本にも、こういったプロジェクトがあってもいいような気がしています。 みなさんに応援していただけるようお願いします。 ぜひ、みなさんの参加を待っていますので、当サイトの連絡先まで。 フォローもよろしくお願いします。

当サイトの情報や資料の著作権は、すべてOpenICF3のリーダーの平山 直紀にあります。 無断で配布するなどの行為は禁止させていただきます。


RSA世界一の記録

当時、HP社のSpeedCardに搭載されるFastMap LSIは、1024bitのRSA演算が5msであったがMP5600EXの暗号LSI ICF3は、 それよりも高速に演算することが可能なモンゴメリ乗算を使ったRSA演算器を持っていた。

MP5600EX

HP社の資料ではFastMapは”World's Fastest Crypto Engine” と表現されているが ICF3 が世界最高速の暗号エンジンだったかもしれない。 当然のことながら同時期のIBMのメインフレームの暗号LSIよりもICF3は高速だった。

Speed Card

ICF3とFastMapの比較

製品化時期

FastMap 1999年ごろ?
ICF3 1999年末

演算方式

FastMap 剰余テーブル、CPUコア有り ( PowerPC 401 )
ICF3 モンゴメリ法(b=2)、CPUコア無し(ハード論理で処理)

性能比較

Algorithm

Bit Size

FastMap [ms]

ICF3 [ms]

倍率

RSA Secret Key Sign
 /Decrypt

1024

4.900

3.448

1.42

2048

24.500

13.434

1.82

RSA Public Key Verify/Encrypt
(exponent = 65537)

1024

0.340

0.157

2.17

2048

1.300

-

-

DSS Sign

1024bit(exp:160bit)

7.000

2.160

3.24

DSS Verify

1024bit(exp:160bit)

7.000

3.230

2.18

DH Exponentiation

1024bit(exp:180bit)

3.900

1.221

3.19

1024bit(exp:300bit)

6.400

2.004

3.19

1024bit(exp:1024bit)

22.000

6.727

3.27

ICF3の製品版には中国人剰余定理のコードが入っていないため表の一番上にあるRSA Secret Key Sign/Decryptの性能はでません。 当サイトに中国人剰余定理のコードがありシミュレータで確認可能なので、ぜひ試してみてください。
中国人剰余定理を使うと計算量は、だいたい4分の1になるので理論的には表の一番下にある DH Exponentiation 1024bit(exp 1024bit)の4分の一の時間になるのですがICF3では2分の1です。


ICF3と(東芝暗号LSI)の比較

東芝暗号LSI URL
http://www.toshiba.co.jp/tech/review/2001/07/56_07pdf/a04.pdf

製品化時期

(東芝暗号LSI) 2001年ごろ? (試作?)
ICF3 1999年末

演算方式

(東芝暗号LSI) RNSモンゴメリ
ICF3 モンゴメリ法(b=2)

性能比較

Algorithm

Bit Size

東芝LSI( [ms]

ICF3 [ms]

倍率

RSA Secret Key Sign/Decrypt

1024

2.4 (注1)

3.448

0.70

2048

8.9 (注1)

13.434

0.66

(注1) 試作による性能予測値