Difference between revisions of "SHA-3 Hardware Implementations"
From The ECRYPT Hash Function Website
Line 1: | Line 1: | ||
− | == High-Speed | + | == High-Speed Implementations (FPGA) == |
{| border="1" cellpadding="4" cellspacing="0" align="center" class="wikitable" | {| border="1" cellpadding="4" cellspacing="0" align="center" class="wikitable" | ||
Line 5: | Line 5: | ||
! width="120"| Hash Function Name !! width="150"| Reference !! width="200"| Implementation Details !! width="150"| Technology !! width="100"| Size !! width="100"| Throughput !! width="100"| Clock Frequency | ! width="120"| Hash Function Name !! width="150"| Reference !! width="200"| Implementation Details !! width="150"| Technology !! width="100"| Size !! width="100"| Throughput !! width="100"| Clock Frequency | ||
|- | |- | ||
− | | Grøstl-224/256 || Submission document || P & Q permutation in parallel || | + | | Grøstl-224/256 || Submission document || P & Q permutation in parallel || Xilinx Spartan 3 || 6582 slices || 4439 Mbit/s || 86.7 MHz |
|- | |- | ||
− | | Grøstl- | + | | Grøstl-224/256 || Submission document || P & Q permutation in parallel || Xilinx Virtex 5 || 1722 slices || 10276 Mbit/s || 200.7 MHz |
|- | |- | ||
− | | | + | | Grøstl-384/512 || Submission document || P & Q permutation in parallel || Xilinx Spartan 3 || 20233 slices || 5901 Mbit/s || 80.7 MHz |
|- | |- | ||
− | | | + | | Grøstl-384/512 || Submission document || P & Q permutation in parallel || Xilinx Virtex 5 || 5419 slices || 15395 Mbit/s || 210.5 MHz |
|- | |- | ||
− | | | + | | MD6 || Submission document|| Compression function only, 16 parallel steps || Xilinx Virtex-II Pro || 5313 slices || 1232 Mbit/s || 150.3 MHz |
|- | |- | ||
− | | | + | | MD6 || Submission document|| Compression function only, 32 parallel steps || Xilinx Virtex-II Pro || 7529 slices || 1894 Mbit/s || 141.6 MHz |
|} | |} | ||
− | == Low-Area ASIC | + | == High-Speed Implementations (ASIC) == |
+ | |||
+ | {| border="1" cellpadding="4" cellspacing="0" align="center" class="wikitable" | ||
+ | |- style="background:#efefef;" | ||
+ | ! width="120"| Hash Function Name !! width="150"| Reference !! width="200"| Implementation Details !! width="150"| Technology !! width="100"| Size !! width="100"| Throughput !! width="100"| Clock Frequency | ||
+ | |- | ||
+ | | Grøstl-224/256 || Submission document || P & Q permutation in parallel || UMC 0.18 µm || 131 kGates || 4379 Mbit/s || 85.5 MHz | ||
+ | |- | ||
+ | | Grøstl-384/512 || Submission document || P & Q permutation in parallel || UMC 0.18 µm || 341 kGates || 6225 Mbit/s || 85.1 MHz | ||
+ | |- | ||
+ | | Keccak || Submission document || Core (round function, state register) & IO buffer || ST 0.13 µm || 48 kGates || 28400 Mbit/s || 500 MHz | ||
+ | |- | ||
+ | | Keccak || Submission document || Core (round function, state register) only || ST 0.13 µm || 40 kGates || 15000 Mbit/s || 500 MHz | ||
+ | |- | ||
+ | | MD6 || Submission document || Compression function only, 48 parallel steps || GPDSK 90 nm || 145 kGates || N/A || 200 MHz | ||
+ | |- | ||
+ | | MD6 || Submission document || Compression function & memory control logic, 16 parallel steps || GPDSK 90 nm || 105 kGates || N/A || 200 MHz | ||
+ | |} | ||
+ | |||
+ | |||
+ | == Low-Area Implementations (ASIC) == | ||
+ | |||
+ | {| border="1" cellpadding="4" cellspacing="0" align="center" class="wikitable" | ||
+ | |- style="background:#efefef;" | ||
+ | ! width="120"| Hash Function Name !! width="150"| Reference !! width="200"| Implementation Details !! width="150"| Technology !! width="100"| Size !! width="100"| Throughput !! width="100"| Clock Frequency | ||
+ | |- | ||
+ | | Keccak || Submission document || Core using system memory || ST 0.13 µm || 6 kGates || 26 Mbit/s* || 100 MHz | ||
+ | |} | ||
+ | |||
+ | * Estimation for 64-bit memory interface based on published performance figures. |
Revision as of 17:55, 6 November 2008
1 High-Speed Implementations (FPGA)
Hash Function Name | Reference | Implementation Details | Technology | Size | Throughput | Clock Frequency |
---|---|---|---|---|---|---|
Grøstl-224/256 | Submission document | P & Q permutation in parallel | Xilinx Spartan 3 | 6582 slices | 4439 Mbit/s | 86.7 MHz |
Grøstl-224/256 | Submission document | P & Q permutation in parallel | Xilinx Virtex 5 | 1722 slices | 10276 Mbit/s | 200.7 MHz |
Grøstl-384/512 | Submission document | P & Q permutation in parallel | Xilinx Spartan 3 | 20233 slices | 5901 Mbit/s | 80.7 MHz |
Grøstl-384/512 | Submission document | P & Q permutation in parallel | Xilinx Virtex 5 | 5419 slices | 15395 Mbit/s | 210.5 MHz |
MD6 | Submission document | Compression function only, 16 parallel steps | Xilinx Virtex-II Pro | 5313 slices | 1232 Mbit/s | 150.3 MHz |
MD6 | Submission document | Compression function only, 32 parallel steps | Xilinx Virtex-II Pro | 7529 slices | 1894 Mbit/s | 141.6 MHz |
2 High-Speed Implementations (ASIC)
Hash Function Name | Reference | Implementation Details | Technology | Size | Throughput | Clock Frequency |
---|---|---|---|---|---|---|
Grøstl-224/256 | Submission document | P & Q permutation in parallel | UMC 0.18 µm | 131 kGates | 4379 Mbit/s | 85.5 MHz |
Grøstl-384/512 | Submission document | P & Q permutation in parallel | UMC 0.18 µm | 341 kGates | 6225 Mbit/s | 85.1 MHz |
Keccak | Submission document | Core (round function, state register) & IO buffer | ST 0.13 µm | 48 kGates | 28400 Mbit/s | 500 MHz |
Keccak | Submission document | Core (round function, state register) only | ST 0.13 µm | 40 kGates | 15000 Mbit/s | 500 MHz |
MD6 | Submission document | Compression function only, 48 parallel steps | GPDSK 90 nm | 145 kGates | N/A | 200 MHz |
MD6 | Submission document | Compression function & memory control logic, 16 parallel steps | GPDSK 90 nm | 105 kGates | N/A | 200 MHz |
3 Low-Area Implementations (ASIC)
Hash Function Name | Reference | Implementation Details | Technology | Size | Throughput | Clock Frequency |
---|---|---|---|---|---|---|
Keccak | Submission document | Core using system memory | ST 0.13 µm | 6 kGates | 26 Mbit/s* | 100 MHz |
- Estimation for 64-bit memory interface based on published performance figures.