VAMPIRE

eBACS: ECRYPT Benchmarking of Cryptographic Systems


ECRYPT II
General information:IntroductioneBASHeBASCeBAEADeBATSSUPERCOPXBXComputersArch
How to submit new software:Tipshashstreamaeaddhkemencryptsign
List of primitives measured:lwcsha3hashstreamlwccaesaraeaddhkemencryptsign
Measurements:lwcsha3hashstreamlwccaesaraeaddhkemencryptsign
List of subroutines:verifydecodeencodesortcorehashblocksxofscalarmult

Measurements of stream ciphers on one machine: riscv64; U54 (sifive,u54-mc); 2017 SiFive Freedom U540; 4 x 1000MHz; riscvunleashed000, supercop-20240107

[Page version: 20240726 23:46:00]

eBASC (ECRYPT Benchmarking of Stream Ciphers) is a project to measure the performance of stream ciphers. This page presents benchmark results collected in eBASC:

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.


Implementation notes

Graphs: (bytes,cycles)
Cycles/byte for long messages
25%50%75%stream
9.129.129.14tango642
11.7011.7111.73T:nlsv2
13.3813.3913.42T:tpy
13.6213.6413.65T:tpy6
15.3115.3415.66T:cryptmtv3
16.5016.5016.50chacha8
16.9516.9516.98salsa208
18.3618.4818.61T:sosemanuk
19.0019.3519.53T:panama
20.7721.1022.15T:tpypy
21.8421.8421.86chacha12
22.4522.4622.46salsa2012
32.5832.5832.58chacha20
32.6832.6932.71xsalsa20
32.8332.8332.85salsa20
47.1947.2547.27T:aes128estream
67.9968.0168.08T:aes256estream
78.8778.9979.22T:ocelot1
81.0881.1481.31T:ocelot2
93.3493.6694.89T:aes128ctr
105.32106.01107.15T:aes192ctr
117.72118.35119.73T:aes256ctr
135.25?155.19?157.73?T:amastrid
Cycles/byte for 4096 bytes
25%50%75%stream
9.809.819.82tango642
12.4712.4712.48T:nlsv2
15.5015.5115.51T:tpy6
16.5716.5716.57chacha8
17.0217.0217.04salsa208
17.0217.0417.28T:cryptmtv3
18.5018.5018.53T:tpy
20.1820.2220.27T:sosemanuk
21.9221.9221.93chacha12
22.5322.5322.54salsa2012
23.6923.7123.83T:panama
26.1826.4227.20T:tpypy
32.6532.6532.65chacha20
32.9032.9132.92salsa20
33.2533.2633.27xsalsa20
47.4947.4947.50T:aes128estream
68.3168.3168.37T:aes256estream
83.7983.8583.99T:ocelot1
85.9585.9786.08T:ocelot2
95.5495.7296.61T:aes128ctr
107.93108.20108.97T:aes192ctr
120.35120.53121.51T:aes256ctr
146.25160.83161.79T:amastrid
Cycles/byte for 1536 bytes
25%50%75%stream
10.9410.9410.95tango642
14.2414.2514.27T:nlsv2
16.6916.6916.70chacha8
17.1417.1417.14salsa208
18.6218.6218.65T:tpy6
20.5420.5520.56T:cryptmtv3
22.0422.0422.04chacha12
22.6622.6722.67salsa2012
23.4123.5123.66T:sosemanuk
27.0327.0327.04T:tpy
30.9030.9230.99T:panama
32.7732.7732.79chacha20
33.0233.0333.04salsa20
34.2134.2134.34xsalsa20
35.1535.1635.21T:tpypy
47.8647.8947.99T:aes128estream
68.7968.8068.83T:aes256estream
91.7791.9492.01T:ocelot1
93.9593.9994.03T:ocelot2
99.08?99.88?114.63?T:aes128ctr
111.57111.76113.02T:aes192ctr
123.90123.96124.89T:aes256ctr
158.90?167.15?184.84?T:amastrid
Cycles/byte for 576 bytes
25%50%75%stream
13.9513.9513.96tango642
16.9916.9916.99chacha8
17.4517.4617.46salsa208
18.2818.3118.35T:nlsv2
22.3522.3522.35chacha12
22.9922.9923.01salsa2012
23.8623.8623.93T:cryptmtv3
26.8826.8926.92T:tpy6
32.3632.6432.87T:sosemanuk
33.0833.0933.09chacha20
33.3433.3433.38salsa20
36.8436.8436.86xsalsa20
48.9448.9749.03T:aes128estream
49.7949.8149.84T:tpy
50.1550.2350.49T:panama
59.1559.1859.25T:tpypy
70.2170.2170.28T:aes256estream
108.48108.65109.06T:aes128ctr
113.14113.22113.36T:ocelot1
115.22115.28115.33T:ocelot2
121.05121.16121.63T:aes192ctr
133.64133.95134.91T:aes256ctr
185.69196.24197.20T:amastrid
Cycles/byte for 64 bytes
25%50%75%stream
20.9120.9120.91chacha8
21.4521.4521.45salsa208
26.2526.2526.25chacha12
27.2827.3027.41salsa2012
36.9836.9836.98chacha20
37.4537.4737.59salsa20
52.3652.3952.48tango642
55.0055.0855.45T:cryptmtv3
62.7262.7562.80T:aes128estream
68.8868.8968.89xsalsa20
81.9882.1982.80T:nlsv2
88.3188.3388.64T:aes256estream
127.50129.36131.58T:sosemanuk
132.70132.75133.03T:tpy6
231.08232.58233.61T:aes128ctr
244.17245.95249.97T:aes192ctr
258.33259.66263.44T:aes256ctr
296.16297.09300.08T:panama
340.98341.09341.30T:tpy
366.03366.17366.42T:tpypy
383.77384.42384.95T:ocelot1
387.05387.94388.66T:ocelot2
543.52552.28553.12T:amastrid
Cycles/byte for 8 bytes
25%50%75%stream
162.12162.12163.00chacha8
166.00166.00166.00salsa208
205.38206.25206.38chacha12
228.38230.38233.50T:aes128estream
234.50236.88237.25salsa2012
291.25291.75292.12chacha20
309.62310.12312.88T:aes256estream
313.50314.38319.25T:cryptmtv3
317.12318.62319.25salsa20
356.88357.12359.88tango642
417.00418.00421.50T:nlsv2
568.00570.25570.50xsalsa20
965.75965.88968.38T:tpy6
1004.251007.881026.38T:sosemanuk
1259.381273.251315.00T:aes128ctr
1296.501313.121336.75T:aes192ctr
1338.121347.881394.50T:aes256ctr
2296.252298.002306.38T:panama
2512.002517.382523.50T:ocelot1
2519.382523.122526.75T:ocelot2
2633.252634.252636.25T:tpy
2783.122783.622785.75T:tpypy
3538.253617.123632.12T:amastrid