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のコードの試作です。 高速な除算コード中に、誤演算の可能性が生じたら、低速な除算コードで最初からやり直す。 というようなテクニックを使っています。 (遅いパソコンでシミュレーションを行うと数分かかる場合があります)



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

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