Implementation comparison: crypto_dh/curve2251

Operationcrypto_dh
Primitivecurve2251
Description Elliptic-curve Diffie--Hellman secret sharing using a curve over a field with 2^251 elements
Designers Pierrick Gaudry (Laboratoire Lorrain de Recherche en Informatique et ses Applications)
Emmanuel Thomé (Laboratoire Lorrain de Recherche en Informatique et ses Applications)
Implementations mpfq Pierrick Gaudry, Laboratoire Lorrain de Recherche en Informatique et ses Applications
Emmanuel Thomé, Laboratoire Lorrain de Recherche en Informatique et ses Applications
relic/amd64-avx Diego de Freitas Aranha, Department of Computer Science, University of Brasília, Brazil
Jonathan Taverne, Université de Lyon, Université Lyon1, ISFA, France
Armando Faz-Hernández, Computer Science Department, CINVESTAV-IPN, Mexico
Francisco Rodríguez-Henríquez, Computer Science Department, CINVESTAV-IPN, Mexico
Darrel Hankerson, Auburn University, USA
Julio López, Institute of Computing, University of Campinas, Brazil
relic/amd64-clmul Diego de Freitas Aranha, Department of Computer Science, University of Brasília, Brazil
Jonathan Taverne, Université de Lyon, Université Lyon1, ISFA, France
Armando Faz-Hernández, Computer Science Department, CINVESTAV-IPN, Mexico
Francisco Rodríguez-Henríquez, Computer Science Department, CINVESTAV-IPN, Mexico
Darrel Hankerson, Auburn University, USA
Julio López, Institute of Computing, University of Campinas, Brazil
relic/amd64-ssse3 Diego de Freitas Aranha, Department of Computer Science, University of Brasília, Brazil
Julio López, Institute of Computing, University of Campinas, Brazil
Darrel Hankerson, Auburn University, USA

