IP-SHA1: SHA-1 Hash Function
SHA-1は、1993年に設計されたSHA-0の規格修正版として、1995年に米国家安全保障局(NSA)が再設計し、
アメリカ国立標準技術研究所(NIST)が規格化したハッシュ長160ビットの米国政府標準ハッシュ関数(FIPS 180-1)です。
IP-SHA1は、FIPS 180-1に完全準拠する SHA-1 IP コアで、
32-bit ずつ入力されるデータストリームに対して、5×32 = 160-bit のハッシュ値を出力します。
アーキテクチャ
IP-SHA1では、部分的に並列&パイプライン処理を行うことによって、
スピード・ファクタ 2.89 を達成しています。

SHA1_ENGINE (Engine部分)
|
|
IP-SHA1
|
ピンアウト
ベンチマーク
- Xilinx 社 Vertex シリーズによる実装
| デバイス |
スライス数 |
ブロックRAM数 |
動作速度 |
| Spartan3A
XC3S-5 |
1,031 |
0 |
127 MHz |
| Vertex4
XC4V LX15-12 |
845 |
0 |
257 MHz |
|
Vertex5 XC5V LX30-3 |
485 |
0 |
303 MHz |
- Altera 社 Cyclone シリーズによる実装
| デバイス |
LEs |
Memory Bits |
動作速度 |
| Cyclone
II EP2C15A-6 |
1,674 |
0 |
154 MHz |
| Cyclone
III EP3C16-6 |
1,666 |
0 |
167 MHz |
- Altera 社 Stratix シリーズによる実装
| デバイス |
ALUTs |
Registers |
Memory Bits |
動作速度 |
| Stratix
II EP2S15-3 |
1,092 |
983 |
0 |
232 MHz |
| Stratix
III EP3SE50-2 |
1,092 |
983 |
0 |
278 MHz |
IP-SHA1は、16クロックのデータ入力ごとに、T=161 クロックの処理時間を必要とします。
このため、十分に長いデータ系列に対するデータ速度は、次のようになります。
[データ速度Mbps] = [動作速度MHz]×{32×16}÷{T+16} = 2.89×[動作速度MHz]
ただし、データ系列の末尾のデータ入力に対しては、
T=161 クロックではなく、処理される末尾のデータの長さに依存して、
2T+1クロック以上2T+16 クロック以下の処理時間が必要です。
データシート