Skip to content

Benchmarks

Pascal Junod edited this page Nov 24, 2013 · 16 revisions

Software protection is inevitably linked with increased code size and slower performances. On this page, we publish benchmarks for various combinations of compilation flags.

OpenSSL

OpenSSL is the most widely deployed open-source cryptographic toolkit.

  • OpenSSL 1.0.1e, compiled with no obfuscation and standard compilation flags, C-only 64-bit implementations, run on an Intel Core i7 clocked @ 2.4 GHz.
OpenSSL 1.0.1e 11 Feb 2013
built on: Sun Nov 24 14:05:43 CET 2013
options:bn(64,64) rc4(ptr,char) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx) 
compiler: obfuscator-llvm/working_branch/obfuscator-llvm/build/bin/Release/clang -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -arch x86_64 -O3 -DL_ENDIAN -Wall
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
mdc2             10450.82k    12748.52k    13755.33k    14005.93k    14203.12k
md4              27248.45k    96638.50k   279214.93k   519984.13k   700391.42k
md5              23552.89k    78022.21k   202613.08k   337656.15k   412469.93k
hmac(md5)        37069.81k   111016.13k   251370.41k   362646.87k   420926.81k
sha1             21413.18k    66064.49k   148607.83k   235136.09k   290766.85k
rmd160           21309.08k    67215.81k   164454.49k   247258.45k   292099.41k
rc4             332297.13k   351840.43k   365429.42k   357199.19k   357253.12k
des cbc          64811.63k    66126.78k    67803.31k    67692.20k    66671.96k
des ede3         24516.60k    24958.23k    25100.03k    25250.47k    25171.29k
idea cbc         73158.38k    74576.09k    75967.66k    77267.09k    77381.63k
seed cbc         71983.39k    72445.91k    73584.21k    73431.38k    72663.04k
rc2 cbc          37102.64k    37653.50k    37897.73k    38077.44k    38180.18k
blowfish cbc    101456.64k   106090.73k   107352.06k   108227.93k   109370.05k
cast cbc        104081.62k   107719.83k   108543.74k   110250.33k   110968.83k
aes-128 cbc     166374.77k   170936.25k   172209.66k   174535.00k   172725.59k
aes-192 cbc     142979.93k   145100.86k   147934.55k   148022.27k   147606.19k
aes-256 cbc     125551.18k   129374.66k   132039.51k   126946.65k   131402.41k
camellia-128 cbc   130709.78k   132506.03k   130935.47k   132316.16k   132169.73k
camellia-192 cbc   101994.55k   103848.41k   102466.70k   102450.86k   101749.54k
camellia-256 cbc   100849.56k   102087.04k   102309.84k   103865.34k   103563.26k
sha256           20026.40k    48390.78k    85548.71k   106697.39k   113885.18k
sha512           16267.34k    64235.24k   112194.30k   167185.07k   190887.25k
whirlpool        24057.77k    50450.56k    81417.47k    96423.59k   102064.13k
aes-128 ige     161647.38k   170119.85k   169633.88k   171347.63k   169571.67k
aes-192 ige     140363.04k   143451.52k   145919.66k   143633.41k   144673.45k
aes-256 ige     121747.67k   124857.30k   126876.67k   128619.52k   132461.91k
ghash           177742.12k   185119.59k   186870.33k   187124.05k   189964.29k
                  sign    verify    sign/s verify/s
rsa  512 bits 0.000182s 0.000014s   5493.4  70164.1
rsa 1024 bits 0.000886s 0.000039s   1129.0  25898.6
rsa 2048 bits 0.005149s 0.000122s    194.2   8182.1
rsa 4096 bits 0.032712s 0.000440s     30.6   2272.5
                  sign    verify    sign/s verify/s