amd64 Bobcat amd64 K10 45nm amd64 K10 32nm amd64 Bulldozer amd64 Zen amd64 Zen 2 amd64 Zen 3 amd64 Zen 4 amd64 Raptor Cove amd64 Golden Cove amd64 Tiger Lake amd64 Ice Lake amd64 Comet Lake amd64 Coffee Lake amd64 Kaby Lake amd64 Skylake amd64 Broadwell+AES amd64 Haswell+AES amd64 Ivy Bridge+AES amd64 Sandy Bridge+AES amd64 Sandy Bridge amd64 Core 2 45nm amd64 Core 2 65nm amd64 Gracemont amd64 Tremont amd64 Goldmont Plus amd64 Goldmont amd64 Airmont amd64 Silvermont amd64 Bonnell riscv64 U54 mipso32 Octeon II armeabi ARM1176 armeabi Cortex-A7 armeabi Cortex-A8 armeabi Cortex-A17 aarch64 Cortex-A53 aarch64 Cortex-A72 https://bench.cr.yp.to 20240719 implementations log2(trycycles) h8bobcat; 2 x 1650MHz; 2011 AMD G-T56N; 500f10 20240425 h3neo; 1 x 1700MHz; 2010 AMD Athlon II Neo K125; 100f63 20240425 hydra4; 4 x 2600MHz; 2011 AMD A6-3650; 300f10 20240625 hydra5; 4 x 2900MHz; 2011 AMD A8-3850; 300f10 20240625 saber214; 4 x 4000MHz; 2012 AMD FX-8350; 600f20 20240625 rumba5; 6 x 3200MHz; 2017 AMD Ryzen 5 1600; 800f11 20240716 rumba7; 8 x 3000MHz; 2017 AMD Ryzen 7 1700; 800f11 20240716 dali; 2 x 1400MHz; 2020 AMD Athlon Silver 3050e; 820f01 20240625 rumba3; 4 x 3100MHz; 2017 AMD Ryzen 3 1200; 800f11 20221122 renoir; 6 x 3600MHz; 2022 AMD Ryzen 5 4500U; 860f01 20240625 rome0; 64 x 2250MHz; 2019 AMD EPYC 7742; 830f10 20240716 lucienne; 4 x 2600MHz; 2021 AMD Ryzen 3 5300U; 860f81 20240625 beelink; 6 x 4062MHz; 2021 AMD Ryzen 5 5560U; a50f00 20221122 cezanne; 6 x 3900MHz; 2021 AMD Ryzen 5 PRO 5650G; a50f00 20240625 zen3; 16 x 3400MHz; 2020 AMD Ryzen 9 5950X; a20f10 20220213 hertz; 8 x 3800MHz; 2023 AMD Ryzen 7 7700; a60f12 20240716 raptor; 6 x 4800MHz; 2023 Intel Core i7-13700H, P cores; b06a2 20231107 alder; 4 x 3300MHz; 2022 Intel Core i3-12100; 90675-00 20240625 alder2,1f626960,5600000; 2 x 1600MHz; 2022 Intel Core i3-1215U, P cores; 906a4-40 20240625 panther; 4 x 2800MHz; 2020 Intel Core i7-1165G7; 806c1 20240625 icelake2; 4 x 1000MHz; 2019 Intel Core i3-1035G1; 706e5 20221005 comet; 2 x 2100MHz; 2019 Intel Core i3-10110U; 806ec 20240425 cubi10; 2 x 2100MHz; 2019 Intel Core i3-10110U; 806ec 20240625 r24000; 4 x 3300MHz; 2018 Intel Xeon E-2124; 906ea 20240107 kizomba; 4 x 3000MHz; 2017 Intel Xeon E3-1220 v6; 906e9 20240625 whosthere; 2 x 2400MHz; 2017 Intel Core i3-7100; 806e9 20221122 samba; 4 x 3000MHz; 2015 Intel Xeon E3-1220 v5; 506e3 20240625 bolero; 8 x 1700MHz; 2016 Intel Xeon E5-2609 v4; 406f1 20240625 shoe; 2 x 1900MHz; 2015 Intel Core i3-5005U; 306d4 20240425 speed2supercop; 4 x 3400MHz; 2013 Intel Core i7-4770; 306c3 20240625 hiphop; 4 x 3100MHz; 2013 Intel Xeon E3-1220 v3; 306c3 20231107 titan0; 4 x 3500MHz; 2013 Intel Xeon E3-1275 V3; 306c3 20240625 hunsnivy; 2 x 1800MHz; 2012 Intel Core i5-3427U; 306a9 20240625 hydra8; 4 x 3500MHz; 2012 Intel Xeon E3-1275 V2; 306a9 20240625 hydra7; 4 x 3100MHz; 2011 Intel Xeon E3-1225; 206a7 20240625 h6sandy; 2 x 2100MHz; 2011 Intel Core i3-2310M; 206a7 20240625 wolfdale; 2 x 3060MHz; 2009 Intel Core 2 Duo E7600; 1067a 20240425 trident; 2 x 2000MHz; 2007 Intel Core 2 Duo T7300; 6fb 20240425 margaux; 4 x 2404MHz; 2007 Intel Core 2 Quad Q6600; 6fb 20240425 alder2,1f626960,3300000; 4 x 1600MHz; 2022 Intel Core i3-1215U, E cores; 906a4-20 20240625 jasper; 4 x 1100MHz; 2021 Intel Pentium Silver N6000; 906c0 20240625 jasper3; 4 x 2000MHz; 2021 Intel Celeron N5105; 906c0 20240625 jasper2; 2 x 1100MHz; 2021 Intel Celeron N4500; 906c0 20240425 gemini; 2 x 1100MHz; 2019 Intel Celeron N4020; 706a8 20240425 wooden; 4 x 1500MHz; 2016 Intel Celeron J3455; 506c9 20240425 nucnuc; 4 x 1600MHz; 2015 Intel Pentium N3700; 406c3 20240425 cherry; 4 x 1440MHz; 2016 Intel Atom x5-Z8350; 406c4 20240625 h8atom; 2 x 1866MHz; 2011 Intel Atom D2500; 30661 20240425 h2atom; 1 x 1000MHz; 2010 Intel Atom N455; 106ca 20240107 riscvunleashed000; 4 x 1000MHz; 2017 SiFive Freedom U540; sifive,u54-mc 20240107 gcc23; 2 x 2000MHz; 2011 Cavium Octeon II CN6120; cnmips64v2 20230530 erpro8fsf2; 2 x 2000MHz; 2011 Cavium Octeon II CN6120; cnmips64v2 20220213 berry0; 1 x 1000MHz; 2011 Broadcom BCM2835; 410fb767 20240107 berry2; 4 x 900MHz; 2016 Broadcom BCM2836; 410fc075 20240425 bblack; 1 x 1000MHz; 2012 TI Sitara XAM3359AZCZ100; 413fc082 20240425 tinker; 4 x 1800MHz; 2014 Rockchip RK3288; 410fc0d1 20240107 pi3aplus; 4 x 1400MHz; 2018 Broadcom BCM2837B0; 410fd034 20240425 pi3bplus; 4 x 1400MHz; 2018 Broadcom BCM2837B0; 410fd034 20231107 pi4b; 4 x 1500MHz; 2019 Broadcom BCM2711; 410fd083 20240425 19 20 21 22 23 T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:mpfq T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-ssse3 T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-clmul T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx T:relic/amd64-avx crypto_dh curve2251

