Home

ソフト編


2018年8月8日 モンゴメリ乗算を使わないRSA 2048bitを追加

2018年8月10日 RSA4096のコードを追加

コード実装状況

性能については、モンゴメリ乗算器2個の1999年のLSIの値。 モンゴメリ乗算器0個ではゲート面積が小さくなるため80%に補正。

ICF3はメインフレームの暗号装置だったため論理が全2重化されている。 (レジスタファイルはパリティがあるので2重化はされていない)
VPNの認証専用であれば、2重化の必要はないので、ゲート面積を小さくして周波数を上げられる可能性はある。 署名、復号化のケースでも2重化を避けられる場合はあるだろう。

基本機能

◎ : 実装あり   ○ : 試作完成   △ : 試作中

サンプル有    非公開       不可能      予定無し  

機能 モンゴメリ乗算器
2個
 
モンゴメリ乗算器
1個
 
モンゴメリ乗算器
0個
(汎用演算器で演算)
RSA 1024bit
べき乗剰余演算

6.6ms

45.9ms
RSA 1024bit
中国人剰余定理

3.48ms
RSA 2048bit
べき乗剰余演算

379ms
RSA 2048bit
中国人剰余定理

13.4ms
RSA 4096bit
中国人剰余定理

800ms
楕円(スカラ倍)
256bit

5.97ms

(注) RSA 1024bit べき乗剰余演算とRSA 2048bit 中国人剰余定理以外は、タイミングアタック対策はされていない。



応用機能

◎ : 実装あり   ○ : 試作完成   △ : 試作中

サンプル有    非公開       不可能      予定無し  

機能 モンゴメリ乗算器
2個
 
モンゴメリ乗算器
1個
 
モンゴメリ乗算器
0個
(汎用演算器で演算)
Miller-Rabin
素数判定法
1024bit


モンゴメリ乗算を使わないRSA 2048bit

性能は落ちますがモンゴメリ乗算を使わないRSA 2048bitのコードの試作です。 高速な除算コード中に、誤演算の可能性が生じたら、低速な除算コードで最初からやり直す。 というようなテクニックを使っています。当サイトのJavaScriptのシミュレータで動作を確認できます。 (遅いパソコンでシミュレーションを行うと数分かかる場合があります)


次のURLに、このコードの背景があります。
IoTの原価を下げる暗号プロセッサICF3



汎用演算器のみで動作するRSA 4096bit

1024bitの汎用演算器と16本のレジスタのみで動作し、DDR2などのメモリを使わないため、チップ面積が 小さく、低速ですが、用途はあるように思います。 当サイトのJavaScriptのシミュレータで動作を確認できます。 (遅いパソコンでシミュレーションを行うと数分かかる場合があります)