dsa  512 bits 0.000170s 0.000162s   5873.6   6159.2
dsa 1024 bits 0.000437s 0.000481s   2290.4   2079.4
dsa 2048 bits 0.001388s 0.001623s    720.7    616.3
                              sign    verify    sign/s verify/s
 160 bit ecdsa (secp160r1)   0.0001s   0.0006s   7518.7   1807.3
 192 bit ecdsa (nistp192)   0.0001s   0.0005s   7684.5   1967.0
 224 bit ecdsa (nistp224)   0.0002s   0.0008s   5680.4   1277.1
 256 bit ecdsa (nistp256)   0.0002s   0.0008s   5232.3   1260.6
 384 bit ecdsa (nistp384)   0.0004s   0.0016s   2776.4    610.6
 521 bit ecdsa (nistp521)   0.0006s   0.0031s   1602.5    319.6
 163 bit ecdsa (nistk163)   0.0002s   0.0010s   4134.3    981.4
 233 bit ecdsa (nistk233)   0.0004s   0.0015s   2271.4    689.6
 283 bit ecdsa (nistk283)   0.0007s   0.0033s   1482.8    306.8
 409 bit ecdsa (nistk409)   0.0015s   0.0070s    664.6    143.8
 571 bit ecdsa (nistk571)   0.0031s   0.0151s    319.3     66.1
 163 bit ecdsa (nistb163)   0.0002s   0.0011s   4098.4    913.2
 233 bit ecdsa (nistb233)   0.0004s   0.0016s   2277.8    640.4
 283 bit ecdsa (nistb283)   0.0007s   0.0035s   1458.4    286.9
 409 bit ecdsa (nistb409)   0.0015s   0.0078s    659.0    128.6
 571 bit ecdsa (nistb571)   0.0032s   0.0169s    314.2     59.2
                              op      op/s
 160 bit ecdh (secp160r1)   0.0004s   2250.7
 192 bit ecdh (nistp192)   0.0004s   2445.7
 224 bit ecdh (nistp224)   0.0006s   1597.5
 256 bit ecdh (nistp256)   0.0007s   1516.1
 384 bit ecdh (nistp384)   0.0014s    718.7
 521 bit ecdh (nistp521)   0.0026s    388.0
 163 bit ecdh (nistk163)   0.0005s   1962.5
 233 bit ecdh (nistk233)   0.0007s   1379.7
 283 bit ecdh (nistk283)   0.0016s    623.0
 409 bit ecdh (nistk409)   0.0035s    285.9
 571 bit ecdh (nistk571)   0.0074s    135.3
 163 bit ecdh (nistb163)   0.0005s   1840.5
 233 bit ecdh (nistb233)   0.0008s   1291.0
 283 bit ecdh (nistb283)   0.0018s    571.1
 409 bit ecdh (nistb409)   0.0038s    261.6
 571 bit ecdh (nistb571)   0.0084s    118.7
  • OpenSSL 1.0.1e, compiled with -mllvm -sub and standard compilation flags, C-only 64-bit implementations, run on an Intel Core i7 clocked @ 2.4 GHz.

  • OpenSSL 1.0.1e, compiled with -mllvm -bcf and standard compilation flags, C-only 64-bit implementations, run on an Intel Core i7 clocked @ 2.4 GHz.

  • OpenSSL 1.0.1e, compiled with -mllvm -fla and standard compilation flags, C-only 64-bit implementations, run on an Intel Core i7 clocked @ 2.4 GHz.

  • OpenSSL 1.0.1e, compiled with -mllvm -fla -mllvm -bcf and standard compilation flags, C-only 64-bit implementations, run on an Intel Core i7 clocked @ 2.4 GHz.

  • OpenSSL 1.0.1e, compiled with -mllvm -sub -mllvm -fla -mllvm -bcf -mllvm -boguscf-loop=2 -mllvm -boguscf-prob=100 and standard compilation flags, C-only 64-bit implementations, run on an Intel Core i7 clocked @ 2.4 GHz.

Clone this wiki locally