Details (compiler options, compilation failures, error messages, etc.)

amd64; Bobcat (500f10); 2011 AMD G-T56N; 2 x 1650MHz; h8bobcat, supercop-20240425
amd64; K10 45nm (100f63); 2010 AMD Athlon II Neo K125; 1 x 1700MHz; h3neo, supercop-20240425
amd64; K10 32nm (300f10); 2011 AMD A6-3650; 4 x 2600MHz; hydra4, supercop-20240625: 12x test failure, 24x compiler output
amd64; K10 32nm (300f10); 2011 AMD A8-3850; 4 x 2900MHz; hydra5, supercop-20240625: 12x test failure, 24x compiler output
amd64; Bulldozer (600f20); 2012 AMD FX-8350; 4 x 4000MHz; saber214, supercop-20240625: 36x compiler output
amd64; Zen (800f11); 2017 AMD Ryzen 5 1600; 6 x 3200MHz; rumba5, supercop-20240716: 20x compiler output, 16x namespace violation
amd64; Zen (800f11); 2017 AMD Ryzen 7 1700; 8 x 3000MHz; rumba7, supercop-20240716: 20x compiler output, 16x namespace violation
amd64; Zen (820f01); 2020 AMD Athlon Silver 3050e; 2 x 1400MHz; dali, supercop-20240625: 36x compiler output
amd64; Zen (800f11); 2017 AMD Ryzen 3 1200; 4 x 3100MHz; rumba3, supercop-20221122
amd64; Zen 2 (860f01); 2022 AMD Ryzen 5 4500U; 6 x 3600MHz; renoir, supercop-20240625: 36x compiler output
amd64; Zen 2 (830f10); 2019 AMD EPYC 7742; 64 x 2250MHz; rome0, supercop-20240716: 36x compiler output
amd64; Zen 2 (860f81); 2021 AMD Ryzen 3 5300U; 4 x 2600MHz; lucienne, supercop-20240625: 36x compiler output
amd64; Zen 3 (a20f10); 2020 AMD Ryzen 5 5600X; 6 x 3700MHz; unstable; spawn, supercop-20231215
amd64; Zen 3 (a50f00); 2021 AMD Ryzen 5 5560U; 6 x 4062MHz; beelink, supercop-20221122
amd64; Zen 3 (a50f00); 2021 AMD Ryzen 5 PRO 5650G; 6 x 3900MHz; cezanne, supercop-20240625: 36x compiler output
amd64; Zen 3 (a20f10); 2020 AMD Ryzen 9 5950X; 16 x 3400MHz; zen3, supercop-20220213
amd64; Zen 4 (a60f12); 2023 AMD Ryzen 7 7700; 8 x 3800MHz; hertz, supercop-20240716: 12x compiler output, 12x namespace violation
amd64; Raptor Cove (b06a2); 2023 Intel Core i7-13700H, P cores; 6 x 4800MHz; raptor, supercop-20231107
amd64; Golden Cove (90675-00); 2022 Intel Core i3-12100; 4 x 3300MHz; alder, supercop-20240625: 36x compiler output
amd64; Golden Cove (906a4-40); 2022 Intel Core i3-1215U, P cores; 2 x 1600MHz; alder2,1f626960,5600000, supercop-20240625: 36x compiler output
amd64; Tiger Lake (806c1); 2020 Intel Core i7-1165G7; 4 x 2800MHz; panther, supercop-20240625: 36x compiler output
amd64; Ice Lake (706e5); 2019 Intel Core i3-1035G1; 4 x 1000MHz; icelake2, supercop-20221005
amd64; Comet Lake (806ec); 2019 Intel Core i3-10110U; 2 x 2100MHz; comet, supercop-20240425
amd64; Comet Lake (806ec); 2019 Intel Core i3-10110U; 2 x 2100MHz; cubi10, supercop-20240625: 36x compiler output
amd64; Coffee Lake (906ea); 2018 Intel Xeon E-2124; 4 x 3300MHz; r24000, supercop-20240107
amd64; Kaby Lake (906e9); 2017 Intel Xeon E3-1220 v6; 4 x 3000MHz; kizomba, supercop-20240625: 36x compiler output
amd64; Kaby Lake (806e9); 2017 Intel Core i3-7100; 2 x 2400MHz; whosthere, supercop-20221122
amd64; Skylake (506e3); 2015 Intel Xeon E3-1220 v5; 4 x 3000MHz; samba, supercop-20240625: 36x compiler output
amd64; Broadwell+AES (406f1); 2016 Intel Xeon E5-2609 v4; 8 x 1700MHz; bolero, supercop-20240625: 36x compiler output
amd64; Broadwell+AES (306d4); 2015 Intel Core i3-5005U; 2 x 1900MHz; shoe, supercop-20240425
amd64; Haswell+AES (306c3); 2013 Intel Core i7-4770; 4 x 3400MHz; speed2supercop, supercop-20240625: 36x compiler output
amd64; Haswell+AES (306c3); 2013 Intel Xeon E3-1220 v3; 4 x 3100MHz; hiphop, supercop-20231107
amd64; Haswell+AES (306c3); 2013 Intel Xeon E3-1275 V3; 4 x 3500MHz; titan0, supercop-20240625: 36x compiler output
amd64; Ivy Bridge+AES (306a9); 2012 Intel Core i5-3427U; 2 x 1800MHz; hunsnivy, supercop-20240625: 36x compiler output
amd64; Ivy Bridge+AES (306a9); 2012 Intel Xeon E3-1275 V2; 4 x 3500MHz; hydra8, supercop-20240625: 36x compiler output
amd64; Sandy Bridge+AES (206d7); 2012 Intel Xeon E5-2660; 8 x 2200MHz; unstable; gcc123, supercop-20220213
amd64; Sandy Bridge+AES (206a7); 2011 Intel Xeon E3-1225; 4 x 3100MHz; hydra7, supercop-20240625: 16x compiler output
amd64; Sandy Bridge (206a7); 2011 Intel Core i3-2310M; 2 x 2100MHz; h6sandy, supercop-20240625: 36x compiler output
amd64; Core 2 45nm (1067a); 2009 Intel Core 2 Duo E7600; 2 x 3060MHz; wolfdale, supercop-20240425
amd64; Core 2 45nm (10676); 2007 Intel Xeon X5450; 8 x 2992MHz; unstable; gcc14, supercop-20220506
amd64; Core 2 65nm (6fb); 2007 Intel Core 2 Duo T7300; 2 x 2000MHz; trident, supercop-20240425
amd64; Core 2 65nm (6fb); 2007 Intel Core 2 Quad Q6600; 4 x 2404MHz; margaux, supercop-20240425
amd64; Gracemont (906a4-20); 2022 Intel Core i3-1215U, E cores; 4 x 1600MHz; alder2,1f626960,3300000, supercop-20240625: 36x compiler output
amd64; Tremont (906c0); 2021 Intel Pentium Silver N6000; 4 x 1100MHz; jasper, supercop-20240625: 4x test failure, 32x compiler output
amd64; Tremont (906c0); 2021 Intel Celeron N5105; 4 x 2000MHz; jasper3, supercop-20240625: 4x test failure, 32x compiler output
amd64; Tremont (906c0); 2021 Intel Celeron N4500; 2 x 1100MHz; jasper2, supercop-20240425
amd64; Goldmont Plus (706a8); 2019 Intel Celeron N4020; 2 x 1100MHz; gemini, supercop-20240425
amd64; Goldmont (506c9); 2016 Intel Celeron J3455; 4 x 1500MHz; wooden, supercop-20240425
amd64; Airmont (406c3); 2015 Intel Pentium N3700; 4 x 1600MHz; nucnuc, supercop-20240425
amd64; Silvermont (406c4); 2016 Intel Atom x5-Z8350; 4 x 1440MHz; cherry, supercop-20240625: 4x test failure, 32x compiler output
amd64; Bonnell (30661); 2011 Intel Atom D2500; 2 x 1866MHz; h8atom, supercop-20240425
amd64; Bonnell (106ca); 2010 Intel Atom N455; 1 x 1000MHz; h2atom, supercop-20240107