Measurements of stream ciphers on one machine: amd64; K10 45nm (100f63); 2010 AMD Athlon II Neo K125; 1 x 1700MHz; h3neo, supercop-20240909
[Page version: 20241006 02:11:59]
eBASC
(ECRYPT Benchmarking
of Stream Ciphers)
is a project
to measure the performance of stream ciphers.
This page presents benchmark results collected in eBASC:
- Speed (cycles/byte) of encrypting an 8-byte message.
- Speed of encrypting a 64-byte message.
- Speed of encrypting a 576-byte message.
- Speed of encrypting a 1536-byte message.
- Speed of encrypting a 4096-byte message.
- Speed of encrypting a long message.
This is computed as 1/3072 of the difference in cycle counts
between encrypting 4096-byte messages and encrypting 1024-byte messages.
Graphs show timings for all message lengths between 0 and 4096 bytes.
The stair-step shape of a typical curve on the graphs
reflects the fact that these stream ciphers handle messages in blocks,
such as 64-byte blocks.
Each table row lists
the first quartile of many speed measurements,
the median of many speed measurements,
the third quartile of many speed measurements, and
the name of the primitive.
Measurements with large variance are indicated in red with question marks.
The symbol
T:
(starting with supercop-20200816)
means that the SUPERCOP database
at the time of benchmarking did not list constant time
as a goal for this implementation.
The symbol
T!!!
means that constant time was listed as a goal for this implementation,
but that the implementation failed TIMECOP.
(TIMECOP failures are not necessarily security issues;
they can sometimes be resolved by, e.g., declaring that a rejection-sampling condition is safe to declassify.)
There is a
separate page
with more information about each stream cipher and each implementation.
Designers and implementors
interested in submitting new stream ciphers and new implementations
should read the call for submissions.
Test results
Graphs:
old
(bytes,cycles)
Cycles/byte for long messages |
25% | 50% | 75% | stream |
1.21 | 1.21 | 1.21 | tango642 |
2.82 | 2.82 | 2.83 | chacha8 |
2.84 | 2.90 | 2.95 | T:hc128 |
3.44 | 3.44 | 3.44 | salsa208 |
3.48 | 3.49 | 3.50 | T:tpy6 |
3.59 | 3.61 | 3.62 | T:tpy |
3.96 | 3.96 | 3.96 | chacha12 |
4.01 | 4.03 | 4.03 | T:nlsv2 |
4.03 | 4.06 | 4.08 | T:sosemanuk |
4.09 | 4.13 | 4.20 | T:snow20 |
4.12 | 4.14 | 4.25 | T:hc256 |
4.18 | 4.19 | 4.19 | T:trivium |
4.31 | 4.34 | 4.39 | T:panama |
4.46 | 4.47 | 4.47 | T:rabbit |
4.80 | 4.81 | 4.81 | salsa2012 |
4.96 | 4.97 | 4.97 | T:lexv2 |
5.40 | 5.40 | 5.58 | T:cryptmtv3 |
5.41? | 5.81? | 6.23? | T:tpypy |
6.23 | 6.24 | 6.24 | chacha20 |
7.48 | 7.48 | 7.51 | salsa20 |
7.47 | 7.49 | 7.50 | xsalsa20 |
10.22 | 10.23 | 10.26 | T:aes128estream |
19.36 | 19.39 | 19.41 | T:aes256estream |
27.72 | 27.83 | 28.18 | T:aes128ctr |
28.98 | 29.54 | 29.63 | T:ocelot1 |
30.96 | 31.24 | 32.37 | T:ocelot2 |
31.26 | 31.30 | 31.36 | T:aes192ctr |
34.86 | 34.98 | 35.06 | T:aes256ctr |
51.85 | 52.93 | 54.29 | T:amastrid |
|
Cycles/byte for 4096 bytes |
25% | 50% | 75% | stream |
1.46 | 1.46 | 1.46 | tango642 |
2.85 | 2.85 | 2.85 | chacha8 |
3.46 | 3.46 | 3.46 | salsa208 |
3.98 | 3.98 | 3.98 | chacha12 |
4.24 | 4.25 | 4.31 | T:snow20 |
4.28 | 4.29 | 4.29 | T:nlsv2 |
4.31 | 4.32 | 4.33 | T:sosemanuk |
4.35 | 4.35 | 4.36 | T:trivium |
4.47 | 4.47 | 4.47 | T:tpy6 |
4.59 | 4.59 | 4.59 | T:rabbit |
4.84 | 4.84 | 4.84 | salsa2012 |
5.13 | 5.13 | 5.13 | T:lexv2 |
5.61 | 5.62 | 5.62 | T:tpy |
5.63 | 5.64 | 5.67 | T:panama |
6.21 | 6.21 | 6.25 | T:cryptmtv3 |
6.26 | 6.27 | 6.27 | chacha20 |
7.51 | 7.51 | 7.53 | salsa20 |
7.51 | 7.55 | 7.57 | T:hc128 |
7.64 | 7.65 | 7.65 | xsalsa20 |
7.85 | 8.14 | 8.15 | T:tpypy |
10.31 | 10.32 | 10.32 | T:aes128estream |
16.42 | 16.43 | 16.50 | T:hc256 |
19.50 | 19.51 | 19.52 | T:aes256estream |
28.26 | 28.34 | 28.59 | T:aes128ctr |
31.25 | 31.54 | 31.55 | T:ocelot1 |
31.80 | 31.80 | 31.83 | T:aes192ctr |
33.45 | 33.58 | 34.22 | T:ocelot2 |
35.51 | 35.51 | 35.57 | T:aes256ctr |
54.59 | 55.35 | 56.17 | T:amastrid |
|
Cycles/byte for 1536 bytes |
25% | 50% | 75% | stream |
1.88 | 1.88 | 1.88 | tango642 |
2.89 | 2.89 | 2.89 | chacha8 |
3.50 | 3.50 | 3.50 | salsa208 |
4.03 | 4.03 | 4.03 | chacha12 |
4.45 | 4.46 | 4.50 | T:snow20 |
4.63 | 4.63 | 4.64 | T:trivium |
4.79 | 4.80 | 4.80 | T:rabbit |
4.83 | 4.84 | 4.84 | T:sosemanuk |
4.88 | 4.89 | 4.89 | salsa2012 |
5.00 | 5.01 | 5.02 | T:nlsv2 |
5.40 | 5.40 | 5.40 | T:lexv2 |
6.09 | 6.11 | 6.11 | T:tpy6 |
6.31 | 6.32 | 6.32 | chacha20 |
7.56 | 7.57 | 7.57 | salsa20 |
7.79 | 7.82 | 7.83 | T:panama |
7.91 | 7.91 | 7.92 | xsalsa20 |
8.27 | 8.27 | 8.27 | T:cryptmtv3 |
8.96 | 8.97 | 8.99 | T:tpy |
10.41 | 10.45 | 10.45 | T:aes128estream |
11.22 | 12.01 | 12.02 | T:tpypy |
15.24 | 15.28 | 15.30 | T:hc128 |
19.68 | 19.73 | 19.76 | T:aes256estream |
29.10 | 29.16 | 29.22 | T:aes128ctr |
32.61 | 32.71 | 32.89 | T:aes192ctr |
34.72 | 34.83 | 35.04 | T:ocelot1 |
36.44 | 36.53 | 36.65 | T:aes256ctr |
36.88 | 36.90 | 36.96 | T:hc256 |
37.10 | 37.78 | 38.03 | T:ocelot2 |
59.78 | 60.46 | 60.57 | T:amastrid |
|
Cycles/byte for 576 bytes |
25% | 50% | 75% | stream |
2.97 | 2.97 | 2.99 | tango642 |
3.28 | 3.30 | 3.31 | chacha8 |
3.62 | 3.62 | 3.63 | salsa208 |
4.59 | 4.59 | 4.59 | chacha12 |
4.96 | 4.99 | 5.07 | T:snow20 |
5.28 | 5.28 | 5.29 | salsa2012 |
5.35 | 5.35 | 5.36 | T:rabbit |
5.37 | 5.37 | 5.39 | T:trivium |
6.14 | 6.16 | 6.16 | T:lexv2 |
6.28 | 6.28 | 6.33 | T:sosemanuk |
6.48 | 6.48 | 6.51 | T:nlsv2 |
7.27 | 7.27 | 7.28 | chacha20 |
8.17 | 8.17 | 8.19 | salsa20 |
9.02 | 9.06 | 9.06 | xsalsa20 |
8.91 | 9.29 | 9.29 | T:cryptmtv3 |
10.46 | 10.47 | 10.50 | T:tpy6 |
10.72 | 10.78 | 10.84 | T:aes128estream |
13.58 | 13.61 | 13.65 | T:panama |
17.88 | 17.88 | 17.90 | T:tpy |
20.25 | 20.28 | 20.39 | T:aes256estream |
20.24 | 22.39 | 22.40 | T:tpypy |
31.31 | 31.35 | 31.42 | T:aes128ctr |
34.86 | 34.96 | 34.99 | T:aes192ctr |
35.93 | 36.00 | 36.03 | T:hc128 |
38.65 | 38.76 | 39.09 | T:aes256ctr |
44.14 | 44.62 | 44.69 | T:ocelot1 |
46.41 | 46.51 | 47.50 | T:ocelot2 |
68.18 | 68.61 | 68.76 | T:amastrid |
91.46 | 91.46 | 91.51 | T:hc256 |
|
Cycles/byte for 64 bytes |
25% | 50% | 75% | stream |
4.62 | 4.62 | 4.62 | salsa208 |
6.56 | 6.56 | 6.75 | chacha8 |
8.53 | 8.53 | 8.53 | salsa2012 |
9.23 | 9.25 | 9.27 | chacha12 |
11.75 | 11.78 | 11.80 | T:snow20 |
12.12 | 12.16 | 12.16 | T:rabbit |
13.00 | 13.00 | 13.06 | salsa20 |
14.31 | 14.52 | 14.69 | T:aes128estream |
14.56 | 14.58 | 14.77 | T:trivium |
14.61 | 14.61 | 14.62 | chacha20 |
15.06 | 15.23 | 15.25 | T:lexv2 |
16.62 | 16.64 | 16.84 | tango642 |
20.45 | 20.45 | 20.95 | T:cryptmtv3 |
20.81 | 20.81 | 20.88 | xsalsa20 |
22.44 | 22.45 | 22.48 | T:sosemanuk |
27.28 | 27.33 | 27.41 | T:aes256estream |
32.66 | 32.95 | 33.02 | T:nlsv2 |
59.66 | 59.94 | 60.03 | T:aes128ctr |
63.03 | 63.19 | 64.89 | T:aes192ctr |
65.72 | 65.94 | 66.47 | T:tpy6 |
68.47 | 71.95 | 75.56 | T:aes256ctr |
87.17 | 87.52 | 87.55 | T:panama |
131.73 | 131.84 | 132.12 | T:tpy |
135.30? | 135.38? | 154.94? | T:tpypy |
164.72 | 165.06 | 165.77 | T:ocelot1 |
165.41 | 167.12 | 168.84 | T:ocelot2 |
197.89 | 199.80 | 200.89 | T:amastrid |
299.81 | 299.81 | 299.94 | T:hc128 |
789.81 | 789.97 | 790.41 | T:hc256 |
|
Cycles/byte for 8 bytes |
25% | 50% | 75% | stream |
42.38 | 42.38 | 42.50 | salsa208 |
54.88 | 54.88 | 55.25 | T:aes128estream |
56.00 | 58.75 | 59.75 | chacha8 |
71.00 | 71.00 | 71.00 | salsa2012 |
72.62 | 72.62 | 72.75 | T:rabbit |
78.38 | 78.88 | 82.25 | chacha12 |
87.50 | 87.62 | 89.12 | T:trivium |
87.38 | 87.75 | 88.38 | T:lexv2 |
91.62 | 92.25 | 93.12 | T:snow20 |
102.88 | 103.62 | 105.12 | T:aes256estream |
108.38 | 108.50 | 108.75 | salsa20 |
111.75 | 111.88 | 112.62 | T:cryptmtv3 |
119.25 | 120.25 | 121.50 | chacha20 |
124.12 | 124.25 | 125.88 | tango642 |
147.25 | 147.25 | 147.50 | T:nlsv2 |
168.75 | 169.12 | 169.38 | xsalsa20 |
177.12 | 177.50 | 177.88 | T:sosemanuk |
305.50 | 309.50 | 324.88 | T:aes128ctr |
329.00 | 331.00 | 336.00 | T:aes192ctr |
348.50? | 350.00? | 389.88? | T:aes256ctr |
502.38 | 506.00 | 538.62 | T:tpy6 |
686.25 | 693.25 | 694.12 | T:panama |
1029.25 | 1031.88 | 1033.38 | T:tpy |
1046.75 | 1048.12 | 1048.50 | T:tpypy |
1105.50 | 1109.12 | 1110.25 | T:ocelot1 |
1113.38 | 1119.38 | 1132.50 | T:ocelot2 |
1335.00 | 1345.12 | 1366.38 | T:amastrid |
2397.50 | 2397.62 | 2397.88 | T:hc128 |
6311.88 | 6313.88 | 6315.25 | T:hc256 |
|
|