Time | Relative time | Primitive | Implementation | Compiler |
9467800 | 1.00 | claus | crypto_dh/claus/gmp | g++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer (4.6.3) |
10371332 | 1.10 | claus | crypto_dh/claus/cryptopp | clang++ -O3 -fomit-frame-pointer |
11592124 | 1.22 | claus | crypto_dh/claus/openssl | gcc -m64 -march=core2 -O2 -fomit-frame-pointer |
11842100 | 1.25 | claus | crypto_dh/claus/ntl | g++ -m64 -march=native -mtune=native -O3 -fomit-frame-pointer |
670380 | 1.00 | curve2251 | crypto_dh/curve2251/relic/amd64-clmul | gcc -m64 -O3 -fomit-frame-pointer (4.6.3) |
1263980 | 1.89 | curve2251 | crypto_dh/curve2251/relic/amd64-ssse3 | gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer |
3635336 | 5.42 | curve2251 | crypto_dh/curve2251/mpfq | gcc -funroll-loops -march=nocona -O -fomit-frame-pointer |
| | curve2251 | crypto_dh/curve2251/relic/amd64-avx | gcc -m64 -O3 -fomit-frame-pointer (4.6.3) |
911136 | 1.00 | curve25519 | crypto_dh/curve25519/ref | gcc -m64 -march=barcelona -O3 -fomit-frame-pointer (4.6.3) |
1435808 | 1.58 | curve25519 | crypto_dh/curve25519/mpfq | gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer |
784976 | 1.00 | ecfp256e | crypto_dh/ecfp256e/v01/w8s8 | gcc -m64 -O3 -fomit-frame-pointer (4.6.3) |
793892 | 1.01 | ecfp256e | crypto_dh/ecfp256e/v01/w8s4 | gcc -fno-schedule-insns -O3 -fomit-frame-pointer |
811256 | 1.03 | ecfp256e | crypto_dh/ecfp256e/v01/w8s2 | gcc -fno-schedule-insns -O3 -fomit-frame-pointer |
846580 | 1.08 | ecfp256e | crypto_dh/ecfp256e/v01/w8s1 | gcc -march=nocona -O3 -fomit-frame-pointer |
1311188 | 1.67 | ecfp256e | crypto_dh/ecfp256e/v01/var | gcc -march=nocona -O3 -fomit-frame-pointer |
951688 | 1.00 | ecfp256h | crypto_dh/ecfp256h/v01/w8s8 | gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer (4.6.3) |
960492 | 1.01 | ecfp256h | crypto_dh/ecfp256h/v01/w8s4 | gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer (4.6.3) |
978428 | 1.03 | ecfp256h | crypto_dh/ecfp256h/v01/w8s2 | gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer (4.6.3) |
1017420 | 1.07 | ecfp256h | crypto_dh/ecfp256h/v01/w8s1 | gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer (4.6.3) |
1619524 | 1.70 | ecfp256h | crypto_dh/ecfp256h/v01/var | gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer |
1379760 | 1.00 | ecfp256i | crypto_dh/ecfp256i/v01/var | gcc -fno-schedule-insns -O3 -fomit-frame-pointer (4.6.3) |
| | ecfp256i | crypto_dh/ecfp256i/v01/w8s1 | gcc -m64 -O3 -fomit-frame-pointer |
| | ecfp256i | crypto_dh/ecfp256i/v01/w8s2 | gcc -m64 -O3 -fomit-frame-pointer |
| | ecfp256i | crypto_dh/ecfp256i/v01/w8s4 | gcc -m64 -O3 -fomit-frame-pointer |
| | ecfp256i | crypto_dh/ecfp256i/v01/w8s8 | gcc -m64 -O3 -fomit-frame-pointer |
825176 | 1.00 | ecfp256q | crypto_dh/ecfp256q/v01/w8s8 | gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer (4.6.3) |
832908 | 1.01 | ecfp256q | crypto_dh/ecfp256q/v01/w8s4 | gcc -m64 -march=core2 -O3 -fomit-frame-pointer |
848536 | 1.03 | ecfp256q | crypto_dh/ecfp256q/v01/w8s2 | gcc -funroll-loops -m64 -O3 -fomit-frame-pointer |
882976 | 1.07 | ecfp256q | crypto_dh/ecfp256q/v01/w8s1 | gcc -m64 -march=corei7 -O3 -fomit-frame-pointer |
1342108 | 1.63 | ecfp256q | crypto_dh/ecfp256q/v01/var | gcc -march=nocona -O3 -fomit-frame-pointer |
987648 | 1.00 | ecfp256s | crypto_dh/ecfp256s/v01/w8s8 | gcc -m64 -march=nocona -O3 -fomit-frame-pointer (4.6.3) |
997076 | 1.01 | ecfp256s | crypto_dh/ecfp256s/v01/w8s4 | gcc -O3 -fomit-frame-pointer |
1015168 | 1.03 | ecfp256s | crypto_dh/ecfp256s/v01/w8s2 | gcc -m64 -march=nocona -O3 -fomit-frame-pointer (4.6.3) |
1055388 | 1.07 | ecfp256s | crypto_dh/ecfp256s/v01/w8s1 | gcc -O3 -fomit-frame-pointer |
1687960 | 1.71 | ecfp256s | crypto_dh/ecfp256s/v01/var | gcc -march=nocona -O3 -fomit-frame-pointer |
2189768 | 1.00 | ed448goldilocks | crypto_dh/ed448goldilocks/amd64 (2014-10-12) | clang -O3 -fomit-frame-pointer (4.2.1 Compatible Ubuntu Clang 3.0 (tags/RELEASE 30/final)) |
2656992 | 1.21 | ed448goldilocks | crypto_dh/ed448goldilocks/64 | gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer |
4406636 | 2.01 | ed448goldilocks | crypto_dh/ed448goldilocks/arm32 | clang -O3 -fwrapv -march=native -fomit-frame-pointer |
6480024 | 2.96 | ed448goldilocks | crypto_dh/ed448goldilocks/32 | clang -O3 -fomit-frame-pointer (4.2.1 Compatible Ubuntu Clang 3.0 (tags/RELEASE 30/final)) |
| | ed448goldilocks | crypto_dh/ed448goldilocks/neon | gcc -m64 -O3 -fomit-frame-pointer |
772804 | 1.00 | gls1271 | crypto_dh/gls1271/ref4 | gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer (4.6.3) |
382056 | 1.00 | gls254 | crypto_dh/gls254/ref | gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer (4.6.3) |
539392 | 1.41 | gls254 | crypto_dh/gls254/prot | gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer (4.6.3) |
539448 | 1.00 | gls254prot | crypto_dh/gls254prot/prot | gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer (4.6.3) |
763292 | 1.00 | hecfp127i | crypto_dh/hecfp127i/v02/w8s32 | gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer (4.6.3) |
765128 | 1.00 | hecfp127i | crypto_dh/hecfp127i/v02/w8s16 | gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer |
768260 | 1.01 | hecfp127i | crypto_dh/hecfp127i/v02/w8s08 | gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer |
777292 | 1.02 | hecfp127i | crypto_dh/hecfp127i/v02/w8s04 | gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer |
794612 | 1.04 | hecfp127i | crypto_dh/hecfp127i/v02/w8s02 | gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer (4.6.3) |
829192 | 1.09 | hecfp127i | crypto_dh/hecfp127i/v02/w8s01 | gcc -fno-schedule-insns -O3 -fomit-frame-pointer |
1361864 | 1.78 | hecfp127i | crypto_dh/hecfp127i/v02/var | gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer |
683988 | 1.00 | hecfp128bk | crypto_dh/hecfp128bk/v02/w8s32glv4 | gcc -march=k8 -O3 -fomit-frame-pointer (4.6.3) |
687584 | 1.01 | hecfp128bk | crypto_dh/hecfp128bk/v02/w8s16glv4 | gcc -march=barcelona -O2 -fomit-frame-pointer |
693068 | 1.01 | hecfp128bk | crypto_dh/hecfp128bk/v02/w8s08glv4 | gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer |
707312 | 1.03 | hecfp128bk | crypto_dh/hecfp128bk/v02/w8s04glv4 | gcc -m64 -O3 -fomit-frame-pointer |
733556 | 1.07 | hecfp128bk | crypto_dh/hecfp128bk/v02/w8s02glv4 | gcc -fno-schedule-insns -O3 -fomit-frame-pointer |
790692 | 1.16 | hecfp128bk | crypto_dh/hecfp128bk/v02/w8s01glv4 | gcc -march=nocona -O3 -fomit-frame-pointer |
1075404 | 1.57 | hecfp128bk | crypto_dh/hecfp128bk/v02/varglv4 | gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer |
682472 | 1.00 | hecfp128fkt | crypto_dh/hecfp128fkt/v02/w8s32glv4 | gcc -m64 -march=nocona -O3 -fomit-frame-pointer (4.6.3) |
684812 | 1.00 | hecfp128fkt | crypto_dh/hecfp128fkt/v02/w8s16glv4 | gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer |
691848 | 1.01 | hecfp128fkt | crypto_dh/hecfp128fkt/v02/w8s08glv4 | gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer |
704764 | 1.03 | hecfp128fkt | crypto_dh/hecfp128fkt/v02/w8s04glv4 | gcc -funroll-loops -O2 -fomit-frame-pointer |
733456 | 1.07 | hecfp128fkt | crypto_dh/hecfp128fkt/v02/w8s02glv4 | gcc -fno-schedule-insns -O3 -fomit-frame-pointer |
789460 | 1.16 | hecfp128fkt | crypto_dh/hecfp128fkt/v02/w8s01glv4 | gcc -march=k8 -O2 -fomit-frame-pointer |
1072240 | 1.57 | hecfp128fkt | crypto_dh/hecfp128fkt/v02/varglv4 | gcc -march=k8 -O3 -fomit-frame-pointer |
1332128 | 1.00 | hecfp128i | crypto_dh/hecfp128i/v02/w8s32 | gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer (4.6.3) |
1335760 | 1.00 | hecfp128i | crypto_dh/hecfp128i/v02/w8s16 | gcc -funroll-loops -O -fomit-frame-pointer |
1342332 | 1.01 | hecfp128i | crypto_dh/hecfp128i/v02/w8s08 | gcc -funroll-loops -m64 -O -fomit-frame-pointer |
1356904 | 1.02 | hecfp128i | crypto_dh/hecfp128i/v02/w8s04 | gcc -funroll-loops -m64 -O -fomit-frame-pointer |
1386796 | 1.04 | hecfp128i | crypto_dh/hecfp128i/v02/w8s02 | gcc -funroll-loops -m64 -O -fomit-frame-pointer |
1445872 | 1.09 | hecfp128i | crypto_dh/hecfp128i/v02/w8s01 | gcc -funroll-loops -O -fomit-frame-pointer |
2372400 | 1.78 | hecfp128i | crypto_dh/hecfp128i/v02/var | gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer |
| | hecfp61e2bk | crypto_dh/hecfp61e2bk/v01/varglv8 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp61e2bk | crypto_dh/hecfp61e2bk/v01/w8s01glv8 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp61e2bk | crypto_dh/hecfp61e2bk/v01/w8s02glv8 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp61e2bk | crypto_dh/hecfp61e2bk/v01/w8s04glv8 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp61e2bk | crypto_dh/hecfp61e2bk/v01/w8s08glv8 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp61e2bk | crypto_dh/hecfp61e2bk/v01/w8s16glv8 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp61e2bk | crypto_dh/hecfp61e2bk/v01/w8s32glv8 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp61e2i | crypto_dh/hecfp61e2i/v01/var | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp61e2i | crypto_dh/hecfp61e2i/v01/w8s01 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp61e2i | crypto_dh/hecfp61e2i/v01/w8s02 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp61e2i | crypto_dh/hecfp61e2i/v01/w8s04 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp61e2i | crypto_dh/hecfp61e2i/v01/w8s08 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp61e2i | crypto_dh/hecfp61e2i/v01/w8s16 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp61e2i | crypto_dh/hecfp61e2i/v01/w8s32 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp64e2bk | crypto_dh/hecfp64e2bk/v01/varglv8 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp64e2bk | crypto_dh/hecfp64e2bk/v01/w8s01glv8 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp64e2bk | crypto_dh/hecfp64e2bk/v01/w8s02glv8 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp64e2bk | crypto_dh/hecfp64e2bk/v01/w8s04glv8 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp64e2bk | crypto_dh/hecfp64e2bk/v01/w8s08glv8 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp64e2bk | crypto_dh/hecfp64e2bk/v01/w8s16glv8 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp64e2bk | crypto_dh/hecfp64e2bk/v01/w8s32glv8 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp64e2i | crypto_dh/hecfp64e2i/v01/var | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp64e2i | crypto_dh/hecfp64e2i/v01/w8s01 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp64e2i | crypto_dh/hecfp64e2i/v01/w8s02 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp64e2i | crypto_dh/hecfp64e2i/v01/w8s04 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp64e2i | crypto_dh/hecfp64e2i/v01/w8s08 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp64e2i | crypto_dh/hecfp64e2i/v01/w8s16 | gcc -m64 -O3 -fomit-frame-pointer |
| | hecfp64e2i | crypto_dh/hecfp64e2i/v01/w8s32 | gcc -m64 -O3 -fomit-frame-pointer |
2731208 | 1.00 | hector | crypto_dh/hector/ref | clang -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer (4.2.1 Compatible Ubuntu Clang 3.0 (tags/RELEASE 30/final)) |
673016 | 1.00 | kumfp127g | crypto_dh/kumfp127g/v02/var | gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer (4.6.3) |
1111368 | 1.00 | kumfp128g | crypto_dh/kumfp128g/v02/var | gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer (4.6.3) |
| | kumfp61e2g | crypto_dh/kumfp61e2g/v01/var | gcc -m64 -O3 -fomit-frame-pointer |
| | kumfp64e2g | crypto_dh/kumfp64e2g/v01/var | gcc -m64 -O3 -fomit-frame-pointer |
1218216 | 1.00 | kummer | crypto_dh/kummer/ref | clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer (4.2.1 Compatible Ubuntu Clang 3.0 (tags/RELEASE 30/final)) |
3367256 | 1.00 | nistp256 | crypto_dh/nistp256/ref | gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer (4.6.3) |
3907200 | 1.16 | nistp256 | crypto_dh/nistp256/wbl | clang -O3 -fwrapv -march=native -fomit-frame-pointer |
1600292 | 1.00 | sclaus1024 | crypto_dh/sclaus1024/gmp | g++ -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer (4.6.3) |
1840436 | 1.15 | sclaus1024 | crypto_dh/sclaus1024/cryptopp | g++ -m64 -march=native -mtune=native -O3 -fomit-frame-pointer |
8067148 | 1.00 | sclaus2048 | crypto_dh/sclaus2048/gmp | g++ -m64 -march=barcelona -O3 -fomit-frame-pointer (4.6.3) |
9292220 | 1.15 | sclaus2048 | crypto_dh/sclaus2048/cryptopp | clang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer |
1527300 | 1.00 | surf127eps | crypto_dh/surf127eps/mpfq | clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer (4.2.1 Compatible Ubuntu Clang 3.0 (tags/RELEASE 30/final)) |
2740048 | 1.00 | surf2113 | crypto_dh/surf2113/mpfq | clang -O3 -fwrapv -march=native -fomit-frame-pointer (4.2.1 Compatible Ubuntu Clang 3.0 (tags/RELEASE 30/final)) |