Daniel J. Bernstein1 and Tanja Lange2
1
Department of Computer Science
University of Illinois at Chicago, Chicago, IL 60607–7045, USA
Department of Mathematics and Computer Science
Technische Universiteit Eindhoven, P.O. Box 513, 5600 MB Eindhoven, Netherlands
1
Introduction
This paper introduces a new graphing mechanism to allow easy comparison of software performance of the SHA-3 candidates. The new mechanism concisely captures a large amount of performance data without oversimplifying the data.
We have integrated this graphing mechanism into our eBASH (ECRYPT Benchmark-ing of All Submitted Hashes) project. New graphs are automatically posted at the top
ofhttp://bench.cr.yp.to/results-sha3.html whenever the eBASH performance results
are updated. This paper includes snapshots of these graphs, but readers are advised to check
the web page for the latest updates. See http://bench.cr.yp.to for more information
regarding eBASH.
For each function there is also a similar graph online comparing implementations of that function, showing in a concise way which implementations are slow or non-functional.
Im-plementors can follow links from http://bench.cr.yp.to/primitives-sha3.html to find
these graphs. Of course, users concerned about performance will reject slower implementa-tions in favor of faster implementaimplementa-tions, so the main shootout graphs reflect only the fastest implementations.
2
Understanding the graphs
It is tempting to report the software performance of a SHA-3 candidate as a single number: the time to hash a message. One could then summarize the performance of SHA-2 and the 5 SHA-3 candidates as 6 points in a one-dimensional graph.
However, as discussed in this section, the time to hash a message depends heavily on the message length and on the CPU used for hashing. A graph showing these dependencies is naturally three-dimensional: one axis shows message length, one axis shows the CPU, and one axis shows time. Furthermore, on the time axis there are actually 10 points rather than 6, as explained below.
The graphs in this paper put time on the horizontal axis and the platform on the vertical axis. Message length is on the page axis: the first, second, third, fourth, fifth, and sixth
This work was supported in part by the European Commission under Contract ICT-2007-216676 ECRYPT II and
in part by NIST grant 60NANB10D263. Permanent ID of this document:e04ab717c1ba1be3e5e2fe4c6f8568a3.
pages show long messages, 4096-byte messages, 1536-byte messages, 576-byte messages, 64-byte messages, and 8-64-byte messages respectively.
The graphs are longer horizontally than vertically, with a 4 ×3 format to fit typical
projector screens. This document has a format that is higher than long, to fit typical printers, so we rotated the graphs 90 degrees to the right. In the following description we continue to say “horizontal” and “vertical” as if this rotation had not occurred: we expect readers to undo the rotation, turning the graphs 90 degrees to the left to look at them, so that the text inside the graphs is horizontal.
2.1 Vertical axis: architecture/microarchitecture/CPU/machine
An Apple iPhone 4 contains an Apple A4 CPU with a single ARM Cortex A8 core running
at 1GHz (109 CPU cycles per second). A desktop computer bought at the same time might
contain an AMD Phenom II X6 1100T CPU with six cores running at 3.3GHz (3.3·109 CPU
cycles per second on each core, for a total of 19.8·109 CPU cycles per second). It is not
surprising that the second CPU can hash an order of magnitude more data per second than the first.
SUPERCOP measures cryptographic software on a single CPU core. Most hash functions,
and in particular all SHA-3 candidates, fit within a single core, so hashing N separate
messages on N cores scales in the obvious way. SUPERCOP also reports timings in CPU
cycles, rather than microseconds or nanoseconds.
These steps drastically reduce the variability in measurements across CPUs. However,
they do not eliminate the variability. Different CPUs have different “microarchitectures”
carrying out different amounts of work in a cycle: CPUs vary in the number of fast arithmetic operations per cycle (typically between 1 and 3), the maximum size of those arithmetic operations (typically 32 bits or 64 bits), the availability of vector operations, the availability of AES arithmetic, etc. The impact varies from one hash function to another.
Our new graphs sort benchmarked machines according to their CPU microarchitecture. Each microarchitecture is given the same amount of vertical space; that space is partitioned evenly between the machines with that microarchitecture (but leaving slightly more space at the top and bottom of each microarchitecture). The obvious presumption is that machines with the same CPU microarchitecture will have the same hashing performance, so the points within a microarchitecture will be aligned vertically; this indeed happens in most cases, and the occasional deviations are immediately visible. The most common reasons for deviations are the following:
– The performance of C implementations is often compromised by compiler stupidity. The
level of stupidity varies with the compiler version, which in turn varies from one machine to another. This effect is generally reduced for implementations that include assembly language or other microarchitecture-specific optimizations; an extreme defense against compiler stupidity is to submit a complete assembly-language implementation produced by a better compiler. All of the SHA-3 finalist teams have submitted microarchitecture-specific implementations, although not always for all architectures of interest, and not always for round 3; see in particular the discussion of JH below.
– Sometimes a hash function has to wait because CPU resources are being consumed by
the quartiles), but “hyperthreading” interruptions produce a pervasive, hard-to-analyze slowdown. Machines known to have hyperthreading are marked with “threads” in red in our tables, and we now exclude them from our shootout graphs.
– Sometimes a hash function runs more slowly because a machine does not have the latest
implementations. The graphs indicate the SUPERCOP version used for each machine, and exclude versions older than July 2011.
– Sometimes a hash function runs more quickly because a CPU is dynamically overclocked
(while the cycle counter is not). Machines known to have dynamic overclocking are marked with “boost” in red in our tables, and we now exclude them from our shootout graphs.
Machines are labelled on the right side of each graph, and microarchitectures are labelled in a larger font on the left side of each graph. We organized microarchitectures by hand, with the goals of bringing similar microarchitectures together and reducing “jumps” in the graph. Machines within one microarchitecture are automatically sorted according to a particular
metric of overall performance: for example, trident has an old operating system with an
obsolete compiler, and automatically ends up at the bottom of the C2 65nm list.
JH deserves special note because the JH designer submitted reasonable round-2 JH im-plementations but no round-3 JH imim-plementations. A third party submitted a slow round-3 JH implementation that has no microarchitecture-specific optimizations, and for some time this implementation was the only one reflected in the shootout graphs. We now have (from the first author of this paper) a reasonable round-3 JH implementation for amd64, and an independent team submitted a reasonable round-3 JH implementation for ARM, but these implementations have not been benchmarked on all machines yet. This is why the graphs show JH slowing down by more than a factor of 2 on many machines, compared to the best results on machines with the same microarchitecture. These slowdowns will disappear as more machines update their benchmarks.
2.2 Page axis: message length
It is not surprising that long messages take more time to process than short messages.
These graphs report cycles per message byte, rather than cycles. Thisreduces the variability
among different message lengths but does noteliminate it: all hash functions have overheads
that become severe for short messages. The impact of these overheads varies from one hash function to another.
The selection of message lengths for these graphs matches the selection used for the ECRYPT Stream Cipher Project (eSTREAM), but we are investigating ways for readers to view similar graphs for many more message lengths. Consider, for example, two hash functions that each use 20 cycles per byte for 64-byte messages, and 80 cycles per byte for 8-byte messages. One cannot safely interpolate between these figures to predict the performance of an application hashing 40-byte messages with either hash function. Perhaps the first function handles messages in 32-byte blocks, and thus uses 32 cycles per byte for 40-byte messages. Perhaps the second function handles messages in 8-byte blocks but adds 6 blocks of finalization to each message, and thus uses only about 25 cycles per byte for 40-byte messages. The most common block size among SHA-3 finalists is 64 bytes, but there are
several exceptions: blake512andgroestl512(like sha512) use 128 bytes;keccakc512 uses
Our first graph extrapolates long-message performance. The extrapolation is 1/B times
the difference between the cycles to hash 4096 bytes and the cycles to hash 4096−B bytes.
Here B is 1904 for keccakc512, 2016 for keccakc1024, and 2048 for all other
SHA-3-256/SHA-3-512 candidates, ensuring in each case that B bytes are an integer number of
blocks.
2.3 Horizontal axis: time
The time axis is cycles per byte, as explained above. The fastest SHA-3 candidates are on the left: fewest cycles per byte. The slowest SHA-3 candidates are on the right: most cycles per byte. The scale is logarithmic, so a constant horizontal distance means a constant ratio in performance; powers of 2 are marked at equal intervals on the bottom of each graph.
Color, either on a display or on a printout, is important for the readability of these graphs.
We use red (1,0,0) for BLAKE, green (0,0.8,0) for Grøstl, cyan (0,0.6,0.6) for JH, purple
(0.8,0,0.8) for Keccak, dark blue (0,0,1) for Skein, and black (0,0,0) for SHA-2.
Normally there are 10 points marked on each horizontal line. These points consist of 6 crosses (connected by single lines) for SHA-256 and the five SHA-3-256 candidates, and 6 dots (connected by double lines) for SHA-512 and the five SHA-3-512 candidates. The JH
proposals for SHA-3-256 and SHA-3-512, namelyround3jh256andround3jh512, have
iden-tical performance. The Skein proposals for SHA-3-256 and SHA-3-512, namelyskein512256
and skein512512, also have identical performance to each other. This is why there are nor-mally only 10 points visible rather than 12. The current ARM JH implementation includes onlyround3jh256, notround3jh512, producing two JH points for ARM microarchitectures, but the rightmost point will disappear once this is fixed.
Other candidates vary in performance between 256 bits and 512 bits. The Keccak
propos-als for SHA-3-256 and SHA-3-512, namelykeccakc512andkeccakc1024, are similar to Skein
and JH in having essentially the same processing for each block, but keccakc1024handles
fewer message bytes per block, making it approximately 1.9 times slower than keccakc512.
The Grøstl proposals, namelygroestl256 and groestl512, have different state sizes,
mak-ing the performance harder to predict; groestl512 is consistently slower than groestl256
but the ratio depends on the CPU. The BLAKE proposals, namelyblake256andblake512,
have different state sizes and different internal word sizes (similar to SHA-256 and SHA-512);
blake512is consistently slower thanblake256on 32-bit CPUs, butblake256is slower than
blake512 on most 64-bit CPUs.
Some of the points in the graphs are surrounded by horizontal lines. Each measurement is repeated many times; the line stretches from the first quartile of these measurements to the third quartile, and the point is plotted at the median. The lines are actually plotted around each point, but are usually not visible. Long horizontal lines should thus be taken as a warning: they indicate high variations in measurements. Don’t trust any benchmarking system that fails to report variations in its measurements!
2.4 Alternate functions
224-bit function has the same speed as the 256-bit function, and the 384-bit function has the same speed as the 512-bit function.
The Keccak documentation defines, and recommends, two more functions with the
256-bit and 512-256-bit output sizes, namely keccak truncated to 256 or 512 bits. These functions
have the same performance as each other, about 6% slower than the keccakc512 proposal
for SHA-3-256.
The Skein documentation defines another function with 256-bit output size, namely
skein256256. Early in the SHA-3 competition the Skein team pressured ASIC implemen-tors, FPGA implemenimplemen-tors, and microcontroller implementors to report area measurements for skein256256 and omit area measurements for skein512256, since skein512256 con-sumes about twice as much space. However, the Skein submission to NIST clearly proposes
skein512256 for SHA-3-256 and skein512512 for SHA-3-512, and includes corresponding test vectors.
The graphs in this document focus solely on the proposals for SHA-3-256 and SHA-3-512, and omit alternate functions defined in the same documents.
Recent work has shown that at least two SHA-3 candidates benefit from tree modes on a
single CPU core: specifically,bblake256andkeccakc512treed2achieve better long-message
speeds thanblake256andkeccakc512. These modes are not included in the current graphs.
3
A brief survey of architectures and microarchitectures
Four different architectures are included in the graphs: armeabi, ppc32, x86, and amd64. Software written in assembly language (by hand or by a compiler) is written for only one of these architectures and will not work on the others. (Note regarding names: AMD introduced the amd64 architecture; Intel copied the architecture and now refers to it as “Intel 64”; some operating systems refer to amd64 as “x86-64”.)
Many more microarchitectures are included in the graphs. In some cases there are large performance differences between microarchitectures sharing the same architecture. Some-times one microarchitecture includes useful additional instructions that will not work on other microarchitectures: for example, some Westmere and Sandy Bridge CPUs (and the very new Ivy Bridge and Bulldozer, not yet benchmarked) support AES instructions that are useful for Grøstl, while other amd64 microarchitectures do not. Furthermore, even when the same instructions work on all amd64 microarchitectures, they usually work at different speeds on different microarchitectures. Software can be written so that it will work on, e.g., all of the amd64 microarchitectures, but the best results are usually obtained by separate software optimized for each microarchitecture.
The best-known line of microarchitectures is Intel’s series of high-power microarchitec-tures:
– amd64 C2 65nm. CPU examples: 2006 Intel Core 2 Duo E6300; 2007 Intel Core 2 Duo
E4600.
– amd64 C2 45nm. CPU examples: 2007 Intel Xeon E5420; 2008 Intel Core 2 Duo E8400.
This was not merely a “die shrink” (using improved 45nm lithography instead of 65nm); it also added new instructions, such as “PSHUFB” to shuffle the bytes of a 128-bit vector.
– amd64 Westmere. CPU example: 2011 Intel Core i5-480M.
– amd64 Westmere+AES. CPU examples: 2010 Intel Core i5 M 520; 2010 Intel Xeon X5680.
This microarchitecture introduced AES instructions.
– amd64 Sandy Bridge. CPU example: 2011 Intel Core i3-2310M. Sandy Bridge introduced
3-operand vector instructions, allowing (e.g.) “a = b+c” to be expressed as a single
addition instruction rather than a copy followed by an addition.
– amd64 Sandy Bridge+AES. CPU example: 2011 Intel Core i5-2500K.
It is not clear whether Intel’s future high-power microarchitectures will show similar frag-mentation, some supporting AES instructions and some not. We have not found any relevant statements from Intel.
AMD has a competing series of high-power 64-bit microarchitectures:
– amd64 K8. CPU examples: 2005 AMD Opteron 875; 2006 AMD Athlon 64 X2.
– amd64 K10 65nm. CPU examples: 2008 AMD Opteron 8354; 2008 AMD Phenom 9550.
– amd64 K10 45nm. CPU examples: 2008 AMD Opteron 2376; 2010 AMD Phenom II X6
1100T.
– amd64 K10 32nm. CPU example: 2011 AMD A8-3850.
Both Intel and AMD also have low-power microarchitectures:
– x86 Atom. CPU examples: 2008 Intel Atom Z520 (2 watts); 2009 Intel Atom N280 (2.5
watts); 2011 Intel Atom Z670 (3 watts); 2012 Intel Atom Z2460 (1 watt?).
– amd64 Atom. CPU examples: 2009 Intel Atom D510 (13 watts); 2010 Intel Atom N455
(6.5 watts); 2011 Intel Atom D2500 (10 watts).
– amd64 Bobcat. CPU examples: 2011 AMD E-450 (18 watts).
Note that Intel is continuing to sell new 32-bit (x86) Atom CPUs, presumably because the 64-bit (amd64) architecture is more difficult to fit into very low power. See Figure 3.1 for the power consumption of Intel’s 32-bit and 64-bit Atom CPUs.
The remaining microarchitectures in the shootout graphs are low-power microarchitec-tures from other CPU manufacturers:
– armeabi ARM11. CPU example: 2006 TI OMAP 2420 used in a Nokia N280 tablet.
– armeabi Tegra 2. CPU example: 2010 NVIDIA Tegra 2 used in a Samsung Galaxy Tab
10.1.
– armeabi Cortex A. CPU example: 2009 Freescale i.MX515. The Cortex A is the most
common microarchitecture in low-power tablets and smartphones; for example, the Apple A5 CPU used in the iPad 2 has two Cortex A9 cores, and the Apple A4 CPU used in the original iPad has one Cortex A8 core, in both cases with a Cortex A microarchitecture.
– x86 Eden. CPU example: 2006 Via Eden ULV.
– ppc32 G4. CPU examples: 2001 Motorola PowerPC G4 7410 used in the Apple PowerMac
G4; 2005 Motorola PowerPC G4 7447a. The current Freescale e600 line of embedded CPUs reportedly uses the same microarchitecture.
Fig. 3.1. Vertical axis: Thermal design power (TDP) of Intel Atom processors, in watts. Horizontal axis: Release date. Green curve (lower) shows 32-bit Atom processors. Red curve (higher) shows 64-bit Atom processors.
4
Comparison of SHA-3 finalists for long messages
amd64 SB+AES amd64 Sandy Bridge amd64 W estmere+AES amd64 W estmere amd64 Nehalem amd64 C2 45nm amd64 C2 65nm amd64 K10 32nm amd64 K10 45nm amd64 K10 65nm amd64 K8 amd64 Bob cat amd64 A tom x86 A tom x86 Eden pp c32 G4 a rmeabi Co rtex A a rmeabi T egra 2 a rmeabi ARM11 mangetsu ; 4 x 3100MHz; 2011 Intel Co re i5-2400; amd64; SB+AES (206a7); supercop-2012021 1 bridge ; 2 x 2100MHz; 2011 Intel Co re i3-2310M; amd64; Sandy Bridge ( 206a 7); supercop-2012021 1 hydra2 ; 4 x 2400MHz; 2010 Int el Xeon E5620; amd64; W estmere+AES (206c2); supercop-2012021 1 bazinga ; 2 x 2800MHz; 2010 Intel P entium G6950; amd64; W estmere (20652); supercop-2011112 0 dragon ; 8 x 2000MHz; 2009 Intel Xeon E5504; amd64; Nehalem (106a5); supercop-2012021 1 coolmagma ; 8 x 2400MHz; 2009 Intel Xeon E5530; amd64; Nehalem (106a5); supercop-2011082 5 sto02 ; 2 x 1995MHz; 2010 Intel Xeon E5503; amd64; Nehalem (106a5); supercop-2011112 0 sto01 ; 2 x 1995MHz; 2010 Intel Xeon E5503; amd64; Nehalem (106a5); supercop-2011112 0 web02 ; 4 x 2128MHz; 2009 Intel Xeon E5506; amd64; Nehalem (106a5); supercop-2011112 0 web01 ; 4 x 2128MHz; 2009 Intel Xeon E5506; amd64; Nehalem (106a5); supercop-2011112 0 boing ; 2 x 3000MHz; 2008 Int el Co re 2 Duo E8400; amd64; C2 45nm (1067a); supercop-2011091 4 berlekamp ; 4 x 2833MHz; 2008 Intel Co re 2 Quad Q9550; amd64; C2 45nm (10677); supercop-2012021 1 gcc14 ; 8 x 2992MHz; 2007 Intel Xeon X5450; amd64; C2 45nm (10676); supercop-2012021 1 giant0 ; 8 x 2666MHz; 2007 Intel Xeon E5430; amd64; C2 45nm (10676); supercop-2012020 7 jos ; 4 x 2494MHz; 2007 Intel Xeon E5420; amd64; C2 45nm (10676); supercop-2012020 7 katana ; 2 x 2137MHz; 2006 Intel Co re 2 Duo E6400; amd64; C2 65nm (6f6); supercop-2012021 1 cobra ; 2 x 2400MHz; 2007 Intel Co re 2 Duo E4600; amd64; C2 65nm (6fd); supercop-2011112 0 latour ; 4 x 2394MHz; 2007 Intel Co re 2 Quad Q6600; amd64; C2 65nm (6fb); supercop-2012021 1 margaux ; 4 x 2404MHz; 2007 Intel Co re 2 Quad Q6600; amd64; C2 65nm (6fb); supercop-2012021 1 utrecht ; 4 x 2405MHz; 2007 Intel Co re 2 Quad Q6600; amd64; C2 65nm (6fb); supercop-2012021 1 enigma ; 4 x 2399MHz; 2007 Intel Xeon X3220; amd64; C2 65nm (6fb); supercop-2012021 1 trident ; 2 x 2000MHz; 2007 Intel Co re 2 Duo T7300; amd64; C2 65nm (6fb); supercop-2012021 1 hydra4 ; 4 x 2600MHz; 2011 AMD A6-3650; amd64; K10 32nm (300f10); supercop-2012021 1 hydra5 ; 4 x 2900MHz; 2011 AMD A8-3850; amd64; K10 32nm (300f10); supercop-2012021 1 hydra3 ; 6 x 3300MHz; 2010 AMD Phenom II X6 1100T; amd64; K10 45nm (100fa0); supercop-2012021 1 agamemnon ; 6 x 3200MHz; 2010 AMD Phenom II X6 1090T; amd64; K10 45nm (100fa0); supercop-2011112 0 hydra1 ; 6 x 3200MHz; 2010 AMD Phenom II X6 1090T; amd64; K10 45nm (100fa0); supercop-2012021 1 ranger ; 4 x 2200MHz; 2008 AMD Phenom 9550; amd64; K10 65nm (100f23); supercop-2012021 1 gcc16 ; 8 x 2194MHz; 2008 AMD Opteron 8354; amd64; K10 65nm (100f23); supercop-2012021 1 mace ; 2 x 2000MHz; 2006 AMD A thlon 64 X2; amd64; K8 (40fb2); supercop-2012021 1 gcc11 ; 4 x 2000MHz; 2006 AMD Opteron 2212; amd64; K8 (40f13); supercop-2012021 1 h4e350 ; 2 x 1600MHz; 2011 AMD E-350; a m d64; Bob cat (500f20); supercop-2012021 1 h4e450 ; 2 x 1650MHz; 2011 AMD E-450; a m d64; Bob cat (500f20); supercop-2012021 1 h5e450 ; 2 x 1650MHz; 2011 AMD E-450; amd64; Bob cat (500f20); supercop-2011112 0 h2atom ; 1 x 1000MHz; 2010 Intel A tom N455; amd64; A tom (106ca); supercop-2012021 1 slim ; 1 x 1667MHz; 2009 Intel A tom N280; x86; A tom (106c2); supercop-2012021 1 h3atom ; 1 x 1330MHz; 2008 Intel A tom Z520; x86; A tom (106c2); supercop-2012020 7 h1eden ; 1 x 1600MHz; 2006? Via Eden UL V; x86; Eden (6d0); supercop-2011112 0 gggg ; 2 x 533MHz; 2001 Moto rola P o w erPC G4 7410; pp c32; G4 (G4); supercop-2012021 1 h1g4 ; 1 x 1416MHz; 2005 Moto rola P o w erPC G4 7447a; pp c32; G4 (G4); supercop-2012021 1 h1mx515 ; 1 x 800MHz; 2009 F reescale i.MX515; a rmeabi (v7-A, Co rtex A8); supercop-2012020 7 h4mx515e ; 1 x 800MHz; 2009 F reescale i.MX515; a rmeabi (v7-A, Co rtex A8); supercop-2011112 0 h5tegra ; 2 x 1000MHz; 2010 NVIDIA T egra 2; a rmeabi (v7-A, T egra 2); supercop-2012021 1 diablo ; 1 x 400MHz; 2006? TI OMAP 2420; a rmeabi (v6, 1136J); supercop-2011091 4 crypto_sha3 Long messages 20120219 http://bench.cr.yp.to _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Cycles p er b yte 4 8 16 32 64 128 256 512 1024 2048 4096 groestl512h hh h h h h h h h h h h h h h h hh h
h h h h h h h h h h h h h h h hh h
h h h h h h h h h h h h
h hh h h h
h h h h P PP P
P PP P P PP P
P PP P P PP P
P PP P s s s
s s s s s ss s s s
s s s s s ss R RR R
R RR R R RR R
R
R RR R R RR R
R RR R
R PPPP * *** ]]]] ]]]] ]]]] ]] ]] gg gg gg ggg gg gg gg ggg $ $ $ $ $ $ | |||DDDD , , , , , , * * * * * * O OO O
O O O OO O
O O
V VV V V VV V
V VV V
V
V VV V V VV V
V VV V
V
F FF FF F
F
F FF F
F FF < < << < < < < << < < v v v
v v vv
v v v
v v vv
R RR R
R
R RR R
R
j jj j j j
j jj j jj j
j jj j
j
" """
V VV V V VV V
V VV V V VV V
V V
V VV V V VV V
V VV V V VV V
V V
round3jh512
m mm m m mm m
m mm m m mm m
m mm m mm m
m mm m m mm m
m mm m m mm > > >> > >
>
> > >> > >
>
T TT T T TT T
T TT T T T
T TT T T TT T
T TT T T T gg gg gg gg gg gg gg gg gg gg gg gg gg gg \\\\ \\\\ \\\\ \\ \\\\ \\\\ \\\\ \\ ee ee ee ee ee eee ee ee ee ee eeee e vvvv ]]]] ]]]] ]]]] ]] ]] ]]]] ]]]] ]]]] cc cc cc cc cc ccc cc cc cc cc cc ccc ^^ ^^^^ ^^^^ ^^^ ^^ ^^^^ ^^ ^^^^ ^`` `` ```` `` `` ` `` ```` `` `` `` ` # # #### " " " " " "
[[[[ [[[[ [[[ [[[[ [[[[ [[[ cc cc cc cc ccc cc cc cc cc ccc I II I
I
I II I
I
T TT T T TT T
T
T TT T T TT T
T
+ + ++++ I II I
I
I II I
I
R RRR RRRR i ii i
i i i i
i ii i i i
i ii i i i
i ii i D DD D
D D D DD D
D D ]]]] ]]]] ]]]] ]]]] ]]]] ]]]] ]] ]]]] ]]]] ]]]] ]]]] ]]]] ]]]] ]]
F FF F F FF F FF F
F FF ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff N NN NN N NN N
N
P PP P P PP P PP P
P PP / / / // / / / // round3jh256 ee ee ee ee ee ee ee ee ee ee ee eee > > >> > >
>
T TT T T TT T
T TT T T T gg gg gg gg gg gg gg \\\\ \\\\ \\\\ \\ ee ee ee ee ee eee xx ]]]] ]] ]]]] ]] ]] cc cc cc cc cc ccc ^^^^ ^^^^ ^^ ^^^`` ```` `` `` ``` # # # [[[[ [[[[ [[[ cc cc cc cc ccc I II I
I
T TT T T TT T
T
+ + + I II I
I
R RR R i i
i i i ii i
i i i i D DD D
D D ]]]] ]]]] ]]]] ]]]] ]]]] ]]]] ]]
D DD D D D ff ff ff ff ff ff ff ff ff N NN NN { { { {{ # # # # keccakc1024 ZZZZ ZZZZ w w ww w www < <<< ) ))) ) )))
Q QQ Q Q QQ Q QQ Q
Q QQ
6 6 66 6 6 6 66 6
V VV V V VV V
V VV V V V
V VV V V VV V
V VV V V V
+ + ++++ D DD D
D D D DD D
D D o o o
o o o o o o o o o
o o o o o o @ @ @ @ @ @ 4 4 44 4 4 44 * * * * * * * *
L LL L L LL L
L L
L LL L L LL L
L L groestl256 ff ff ff ff ff ff ff ff ff ff fff P PP P
P PP P P PP P s s s
s s s s s ss R RR R
R RR R R RR R
R ]]]] ]]]] ffff ff ffff f u u uIII # # # $ $ $
R RR R R RR
WWWW WWWW
WWWW WW
O OO O O OO O
O
3 3 33 3
r r r r r rr r Q QQ Q
Q
o o o o o oo
V VV V V VV V
V VV V V VV V
V
sha256
w w ww w w
w
" " " " { { {
LL
u u uIII
R RR R R RR
O OO O O OO O F FF FF F
F
i ii i i ii i
i ii i
i
o o oo o O OO O
O OO
) ) 2 2 22 2
keccakc512 ! ! ZZZZ v v vv ! ! ! u u uIII * * * *
P PP P P PP 6 6 66 6
V VV V V VV V
V VV V V V
* * E EE E
E E r r r
r r rr r > > > 6 6 66 ) ) ) )
L LL L L LL L
L L sha512 cc cc cc cc cc cc\\\ \\\\ \\\\ \\\ n n nn n nnn SSSSSS hhhhhh VVVVVV SSSS ! ! ! ! ! ! ! ! ! ! ! ! C CC C CC G G GG G G GG
Q QQ Q Q QQ Q QQ Q
Q QQ
E EE E E E E EE E
E E WWWW WWWW WWWW WWWW WWWW WWWW WWWW WWWW # # # # # # # # t t tt t ttt
VVVV VVVV VVV VVVV VVVV VVV
> > > > > > = = == = = = = = == = = = blake256 . . . .. . UUUU UU SS * * * 0 0 s s s O OO O
O @ @ @ ? ? ?? 3 3 33 3
V VV V V VV V
V VV V V V i i i i i i i i i i
i ii
VVVV VVVV
% % % %
J JJ J J JJ J
J
blake512
4 4 44 4 4 4 4 44 4 4 JJJJ n nnnSSSSSS OOOO mmmm XXX XXX z z z zzzzz ) ) ) ) ) ) UUUU U UUUU U ggg ggg ggg ggg P PP P
P
P PP P
P
D DD D DD > > >> > > >> $ $$$ ; ; ;; ; ; ; ;; ; VVVV VVVV VVVV VVV VVVV VVVV VVVV VVV
P PP P P PP P
P P
P PP P P PP P
P P
H HH H H HH H HH H
H HH
2 2 2222 cc cc cc cc cc cc cc cc cc cc ccc cc cc cc cc cc cc cc cc cc cc ccc \\\\ \\\\ \\\\ \\\\ \\\\ \\\ \\\\ \\\\ \\\\ \\\\ \\\\ \\\ ~ ~ ~ ~~ ~ ~ ~~ ~~ ~
S SS S S SS S
S SS S
S
S SS S S SS S
S SS S
S skein512512 * * * * * * * * * * * * * * * * dd
dddddd \\\\
\\\\ \\\\
\\\\ q q qq q qqq
) ) ) ) ) ) q q qqqqGGGGGG ( ((( & &&&
Q QQ Q Q QQ Q QQ Q
Q QQ
!!!! + + + + + + + + [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[ [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[
U UU U U UU U UU U
U UU
J JJ J J JJ J JJ J
J JJ ff ff ff ff ff ff ff ff fff ff ff ff ff ff ff ff ff fff 2 2 2222 dd dd dd dd dd dd dd dd dd dd dd dd dd dd dd dd dd dd T TT T
T TT T T TT T
T
T TT T T TT T
T TT T
T WWWW WWWW WWWW WWWW WWWW WWWW WWWW WWWW WWWW WWWW skein512256 = = == = MM ccc ccc[[ [[[ `` `` `` `` `` ``^^ ^^^^ ^^^^ ^^ ! ! ( ( ( w w w:: , , , & &
Q QQ Q Q QQ !! + + + + [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[
U UU U U UU
J JJ J J JJ ff ff ff ff ff ff ff ff fff 3 3 3 dd dd dd dd dd dd dd dd dd T TT T
T TT T T TT T
5
Comparison of SHA-3 finalists for 4096 bytes
amd64 SB+AES amd64 Sandy Bridge amd64 W estmere+AES amd64 W estmere amd64 Nehalem amd64 C2 45nm amd64 C2 65nm amd64 K10 32nm amd64 K10 45nm amd64 K10 65nm amd64 K8 amd64 Bob cat amd64 A tom x86 A tom x86 Eden pp c32 G4 a rmeabi Co rtex A a rmeabi T egra 2 a rmeabi ARM11 mangetsu ; 4 x 3100MHz; 2011 Intel Co re i5-2400; amd64; SB+AES (206a7); supercop-2012021 1 bridge ; 2 x 2100MHz; 2011 Intel Co re i3-2310M; amd64; Sandy Bridge ( 206a 7); supercop-2012021 1 hydra2 ; 4 x 2400MHz; 2010 Int el Xeon E5620; amd64; W estmere+AES (206c2); supercop-2012021 1 bazinga ; 2 x 2800MHz; 2010 Intel P entium G6950; amd64; W estmere (20652); supercop-2011112 0 dragon ; 8 x 2000MHz; 2009 Intel Xeon E5504; amd64; Nehalem (106a5); supercop-2012021 1 coolmagma ; 8 x 2400MHz; 2009 Intel Xeon E5530; amd64; Nehalem (106a5); supercop-2011082 5 sto02 ; 2 x 1995MHz; 2010 Intel Xeon E5503; amd64; Nehalem (106a5); supercop-2011112 0 sto01 ; 2 x 1995MHz; 2010 Intel Xeon E5503; amd64; Nehalem (106a5); supercop-2011112 0 web02 ; 4 x 2128MHz; 2009 Intel Xeon E5506; amd64; Nehalem (106a5); supercop-2011112 0 web01 ; 4 x 2128MHz; 2009 Intel Xeon E5506; amd64; Nehalem (106a5); supercop-2011112 0 boing ; 2 x 3000MHz; 2008 Int el Co re 2 Duo E8400; amd64; C2 45nm (1067a); supercop-2011091 4 berlekamp ; 4 x 2833MHz; 2008 Intel Co re 2 Quad Q9550; amd64; C2 45nm (10677); supercop-2012021 1 gcc14 ; 8 x 2992MHz; 2007 Intel Xeon X5450; amd64; C2 45nm (10676); supercop-2012021 1 giant0 ; 8 x 2666MHz; 2007 Intel Xeon E5430; amd64; C2 45nm (10676); supercop-2012020 7 jos ; 4 x 2494MHz; 2007 Intel Xeon E5420; amd64; C2 45nm (10676); supercop-2012020 7 katana ; 2 x 2137MHz; 2006 Intel Co re 2 Duo E6400; amd64; C2 65nm (6f6); supercop-2012021 1 cobra ; 2 x 2400MHz; 2007 Intel Co re 2 Duo E4600; amd64; C2 65nm (6fd); supercop-2011112 0 latour ; 4 x 2394MHz; 2007 Intel Co re 2 Quad Q6600; amd64; C2 65nm (6fb); supercop-2012021 1 margaux ; 4 x 2404MHz; 2007 Intel Co re 2 Quad Q6600; amd64; C2 65nm (6fb); supercop-2012021 1 utrecht ; 4 x 2405MHz; 2007 Intel Co re 2 Quad Q6600; amd64; C2 65nm (6fb); supercop-2012021 1 enigma ; 4 x 2399MHz; 2007 Intel Xeon X3220; amd64; C2 65nm (6fb); supercop-2012021 1 trident ; 2 x 2000MHz; 2007 Intel Co re 2 Duo T7300; amd64; C2 65nm (6fb); supercop-2012021 1 hydra4 ; 4 x 2600MHz; 2011 AMD A6-3650; amd64; K10 32nm (300f10); supercop-2012021 1 hydra5 ; 4 x 2900MHz; 2011 AMD A8-3850; amd64; K10 32nm (300f10); supercop-2012021 1 hydra3 ; 6 x 3300MHz; 2010 AMD Phenom II X6 1100T; amd64; K10 45nm (100fa0); supercop-2012021 1 agamemnon ; 6 x 3200MHz; 2010 AMD Phenom II X6 1090T; amd64; K10 45nm (100fa0); supercop-2011112 0 hydra1 ; 6 x 3200MHz; 2010 AMD Phenom II X6 1090T; amd64; K10 45nm (100fa0); supercop-2012021 1 ranger ; 4 x 2200MHz; 2008 AMD Phenom 9550; amd64; K10 65nm (100f23); supercop-2012021 1 gcc16 ; 8 x 2194MHz; 2008 AMD Opteron 8354; amd64; K10 65nm (100f23); supercop-2012021 1 mace ; 2 x 2000MHz; 2006 AMD A thlon 64 X2; amd64; K8 (40fb2); supercop-2012021 1 gcc11 ; 4 x 2000MHz; 2006 AMD Opteron 2212; amd64; K8 (40f13); supercop-2012021 1 h4e350 ; 2 x 1600MHz; 2011 AMD E-350; a m d64; Bob cat (500f20); supercop-2012021 1 h4e450 ; 2 x 1650MHz; 2011 AMD E-450; a m d64; Bob cat (500f20); supercop-2012021 1 h5e450 ; 2 x 1650MHz; 2011 AMD E-450; amd64; Bob cat (500f20); supercop-2011112 0 h2atom ; 1 x 1000MHz; 2010 Intel A tom N455; amd64; A tom (106ca); supercop-2012021 1 slim ; 1 x 1667MHz; 2009 Intel A tom N280; x86; A tom (106c2); supercop-2012021 1 h3atom ; 1 x 1330MHz; 2008 Intel A tom Z520; x86; A tom (106c2); supercop-2012020 7 h1eden ; 1 x 1600MHz; 2006? Via Eden UL V; x86; Eden (6d0); supercop-2011112 0 gggg ; 2 x 533MHz; 2001 Moto rola P o w erPC G4 7410; pp c32; G4 (G4); supercop-2012021 1 h1g4 ; 1 x 1416MHz; 2005 Moto rola P o w erPC G4 7447a; pp c32; G4 (G4); supercop-2012021 1 h1mx515 ; 1 x 800MHz; 2009 F reescale i.MX515; a rmeabi (v7-A, Co rtex A8); supercop-2012020 7 h4mx515e ; 1 x 800MHz; 2009 F reescale i.MX515; a rmeabi (v7-A, Co rtex A8); supercop-2011112 0 h5tegra ; 2 x 1000MHz; 2010 NVIDIA T egra 2; a rmeabi (v7-A, T egra 2); supercop-2012021 1 diablo ; 1 x 400MHz; 2006? TI OMAP 2420; a rmeabi (v6, 1136J); supercop-2011091 4 crypto_sha3 4096 b ytes 20120219 http://bench.cr.yp.to _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Cycles p er b yte 4 8 16 32 64 128 256 512 1024 2048 4096 groestl512 h h h h h h h h h h h hh hh h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h
h hh h h h
h h h h
h h P PP P
P PP P P PP
P PP P P PP P
P PP s s s
s s s s s s s s s
s s s s s s Q QQ Q
Q QQ Q Q QQ Q
Q QQ Q Q QQ Q
Q QQ Q
LLLL ~ ~ ~~~~ ) ))) ]]]] ]]]] ]]]] ]] ]] gg gg gg ggg gg gggg ggg $ $ $ $ $ $ { {{{DDDD , , , , , , ) ) ) ) ) ) ! !!! O OO O
O O O OO O
O O
V VV V V VV V
V VV V
V
V VV V V VV V
V VV V
V
F FF FF F
F
F FF F
F FF < < << < < < < << < < v v v
v v vv
v v v
v v vv
R RR R R R R RR R
R R j jj j
j jj j
j
j jj j j j
j jj " """
V VV V V VV V
V VV V V VV V
V V
V VV V V VV V
V VV V V VV V
V V
round3jh512
m mm m m mm m
m mm m m mm m
m mm m m mm m
m mm m m mm m
m mm m m mm m > > >> > >
>
> > >> > >
>
T TT T T TT T
T TT T T T
T TT T T TT T
T TT T T T gg gg gg gg gg gg gg gg gg gg gg gg gg gg \\\\ \\\\ \\\\ \\ \\\\ \\\\ \\\\ \\ ee ee ee ee ee eee ee ee ee ee eeee e vvvv ]]]] ]]]] ]]]] ]] ]] ]]]] ]]]] ]]]] cc cc cc cc cc ccc cc cc cc cc cc ccc ^^ ^^^^ ^^^^ ^^^ ^^ ^^^^ ^^ ^^^^ ^`` `` `` `` `` `` ` `` `` `` `` `` `` ` # # #### " " " " " "
[[[[ [[[[ [[[ [[[[ [[[[ [[[ cc cc cc cc ccc cc cc cc cc ccc I II I
I
I II I
I
T TT T T TT T
T
T TT T T TT T
T
+ + ++++ I II I
I
I II I
I
R RRR RRRR i ii i
i i i ii i
i i i i
i ii i i i
i ii i D DD D
D D D DD D
D D ]]]] ]]]] ]]]] ]]]] ]]]] ]]]] ]] ]]]] ]]]] ]]]] ]]]] ]]]] ]]]] ]]
F FF FF F
F
F FF F F FF ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff N NN N
N
N NN N
N
P PP P P PP P PP P
P PP / / / // / / / // round3jh256 ee ee ee ee ee ee ee ee ee ee ee eee > > >> > >
>
T TT T T TT T
T TT T T TT gg gg gg gg gg gg gg \\\\ \\\\ \\\\ \\ ee ee ee ee ee eee xx ]]]] ]] ]]]] ]] ]] cc cccc cc cccc c ^^^^ ^^^^ ^^ ^^^`` `` `` `` `` ``` # # # [[[[ [[[[ [[[ cc cc cc cc ccc I II I
I
T TT T T TT T
T
+ + + I II I
I
R RR R i i
i i i ii i
i i i i D DD D
D D ]]]] ]]]] ]]]] ]]]] ]]]] ]]]] ]]
E EE E E E ff ff ff ff ff ff ff ff ff N NN NN { { { {{ # # # # keccakc1024 ZZZZ ZZZZ w w ww w www ( ( ( ( ( ( v v vvvv<<<< ) ))) ) )))
Q QQ Q Q QQ Q QQ Q
Q QQ
6 6 66 6 6 6 66 6
U UU U U UU U
U UU U U U
U UU U U UU U
U UU U U U
+ + ++++ D DD D
D D D DD D
D D o o o
o o o o o o o o o
o o o o o o @ @ @ @ @ @ 4 4 44 4 4 44 * * * * * * * *
M MM M M MM M
M M
M MM M M MM M
M M groestl256 ff ff ff ff ff ff ff ff ff ff fff Q QQ Q
Q QQ Q Q QQ Q r r r
r r r r r rr R RR R
R RR R R RR R
R ]]]] ]]]] ffff ff ffff f u u uIII # # # # # #
R RR R R RR
WWWW WWWW
WWWW WW
O OO O O OO O
O
3 3 33 3
q q q q q qq q Q QQ Q
Q
o o o o o oo
V VV V V VV V
V VV V V VV V
V
sha256
w w w w w ww ! ! ! ! } } } x x xGGG
R RR R R RR
O OO O O OO O F FF FF F
F
i ii i i ii i
i ii i
i
o o oo o P PP P
P PP
* * 1 1 1 11
K KK K K KK K
K K keccakc512 ! ! ZZZZ v v vv " " " u u uIII * * * *
P PP P P PP
7 7 77 7
V VV V V VV V
V VV V V V
* * D DD D
D D r r r
r r rr r : : : 7 7 77 ( ( ( (
M MM M M MM M
M M sha512 LLLL o o oo o ooo R RRR iiii UUUU SSSS ! ! ! ! ! ! j j j j j j j j UUUU U UUUU U > > > > > > D DD D DD
Q QQ Q Q QQ Q QQ Q
Q QQ
E EE E E E E EE E
E E WWWW WWWW WWWW WWWW WWWW WWWW WWWW WWWW " " " " " " " " t t tt t ttt
VVVV VVVV VVV VVVV VVVV VVV = = = = = = < < << < <
<
< < << < <
< blake256 - - - - TTTT TT TT * * * 0 0 t t t O OO O
O ? ? ? ? ? ?? 3 3 33 3
V VV V V VV V
V VV V V V i i i i i i i i i i
i ii
VVVV VVVV
% % % %
N NN N N NN N
N N
blake512
4 4 44 4 4 4 4 44 4 4 JJJJ o oooSSSSSS PPPP mmmm \\\\ \\\ \\\\ \\\bb bbbb b bbbb bbb YYY YYY y y y yyyyy ) ) ) ) ) ) VVVV V VVVV V ggg ggg ggg ggg O OO O
O
O OO O
O
C CC C CC ? ? ?? ? ? ?? $ $$$ ; ; ;; ; ; ; ;; ; VVVV VVVV VVVV VVV VVVV VVVV VVVV VVV
P PP P P PP P
P
P PP P P PP P
P
H HH H H HH H HH H
H HH
2 2 2222 cc cc cc cc cc cc cc cc cc cc ccc cc cc cc cc cc cc cc cc cc cc ccc \\\\ \\\\ \\\\ \\\\ \\\\ \\\ \\\\ \\\\ \\\\ \\\\ \\\\ \\\ ~ ~ ~ ~~ ~ ~ ~~ ~~ ~
S SS S S SS S
S SS S S S
S SS S S SS S
S SS S S S skein512512 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( KKKK WWW WWW r r rr r rrr
) ) ) ) ) ) q q qqqqGGGGGG ( ((( & &&&
Q QQ Q Q QQ Q QQ Q
Q QQ
!!!! + + + + + + + + [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[ [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[
U UU U U UU U UU U
U UU
J JJ J J JJ J JJ J
J JJ ff ff ff ff ff ff ff ff fff ff ff ff ff ff ff ff ff fff 1 1 1111 dd dd dd dd dd dddd dd dd dd dd dddd dd dd dd dd dd
T TT T T TT T
T TT T
T TT T T TT T
T TT T
WWWW WWWW WWWW WWWW WWWW WWWW WWWW WWWW WWWW WWWW skein512256 = = == = LL ! ! ( ( ( x x x88 + + + & &
Q QQ Q Q QQ !! + + + + [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[
U UU U U UU
J JJ J J JJ ff ff ff ff ff ff ff ff fff / / / dd dd dd dddd dd dd dd dd
T TT T T TT T
T TT T
WWWW WWWW
WWWW WWWW
6
Comparison of SHA-3 finalists for 1536 bytes
amd64 SB+AES amd64 Sandy Bridge amd64 W estmere+AES amd64 W estmere amd64 Nehalem amd64 C2 45nm amd64 C2 65nm amd64 K10 32nm amd64 K10 45nm amd64 K10 65nm amd64 K8 amd64 Bob cat amd64 A tom x86 A tom x86 Eden pp c32 G4 a rmeabi Co rtex A a rmeabi T egra 2 a rmeabi ARM11 mangetsu ; 4 x 3100MHz; 2011 Intel Co re i5-2400; amd64; SB+AES (206a7); supercop-2012021 1 bridge ; 2 x 2100MHz; 2011 Intel Co re i3-2310M; amd64; Sandy Bridge ( 206a 7); supercop-2012021 1 hydra2 ; 4 x 2400MHz; 2010 Int el Xeon E5620; amd64; W estmere+AES (206c2); supercop-2012021 1 bazinga ; 2 x 2800MHz; 2010 Intel P entium G6950; amd64; W estmere (20652); supercop-2011112 0 dragon ; 8 x 2000MHz; 2009 Intel Xeon E5504; amd64; Nehalem (106a5); supercop-2012021 1 coolmagma ; 8 x 2400MHz; 2009 Intel Xeon E5530; amd64; Nehalem (106a5); supercop-2011082 5 sto02 ; 2 x 1995MHz; 2010 Intel Xeon E5503; amd64; Nehalem (106a5); supercop-2011112 0 sto01 ; 2 x 1995MHz; 2010 Intel Xeon E5503; amd64; Nehalem (106a5); supercop-2011112 0 web02 ; 4 x 2128MHz; 2009 Intel Xeon E5506; amd64; Nehalem (106a5); supercop-2011112 0 web01 ; 4 x 2128MHz; 2009 Intel Xeon E5506; amd64; Nehalem (106a5); supercop-2011112 0 boing ; 2 x 3000MHz; 2008 Int el Co re 2 Duo E8400; amd64; C2 45nm (1067a); supercop-2011091 4 berlekamp ; 4 x 2833MHz; 2008 Intel Co re 2 Quad Q9550; amd64; C2 45nm (10677); supercop-2012021 1 gcc14 ; 8 x 2992MHz; 2007 Intel Xeon X5450; amd64; C2 45nm (10676); supercop-2012021 1 giant0 ; 8 x 2666MHz; 2007 Intel Xeon E5430; amd64; C2 45nm (10676); supercop-2012020 7 jos ; 4 x 2494MHz; 2007 Intel Xeon E5420; amd64; C2 45nm (10676); supercop-2012020 7 katana ; 2 x 2137MHz; 2006 Intel Co re 2 Duo E6400; amd64; C2 65nm (6f6); supercop-2012021 1 cobra ; 2 x 2400MHz; 2007 Intel Co re 2 Duo E4600; amd64; C2 65nm (6fd); supercop-2011112 0 latour ; 4 x 2394MHz; 2007 Intel Co re 2 Quad Q6600; amd64; C2 65nm (6fb); supercop-2012021 1 margaux ; 4 x 2404MHz; 2007 Intel Co re 2 Quad Q6600; amd64; C2 65nm (6fb); supercop-2012021 1 utrecht ; 4 x 2405MHz; 2007 Intel Co re 2 Quad Q6600; amd64; C2 65nm (6fb); supercop-2012021 1 enigma ; 4 x 2399MHz; 2007 Intel Xeon X3220; amd64; C2 65nm (6fb); supercop-2012021 1 trident ; 2 x 2000MHz; 2007 Intel Co re 2 Duo T7300; amd64; C2 65nm (6fb); supercop-2012021 1 hydra4 ; 4 x 2600MHz; 2011 AMD A6-3650; amd64; K10 32nm (300f10); supercop-2012021 1 hydra5 ; 4 x 2900MHz; 2011 AMD A8-3850; amd64; K10 32nm (300f10); supercop-2012021 1 hydra3 ; 6 x 3300MHz; 2010 AMD Phenom II X6 1100T; amd64; K10 45nm (100fa0); supercop-2012021 1 agamemnon ; 6 x 3200MHz; 2010 AMD Phenom II X6 1090T; amd64; K10 45nm (100fa0); supercop-2011112 0 hydra1 ; 6 x 3200MHz; 2010 AMD Phenom II X6 1090T; amd64; K10 45nm (100fa0); supercop-2012021 1 ranger ; 4 x 2200MHz; 2008 AMD Phenom 9550; amd64; K10 65nm (100f23); supercop-2012021 1 gcc16 ; 8 x 2194MHz; 2008 AMD Opteron 8354; amd64; K10 65nm (100f23); supercop-2012021 1 mace ; 2 x 2000MHz; 2006 AMD A thlon 64 X2; amd64; K8 (40fb2); supercop-2012021 1 gcc11 ; 4 x 2000MHz; 2006 AMD Opteron 2212; amd64; K8 (40f13); supercop-2012021 1 h4e350 ; 2 x 1600MHz; 2011 AMD E-350; a m d64; Bob cat (500f20); supercop-2012021 1 h4e450 ; 2 x 1650MHz; 2011 AMD E-450; a m d64; Bob cat (500f20); supercop-2012021 1 h5e450 ; 2 x 1650MHz; 2011 AMD E-450; amd64; Bob cat (500f20); supercop-2011112 0 h2atom ; 1 x 1000MHz; 2010 Intel A tom N455; amd64; A tom (106ca); supercop-2012021 1 slim ; 1 x 1667MHz; 2009 Intel A tom N280; x86; A tom (106c2); supercop-2012021 1 h3atom ; 1 x 1330MHz; 2008 Intel A tom Z520; x86; A tom (106c2); supercop-2012020 7 h1eden ; 1 x 1600MHz; 2006? Via Eden UL V; x86; Eden (6d0); supercop-2011112 0 gggg ; 2 x 533MHz; 2001 Moto rola P o w erPC G4 7410; pp c32; G4 (G4); supercop-2012021 1 h1g4 ; 1 x 1416MHz; 2005 Moto rola P o w erPC G4 7447a; pp c32; G4 (G4); supercop-2012021 1 h1mx515 ; 1 x 800MHz; 2009 F reescale i.MX515; a rmeabi (v7-A, Co rtex A8); supercop-2012020 7 h4mx515e ; 1 x 800MHz; 2009 F reescale i.MX515; a rmeabi (v7-A, Co rtex A8); supercop-2011112 0 h5tegra ; 2 x 1000MHz; 2010 NVIDIA T egra 2; a rmeabi (v7-A, T egra 2); supercop-2012021 1 diablo ; 1 x 400MHz; 2006? TI OMAP 2420; a rmeabi (v6, 1136J); supercop-2011091 4 crypto_sha3 1536 b ytes 20120219 http://bench.cr.yp.to _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Cycles p er b yte 4 8 16 32 64 128 256 512 1024 2048 4096 groestl512 h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h P PP PP PP P P PP
P PP P P PP P
P PP s s s
s s s s s s s s s
s s s s s s Q QQ Q
Q QQ Q Q QQ Q
Q QQ Q Q QQ Q
Q QQ Q
YYYY YYYYgggggg | | |||| ' ''' ]]]] ]]]] ]]]] ]] ]] gg gg gggg g gg gg gg ggg $ $ $ $ $ $ + + + + + + ) ) ) ) ) ) ! !!! O OO O
O O O OO O
O O
V VV V V VV V
V VV V
V
V VV V V VV V
V VV V
V
G GG G
G GG
G GG G
G GG
= = == = =
= = == = =
u u u
u u uu
u u u
u u uu
S SS S S S S SS S
S S j j
j jj j j jj j j
j jj j j jj # ###
V VV V V VV V
V VV V V VV V
V V
V VV V V VV V
V VV V V VV V
V V
round3jh512
l l l ll l
l l l ll l
l l l ll l
l ll l l
l ll l l l
l ll l l l
l ll l l ll > > >> > >
>
> > >> > >
>
T TT T T TT T
T TT T T TT
T TT T T TT T
T TT T T TT gg gg gg gg gg gg gg gg gg gg gg gg gg gg \\\\ \\\\ \\\\ \\ \\\\ \\\\ \\\\ \\ YYYY YYYYeeee eeee ee ee ee ee ee eee ee ee ee ee ee eee vvvv ]]]] ]]]] ]]]] ]] ]] ]]]] ]]]] ]]]] cc cc cc cc cc ccc cc cc cc cc cc ccc ^^ ^^^^ ^^^^ ^^^ ^^ ^^^^ ^^ ^^^^ ^`` `` `` `` `` `` ` `` `` `` `` `` `` ` $ $ $$$$ " " " " " "
[[[[ [[[[ [[[ [[[[ [[[[ [[[ cc cc cc cc ccc cc cc cc cc ccc I II I
I
I II I
I
T TT T T TT T
T
T TT T T TT T
T
+ + ++++ I II I
I
I II I
I
R RRR RRRR i ii i
i i i i
i ii i i i
i ii i i i
i ii i D DD D
D D D DD D
D D ]]]] ]]]] ]]]] ]]]] ]]]] ]]]] ]] ]]]] ]]]] ]]]] ]]]] ]]]] ]]]] ]]
F FF FF F
F
F FF F F FF ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff N NN N
N
N NN N
N
P PP P P PP P PP P
P PP / / / // / / / // round3jh256 ee ee ee ee ee ee ee ee ee ee ee eee > > >> > >
>
T TT T T TT T
T TT T T TT gg gg gg gg gg gg gg \\\\ \\\\ \\\\ \\ ee ee ee ee ee eee yy ]]]] ]] ]]]] ]] ]] cc cccc cccc ccc ^^^^ ^^^^ ^^ ^^^`` `` `` `` `` ``` $ $ $ [[[[ [[[[ [[[ cc cc cc cc ccc I II I
I
T TT T T TT T
T
+ + + I II I
I
R RR R i i
i i i ii i
i i i i D DD D
D D ]]]] ]]]] ]]]] ]]]] ]]]] ]]]] ]]
F FF FF F
F ff ff ff ff ff ff ff ff ff N NN NN { { { {{ # # # # keccakc1024 ZZZZ ZZZZ w w ww w www ( ( ( ( ( ( w w wwww<<<< ) ))) * ***
Q QQ Q Q QQ Q QQ Q
Q QQ
6 6 66 6 6 6 66 6
U UU U U UU U
U UU U U U
U UU U U UU U
U UU U U U
, , ,,,, D DD D
D D D DD D
D D o o o
o o o o o o o o o
o o o o o o @ @ @ @ @ @ 4 4 4 4 4 4 4 4 ) ) ) ) ) ) ) )
M MM M M MM M
M M
M MM M M MM M
M M groestl256 ff ff ffff ff ff ff ffff ff fff Q QQ Q
Q QQ Q Q QQ Q
Q
q q q q q q
q q qq R RR R
R RR R R RR R
R | | | ]]]] ]]]] ffff ffff fff # # # " " "
Q QQ Q Q QQ
WWWW WWWW
WWWW WW
P PP P P PP P
P
2 2 22 2
q q q q q qq q Q QQ Q
Q
p p p p p pp
V VV V V VV V
V VV V V VV V
V
sha256
w w ww w w
w ! ! | |CC
R RR R R RR
N NN N N NN N ! ! E E EE E E
E
i ii i i ii i
i i i ii o o oo o P PP P
P PP
-/ -/ -/ -//
J JJ J J JJ J
J sha512 # # # # # # # # # # FFFF
o o oo o ooo N NNN kkkk SSSS TTTT ! ! ! ! ! ! 8 8 8 8 8 8 < < < < < <
Q QQ Q Q QQ Q QQ Q
Q QQ
E EE E E E E EE E
E E WWWW WWWW WWWW WWWW WWWW WWWW WWWW WWWW ! ! ! ! ! ! ! ! t t tt t ttt
WWWW WWWW WWW WWWW WWWW WWW = = = = = = ; ; ;; ; ; ; ; ; ;; ; ; ; keccakc512 " " ZZZZ v v vv " " " ) ) ) )
Q QQ Q Q QQ 7 7 77 7
U UU U U UU U
U UU U U U
* * D DD D
D D r r r
r r rr r 3 3 3 9 9 99 ' ' ' '
N NN N N NN N
N NN
blake256 - - - - ?? TTTT TT JJ TT * * * 0 0 t t t O OO O
O
> > > @ @ @@ 2 2 22 2 ! !
V VV V V VV V
V VV V V V i i i i i i i i i i
i ii $ $ $
V VV V V VV
% % % %
N NN N N NN N
N N
blake512
4 4 44 4 4 4 4 44 4 4 KKKK n nn nSSSSSS PPPP llll YYY YYY x x x xxxxx ) ) ) ) ) ) O OO O
O
O OO O
O
B BB B BB A A AA A A AA %%%% ; ; ;; ; ; ; ;; ; VVVV VVVV VVVV VVV VVVV VVVV VVVV VVV
P PP P P PP P
P
P PP P P PP P
P
G GG G G GG G GG G
G GG
2 2 2222 cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc \\\\ \\\\ \\\\ \\\\ \\\\ \\ \\\\ \\\\ \\\\ \\\\ \\\\ \\ } } } }} } } }} }} }
R RR R R RR R
R RR R
R
R RR R R RR R
R RR R
R skein512512 $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ IIII WWW WWW r r rrrrrr ( ( ( ( ( ( ( ((( & &&&
Q QQ Q Q QQ Q QQ Q
Q QQ
!!!! + + + + + + + + [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[ [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[
U UU U U UU U UU U
U UU
J JJ J J JJ J JJ J
J JJ ff ff ff ffff ff ff ff fff ffff ff ff ff ffff ff fff . . .... dddd dddd dd dddd ddd dd dddd dddd dd dddd d $ $$$
T TT T T TT T
T TT T
T TT T T TT T
T TT T
WWWW WWWW WWWW WWWW WWWW WWWW WWWW WWWW WWWW WWWW skein512256
> > >> > II YYYYeeee LL ! ! ( ( ( ) ) & &
Q QQ Q Q QQ !! + + + + [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[
U UU U U UU
J JJ J J JJ ff ff ffff ff ff ff ffff f * * dd dd dd dd dd dd dd ddd & &
T TT T T TT T
T TT T
WWWW WWWW
WWWW WWWW
7
Comparison of SHA-3 finalists for 576 bytes
amd64 SB+AES amd64 Sandy Bridge amd64 W estmere+AES amd64 W estmere amd64 Nehalem amd64 C2 45nm amd64 C2 65nm amd64 K10 32nm amd64 K10 45nm amd64 K10 65nm amd64 K8 amd64 Bob cat amd64 A tom x86 A tom x86 Eden pp c32 G4 a rmeabi Co rtex A a rmeabi T egra 2 a rmeabi ARM11 mangetsu ; 4 x 3100MHz; 2011 Intel Co re i5-2400; amd64; SB+AES (206a7); supercop-2012021 1 bridge ; 2 x 2100MHz; 2011 Intel Co re i3-2310M; amd64; Sandy Bridge ( 206a 7); supercop-2012021 1 hydra2 ; 4 x 2400MHz; 2010 Int el Xeon E5620; amd64; W estmere+AES (206c2); supercop-2012021 1 bazinga ; 2 x 2800MHz; 2010 Intel P entium G6950; amd64; W estmere (20652); supercop-2011112 0 dragon ; 8 x 2000MHz; 2009 Intel Xeon E5504; amd64; Nehalem (106a5); supercop-2012021 1 coolmagma ; 8 x 2400MHz; 2009 Intel Xeon E5530; amd64; Nehalem (106a5); supercop-2011082 5 sto02 ; 2 x 1995MHz; 2010 Intel Xeon E5503; amd64; Nehalem (106a5); supercop-2011112 0 sto01 ; 2 x 1995MHz; 2010 Intel Xeon E5503; amd64; Nehalem (106a5); supercop-2011112 0 web02 ; 4 x 2128MHz; 2009 Intel Xeon E5506; amd64; Nehalem (106a5); supercop-2011112 0 web01 ; 4 x 2128MHz; 2009 Intel Xeon E5506; amd64; Nehalem (106a5); supercop-2011112 0 boing ; 2 x 3000MHz; 2008 Int el Co re 2 Duo E8400; amd64; C2 45nm (1067a); supercop-2011091 4 berlekamp ; 4 x 2833MHz; 2008 Intel Co re 2 Quad Q9550; amd64; C2 45nm (10677); supercop-2012021 1 gcc14 ; 8 x 2992MHz; 2007 Intel Xeon X5450; amd64; C2 45nm (10676); supercop-2012021 1 giant0 ; 8 x 2666MHz; 2007 Intel Xeon E5430; amd64; C2 45nm (10676); supercop-2012020 7 jos ; 4 x 2494MHz; 2007 Intel Xeon E5420; amd64; C2 45nm (10676); supercop-2012020 7 katana ; 2 x 2137MHz; 2006 Intel Co re 2 Duo E6400; amd64; C2 65nm (6f6); supercop-2012021 1 cobra ; 2 x 2400MHz; 2007 Intel Co re 2 Duo E4600; amd64; C2 65nm (6fd); supercop-2011112 0 latour ; 4 x 2394MHz; 2007 Intel Co re 2 Quad Q6600; amd64; C2 65nm (6fb); supercop-2012021 1 margaux ; 4 x 2404MHz; 2007 Intel Co re 2 Quad Q6600; amd64; C2 65nm (6fb); supercop-2012021 1 utrecht ; 4 x 2405MHz; 2007 Intel Co re 2 Quad Q6600; amd64; C2 65nm (6fb); supercop-2012021 1 enigma ; 4 x 2399MHz; 2007 Intel Xeon X3220; amd64; C2 65nm (6fb); supercop-2012021 1 trident ; 2 x 2000MHz; 2007 Intel Co re 2 Duo T7300; amd64; C2 65nm (6fb); supercop-2012021 1 hydra4 ; 4 x 2600MHz; 2011 AMD A6-3650; amd64; K10 32nm (300f10); supercop-2012021 1 hydra5 ; 4 x 2900MHz; 2011 AMD A8-3850; amd64; K10 32nm (300f10); supercop-2012021 1 hydra3 ; 6 x 3300MHz; 2010 AMD Phenom II X6 1100T; amd64; K10 45nm (100fa0); supercop-2012021 1 agamemnon ; 6 x 3200MHz; 2010 AMD Phenom II X6 1090T; amd64; K10 45nm (100fa0); supercop-2011112 0 hydra1 ; 6 x 3200MHz; 2010 AMD Phenom II X6 1090T; amd64; K10 45nm (100fa0); supercop-2012021 1 ranger ; 4 x 2200MHz; 2008 AMD Phenom 9550; amd64; K10 65nm (100f23); supercop-2012021 1 gcc16 ; 8 x 2194MHz; 2008 AMD Opteron 8354; amd64; K10 65nm (100f23); supercop-2012021 1 mace ; 2 x 2000MHz; 2006 AMD A thlon 64 X2; amd64; K8 (40fb2); supercop-2012021 1 gcc11 ; 4 x 2000MHz; 2006 AMD Opteron 2212; amd64; K8 (40f13); supercop-2012021 1 h4e350 ; 2 x 1600MHz; 2011 AMD E-350; a m d64; Bob cat (500f20); supercop-2012021 1 h4e450 ; 2 x 1650MHz; 2011 AMD E-450; a m d64; Bob cat (500f20); supercop-2012021 1 h5e450 ; 2 x 1650MHz; 2011 AMD E-450; amd64; Bob cat (500f20); supercop-2011112 0 h2atom ; 1 x 1000MHz; 2010 Intel A tom N455; amd64; A tom (106ca); supercop-2012021 1 slim ; 1 x 1667MHz; 2009 Intel A tom N280; x86; A tom (106c2); supercop-2012021 1 h3atom ; 1 x 1330MHz; 2008 Intel A tom Z520; x86; A tom (106c2); supercop-2012020 7 h1eden ; 1 x 1600MHz; 2006? Via Eden UL V; x86; Eden (6d0); supercop-2011112 0 gggg ; 2 x 533MHz; 2001 Moto rola P o w erPC G4 7410; pp c32; G4 (G4); supercop-2012021 1 h1g4 ; 1 x 1416MHz; 2005 Moto rola P o w erPC G4 7447a; pp c32; G4 (G4); supercop-2012021 1 h1mx515 ; 1 x 800MHz; 2009 F reescale i.MX515; a rmeabi (v7-A, Co rtex A8); supercop-2012020 7 h4mx515e ; 1 x 800MHz; 2009 F reescale i.MX515; a rmeabi (v7-A, Co rtex A8); supercop-2011112 0 h5tegra ; 2 x 1000MHz; 2010 NVIDIA T egra 2; a rmeabi (v7-A, T egra 2); supercop-2012021 1 diablo ; 1 x 400MHz; 2006? TI OMAP 2420; a rmeabi (v6, 1136J); supercop-2011091 4 crypto_sha3 576 b ytes 20120219 http://bench.cr.yp.to _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Cycles p er b yte 4 8 16 32 64 128 256 512 1024 2048 4096 groestl512 h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h O OO OO OO O O OO
O OO O O OO O
O OO t t t
t t t t t t t t t
t t t t t t Q QQ Q
Q QQ Q Q QQ Q
Q QQ Q Q QQ Q
Q QQ Q
WWW WWW x x xxxx $ $$$ ]]]] ]]]] ]]]] ]] ]] gg gggg ggg gg gg gggg g # # # # # # * * * * * * ! !!! ' ' ' ' ' ' " """ O OO O
O O O OO O
O O
V VV V V VV V
V VV V
V
V VV V V VV V
V VV V
V
H HH H
H HH
H HH H
H HH
< < << < < < < << < < t t t
t t tt
t t t
t t tt
T TT T T T T TT T
T T i ii
i ii i iii i ii
i ii i iii $ $$$ VVVV VVVV VVVV VVVV VVV VVVV VVVV VVVV VVVV VVV round3jh512
k kk k k kk k
k k k kk k
k k k kk k
k k k k
k kk k k k
k kk k k k
k kk k k kk k > > >> > >
>
> > >> > >
>
T TT T T TT T
T TT T T TT
T TT T T TT T
T TT T T TT ff ff ff ff ff ff ff ff ff ff ff ff ff ff \\\\ \\\\ \\\\ \\ \\\\ \\\\ \\\\ \\ ee ee ee ee ee eee ee ee ee ee ee eee yyyy ]]]] ]]]] ]]]] ]] ]] ]]]] ]]]] ]]]] cc cccc cccc ccc cccc cccc cccc c ^^ ^^^^ ^^^^ ^^^ ^^ ^^^^ ^^ ^^^^ ^`` `` ```` ```` ` `` `` `` `` ```` ` $ $ $$$$ ! ! ! ! ! ! I II I
I
I II I
I
T TT T T TT T
T
T TT T T TT T
T
+ + ++++ J JJ J
J
J JJ J
J
R RR R R RR R i ii i
i i i ii i
i i i i
i ii i i i
i ii i D DD D
D D D DD D
D D ]]]] ]]]] ]]]] ]]]] ]]]] ]]]] ]] ]]]] ]]]] ]]]] ]]]] ]]]] ]]]] ]]
F FF F F FF F FF FF F
F ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff O OO O
O
O OO O
O
P PP P P PP P PP P
P PP / / / // / / / // round3jh256 ee ee ee ee ee ee ee ee ee ee ee ee ee > > >> > >
>
T TT T T TT T
T TT T T TT ff ff ff ff ff ff ff \\\\ \\\\ \\\\ \\ ee ee ee ee ee eee xx ]]]] ]] ]]]] ]] ]] cccc cccc cc ccc ^^^^ ^^^^ ^^ ^^^`` ```` ```` ``` $ $ $ [[[[ [[[[ [[[ cc cc cc cc ccc I II I
I
T TT T T TT T
T
+ + + J JJ J
J
R RR R i i
i i i ii i
i i i i D DD D
D D ]]]] ]]]] ]]]] ]]]] ]]]] ]]]] ]]
F FF F F FF ff ff ff ff ff ff ff ff ff O OO O
O
{ { { {{ " " " "
keccakc1024 ! !!! ZZZZ ZZZZ v v vv v vvv ( ( ( ( ( ( ( ((( * ***
Q QQ Q Q QQ Q QQ Q
Q QQ
"""" 6 6 66 6 6 6 66 6
U UU U U UU U
U UU U
U
U UU U U UU U
U UU U
U
, , ,,,, D DD D
D D D DD D
D D o o o
o o o o o o o o o
o o o o o o @ @ @ @ @ @ 3 3 3 3 3 3 3 3 ( ( ( ( ( ( ( (
M MM M M MM M
M M
M MM M M MM M
M M groestl256 ff ff ff ffff ff ff ff ffff ff R RR R
R RR R R RR R
R
o o o o o o
o o oo o Q QQ Q
Q QQ Q Q QQ Q
R R s s ss ]]]] ]]]] ffff ffff fff # # # ! ! !
Q QQ Q Q QQ
WWWW WWWW
WWWW WW
P PP P P PP P
P
3 3 33 3
p p p p p p
p p p Q QQ Q
Q
p p p p p pp
V VVV V VVV
V VV V V VV V
V V
sha256
w w ww w w
w ! !
R RR R R RR
M MM M M MM M E EE E
E E i ii i
i i i ii i
i ii p p pp p Q QQ Q
Q QQ Q
. . .
-P -PP P P PP P
P PP
keccakc512 NN y y y # # ZZZZ v v vv " " " ( ( ' '
Q QQ Q Q QQ 8 8 88 8
U UU U U UU U
U UU U
U
* * D DD D
D D s s s
s s ss s . . . 9 9 99 % % % %
K KK K K KK K
K K sha512 ) ) ) ) ) ) ) ) ) ) FFFF
o o oHHHHo o ooo SSSS & &&& ( (((
Q QQ Q Q QQ Q QQ Q
Q QQ
F FF F F F F FF F
F F WWWW WWWW WWWW WWWW WWWW WWWW WWWW WWWW t t tt t ttt
WWWW WWWW WWWW WWWW WWWW WWWW
< < < < < < 7 7 77 7 7 7 7 77 7 7
blake256 - - - - -! -! -! -! -! BB T TT T
T UU * * * O OO O
O
< < < A AA A "" 1 1 1 11
V VV V V VV V
V VV V V V i i i i i i i i i i
i ii , , , ,
U UU U U UU
" " " "
O OO O O OO O
O OO
blake512 3 3 33 3 3 3 3 33 3 3 ZZZZ Z ZZZZ Z
eeeeeeee n nnnSSSSSS OOOO llll YYYYYYY Y
w w ww w www ) ) ) ) ) ) O OO O
O
O OO O
O
A A A A A A @ @ @@ @ @ @@ / /// ; ; ;; ; ; ; ;; ; VVVV VVVV VVVV VVV VVVV VVVV VVVV VVV
P PP P P PP P
P
P PP P P PP P
P
G GG G G GG G GG G
G GG
3 3 3333 dd dd dd dd dd dd dd dd dd ddd dd dd dd dd dd dddd dd dd ddd \\\\ \\\\ \\\\ \\\\ \\\\ \ \\\\ \\\\ \\\\ \\\\ \\\\ \ } } }} } }} } }} } }
S SS S S SS S
S SS S S S
S SS S S SS S
S SS S S S
skein512512
" " " " " " " " " " " " " " " " EEEE WWW WWW s s ssssss
LLLL
) ) ) ) ) ) " " " " " " ' ''' & &&&
R RR R R RR R RR R
R RR
!!!! + + + + + + + + [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [ [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [
U UU U U UU U UU U
U UU
J JJ J J JJ J JJ J
J JJ ff ff ffff ff ff ff ff ff ff ff ff ff ff ffff ff ff ' ''' ee ee ee ee ee ee ee eee ee eeee ee ee ee ee eee " """
S SS S S SS S
S SS
S SS S S SS S
S SS
WWWW WWWW WWWW WWWW WWWW W WWWW WWWW WWWW WWWW WWWW W skein512256 ? ?? ?? YYYYeeee RR } } } } ! ! ' ' ' ! ! ! % % % %
R RR R R RR !! + + + + [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [[[[ [
U UU U U UU
J JJ J J JJ ff ff ff ffff ff ff ffff ee ee eeee ee eeee eee # #
S SS S S SS S
S SS