New Benchmarks for Botan 1.7.18
Several years ago I compared Botan's benchmark output for three compilers (GNU C++, Intel C++, and KAI C++), which showed some interesting results that are of course completely irrelevant to modern compilers and machines. With the Botan 1.7.18 release I have redone this comparison (with 5 different versions of GNU C++ and 2 of Intel C++) on an Intel Core2 machine.
Here are the benchmark results for Botan 1.7.18 when compiled with a variety of Linux compilers (GNU C++ 3.4.5, 4.1.2, 4.2.4, 4.3.2, and 4.4 20080822, and Intel C++ 9.1 20061101 and 10.1 20080801) executed on a 2.4 GHz Intel Core2 Q6600 running Gentoo Linux (2.6.27 kernel). All code was compiled for x86-64, targetting specifically the Core2 if possible (with GCC, -march=core2 if supported, otherwise -march=nocona).
Intel C++ performs rather poorly across the board compared to GCC, though oddly ICC 9.1 has a couple of outstanding performances with SAFER-SK and WiderWAKE, both of which were over 30% faster than their nearest competitor (sadly, this includes Intel C++ 10.1, which had much worse results in both). Of course both of those are fairly marginal algorithms anyway. The public key benchmarks also show Intel C++ with significantly worse showings in optimizing Botan's BigInt class, often slower by 10% or more compared to the GCC compiled binaries.
I would have liked to have also gathered data using the Pathscale and Portland Group compilers, but at last check both of them had difficulties compiling Botan without miscompiling code.
Botan is included in benchmarks that are at least sometimes used by GCC developers such as OpenBench and SuSE's c++bench. So it is not too surprising that GCC's optimizer would tend to favor Botan (and since I use GCC as my main development compiler when working on Botan, of course Botan's sources tend to be tuned to make GCC's optimizer happy).
Just yesterday I discovered that Timo Bingmann has compared the performance of Botan with Crypto++, OpenSSL, Tomcrypt, Beecrypt, and several other crypto libraries on 5 different machines with a number of compilers. I have not had a chance to dig into his results yet, though.
Each algorithm was run for 10 seconds over a 128 KiB buffer. All times are in MiB per second - the best time is highlighted in bold. GCC 4.2.4 seems to do very well with AES and DES, for reasons I have not been able to determine. It would be nice if newer GCC versions could match 4.2 on this point.
| Algorithm | GCC 4.1.2 | GCC 4.2.4 | GCC 4.3.2 | GCC 4.4-20080822 | GCC 4.4-20081017 | ICC 10.1 | ICC 9.1 |
|---|---|---|---|---|---|---|---|
| AES-128 | 100.25 | 108.21 | 101.39 | 101.33 | 103.69 | 72.77 | 73.20 |
| AES-128/CBC/CTS | 90.64 | 96.32 | 91.44 | 89.81 | 90.75 | 61.76 | 62.65 |
| AES-128/CBC/PKCS7 | 90.55 | 97.27 | 88.00 | 89.07 | 92.44 | 62.80 | 63.97 |
| AES-128/CFB(128) | 81.98 | 86.09 | 83.29 | 80.35 | 84.56 | 59.19 | 59.42 |
| AES-128/CFB(16) | 9.92 | 10.38 | 9.98 | 9.85 | 10.11 | 7.58 | 7.64 |
| AES-128/CFB(32) | 19.77 | 20.63 | 20.01 | 19.67 | 19.97 | 14.98 | 15.02 |
| AES-128/CFB(64) | 39.62 | 41.80 | 39.77 | 39.26 | 40.40 | 29.36 | 29.76 |
| AES-128/CFB(8) | 4.99 | 5.19 | 4.95 | 4.93 | 5.06 | 3.81 | 3.82 |
| AES-128/CTR | 89.29 | 95.44 | 88.84 | 88.63 | 89.56 | 62.39 | 62.36 |
| AES-128/EAX | 43.33 | 46.19 | 43.69 | 43.60 | 44.07 | 30.46 | 30.87 |
| AES-128/OFB | 90.79 | 95.71 | 92.15 | 92.14 | 92.02 | 61.76 | 63.36 |
| AES-192 | 83.91 | 95.58 | 88.59 | 87.37 | 89.90 | 62.79 | 63.33 |
| AES-256 | 75.55 | 85.28 | 78.58 | 77.45 | 79.80 | 55.38 | 55.76 |
| ARC4 | 146.06 | 131.32 | 146.61 | 154.05 | 155.24 | 120.93 | 158.14 |
| Adler32 | 1433.17 | 1233.89 | 1191.85 | 1297.65 | 1308.12 | 1361.83 | 1267.65 |
| Base64_Decode | 79.39 | 82.27 | 76.32 | 80.37 | 78.45 | 66.42 | 67.97 |
| Base64_Encode | 112.52 | 104.81 | 105.94 | 98.97 | 110.90 | 117.01 | 119.12 |
| Blowfish | 68.71 | 72.73 | 68.59 | 67.08 | 70.41 | 70.53 | 72.15 |
| CAST-128 | 61.98 | 64.13 | 64.05 | 63.85 | 63.89 | 59.25 | 58.66 |
| CAST-256 | 39.15 | 58.08 | 60.13 | 56.70 | 58.18 | 37.96 | 37.72 |
| CMAC(AES-128) | 98.22 | 103.52 | 98.76 | 98.28 | 99.84 | 67.19 | 67.97 |
| CRC24 | 267.29 | 266.71 | 261.52 | 260.49 | 263.59 | 268.29 | 270.64 |
| CRC32 | 350.60 | 353.36 | 336.19 | 342.30 | 294.77 | 303.47 | 306.84 |
| DES | 43.13 | 48.95 | 46.49 | 47.36 | 47.55 | 43.52 | 42.63 |
| DES/CBC/PKCS7 | 40.02 | 45.43 | 41.90 | 43.89 | 45.64 | 38.93 | 38.48 |
| DESX | 39.17 | 44.45 | 41.92 | 42.28 | 43.09 | 35.86 | 34.77 |
| FORK-256 | 122.54 | 150.05 | 160.96 | 155.32 | 164.98 | 172.47 | 166.22 |
| GOST | 36.59 | 37.86 | 36.17 | 37.22 | 35.62 | 41.10 | 40.04 |
| HAS-160 | 324.74 | 351.60 | 369.69 | 358.98 | 371.84 | 275.99 | 281.57 |
| HMAC(SHA-1) | 281.70 | 158.19 | 297.84 | 273.85 | 268.76 | 248.46 | 244.53 |
| IDEA | 42.98 | 39.23 | 44.70 | 45.07 | 44.35 | 43.72 | 44.98 |
| KASUMI | 26.74 | 26.91 | 27.45 | 27.67 | 25.44 | 34.04 | 31.89 |
| Lion(SHA-256,Turing) | 38.40 | 41.67 | 42.72 | 39.99 | 41.42 | 34.38 | 37.92 |
| Luby-Rackoff(SHA-512) | 28.09 | 27.85 | 27.19 | 25.56 | 27.11 | 24.70 | 27.46 |
| MARS | 50.73 | 52.12 | 50.25 | 51.37 | 51.72 | 44.79 | 44.01 |
| MD2 | 7.46 | 7.30 | 7.55 | 7.60 | 7.59 | 7.31 | 7.50 |
| MD4 | 552.04 | 480.49 | 488.32 | 498.71 | 493.07 | 455.33 | 442.69 |
| MD5 | 330.04 | 359.21 | 352.33 | 360.86 | 350.09 | 315.60 | 316.95 |
| MISTY1 | 33.86 | 37.41 | 35.31 | 35.23 | 35.57 | 42.13 | 40.95 |
| Noekeon | 56.07 | 54.73 | 51.67 | 51.14 | 52.20 | 55.71 | 54.79 |
| RC2 | 21.67 | 22.81 | 21.97 | 21.92 | 23.29 | 21.90 | 22.13 |
| RC5(12) | 113.31 | 100.01 | 113.19 | 112.71 | 120.58 | 73.55 | 66.97 |
| RC5(16) | 90.03 | 78.26 | 89.94 | 89.50 | 95.34 | 56.89 | 52.24 |
| RC6 | 122.74 | 126.10 | 125.33 | 132.27 | 134.54 | 93.92 | 82.32 |
| RIPEMD-128 | 310.15 | 330.00 | 330.79 | 337.77 | 328.63 | 302.97 | 308.26 |
| RIPEMD-160 | 223.06 | 223.14 | 224.95 | 220.83 | 227.05 | 208.77 | 209.87 |
| Randpool | 3.82 | 4.16 | 4.04 | 4.08 | 4.20 | 3.81 | 4.24 |
| SAFER-SK(10) | 19.32 | 23.10 | 28.57 | 28.95 | 27.04 | 24.60 | 38.34 |
| SEED | 44.93 | 45.75 | 48.71 | 50.73 | 47.48 | 44.25 | 43.95 |
| SHA-160 | 281.78 | 158.54 | 297.81 | 274.09 | 268.58 | 247.91 | 243.68 |
| SHA-256 | 89.31 | 104.68 | 100.75 | 104.20 | 106.76 | 94.30 | 108.10 |
| SHA-384 | 157.03 | 157.81 | 153.05 | 156.72 | 159.95 | 140.06 | 154.96 |
| SHA-512 | 157.13 | 156.60 | 152.96 | 156.73 | 159.96 | 140.15 | 155.12 |
| Salsa20 | 193.30 | 197.43 | 227.31 | 213.83 | 223.20 | 182.94 | 226.07 |
| Serpent | 47.35 | 42.93 | 40.78 | 41.78 | 44.03 | 45.07 | 44.06 |
| Skipjack | 9.29 | 9.83 | 14.36 | 14.39 | 15.31 | 16.45 | 15.00 |
| Square | 109.52 | 109.44 | 122.86 | 114.72 | 109.92 | 88.84 | 89.32 |
| TEA | 35.76 | 34.55 | 34.46 | 34.06 | 34.11 | 35.40 | 34.24 |
| Tiger | 232.33 | 239.81 | 236.06 | 236.43 | 228.61 | 225.99 | 226.31 |
| TripleDES | 16.52 | 19.17 | 18.43 | 18.53 | 19.05 | 17.18 | 16.68 |
| TripleDES/CBC/PKCS7 | 16.10 | 18.36 | 17.86 | 18.09 | 18.70 | 16.41 | 16.05 |
| Turing | 226.42 | 230.64 | 240.88 | 234.34 | 241.68 | 182.74 | 252.39 |
| Twofish | 98.63 | 102.98 | 99.96 | 101.66 | 99.87 | 104.03 | 99.07 |
| Whirlpool | 33.09 | 32.52 | 38.75 | 36.54 | 56.47 | 48.69 | 48.51 |
| WiderWake4+1 | 434.88 | 452.31 | 443.99 | 435.33 | 443.59 | 279.28 | 633.19 |
| X9.19-MAC | 43.99 | 49.16 | 48.18 | 48.11 | 48.86 | 44.64 | 43.94 |
| X9.31-RNG | 1.76 | 1.87 | 1.84 | 1.86 | 1.91 | 1.68 | 1.84 |
| XTEA | 35.26 | 34.82 | 34.48 | 34.35 | 34.36 | 34.07 | 33.41 |
All times for public key algorithms are given in milliseconds per operation (averaged over 10 seconds worth of execution time). Times for RSA and Rabin-Williams key generation should be taken as approximate only, since finding and testing a pair of random primes can take a quite variable amount of time simply depending on the sequence output by the random number generator.
| Algorithm | GCC 4.1.2 | GCC 4.2.4 | GCC 4.3.2 | GCC 4.4-20080822 | GCC 4.4-20081017 | ICC 10.1 | ICC 9.1 |
|---|---|---|---|---|---|---|---|
| RSA-512 keygen | 13.95 | 13.92 | 17.06 | 12.52 | 22.10 | 19.36 | 17.83 |
| RSA-1024 keygen | 31.20 | 47.66 | 58.93 | 92.10 | 85.06 | 51.82 | 50.54 |
| RSA-2048 keygen | 316.60 | 296.55 | 409.55 | 562.76 | 96.70 | 362.01 | 522.66 |
| RSA-4096 keygen | 2065.72 | 2348.85 | 2260.09 | 1308.00 | 6071.09 | 1420.96 | 646.67 |
| RSA-6144 keygen | 922.56 | 20255.92 | 6380.25 | 4851.63 | 17569.30 | 4137.89 | 19456.00 |
| RSA-8192 keygen | 38513.31 | 40300.34 | 10842.88 | 9369.75 | 28451.24 | 43189.50 | 13004.69 |
| RSA-512 EME-PKCS1-v1_5 decrypt | 0.20 | 0.20 | 0.20 | 0.21 | 0.20 | 0.25 | 0.24 |
| RSA-512 EME-PKCS1-v1_5 encrypt | 0.02 | 0.02 | 0.02 | 0.02 | 0.02 | 0.02 | 0.02 |
| RSA-512 EMSA-PKCS1-v1_5(SHA-1) signature | 0.20 | 0.20 | 0.20 | 0.22 | 0.20 | 0.25 | 0.25 |
| RSA-512 EMSA-PKCS1-v1_5(SHA-1) verify | 0.01 | 0.01 | 0.01 | 0.02 | 0.01 | 0.02 | 0.02 |
| RSA-1024 EME-PKCS1-v1_5 decrypt | 0.80 | 0.78 | 0.78 | 0.81 | 0.77 | 0.95 | 0.97 |
| RSA-1024 EME-PKCS1-v1_5 encrypt | 0.04 | 0.04 | 0.04 | 0.04 | 0.04 | 0.05 | 0.05 |
| RSA-1024 EMSA-PKCS1-v1_5(SHA-1) signature | 0.80 | 0.78 | 0.78 | 0.81 | 0.77 | 0.95 | 0.94 |
| RSA-1024 EMSA-PKCS1-v1_5(SHA-1) verify | 0.04 | 0.04 | 0.04 | 0.04 | 0.04 | 0.05 | 0.05 |
| RSA-2048 EME-PKCS1-v1_5 decrypt | 4.51 | 4.62 | 4.33 | 4.47 | 4.40 | 5.43 | 5.17 |
| RSA-2048 EME-PKCS1-v1_5 encrypt | 0.13 | 0.13 | 0.13 | 0.13 | 0.12 | 0.15 | 0.14 |
| RSA-2048 EMSA-PKCS1-v1_5(SHA-1) signature | 4.50 | 4.62 | 4.32 | 4.47 | 4.40 | 5.43 | 5.15 |
| RSA-2048 EMSA-PKCS1-v1_5(SHA-1) verify | 0.12 | 0.13 | 0.12 | 0.12 | 0.12 | 0.14 | 0.14 |
| RSA-4096 EME-PKCS1-v1_5 decrypt | 29.20 | 29.47 | 29.49 | 29.55 | 29.27 | 33.77 | 34.04 |
| RSA-4096 EME-PKCS1-v1_5 encrypt | 0.43 | 0.44 | 0.45 | 0.43 | 0.43 | 0.48 | 0.47 |
| RSA-4096 EMSA-PKCS1-v1_5(SHA-1) signature | 29.21 | 29.39 | 29.51 | 29.56 | 28.73 | 33.96 | 33.61 |
| RSA-4096 EMSA-PKCS1-v1_5(SHA-1) verify | 0.43 | 0.45 | 0.43 | 0.43 | 0.42 | 0.48 | 0.47 |
| RSA-6144 EME-PKCS1-v1_5 decrypt | 113.23 | 116.03 | 111.63 | 113.46 | 112.10 | 112.68 | 112.32 |
| RSA-6144 EME-PKCS1-v1_5 encrypt | 1.09 | 1.12 | 1.10 | 1.10 | 1.09 | 1.10 | 1.09 |
| RSA-6144 EMSA-PKCS1-v1_5(SHA-1) signature | 114.86 | 117.32 | 111.82 | 113.39 | 112.10 | 113.25 | 111.61 |
| RSA-6144 EMSA-PKCS1-v1_5(SHA-1) verify | 1.09 | 1.13 | 1.09 | 1.12 | 1.09 | 1.12 | 1.09 |
| RSA-8192 EME-PKCS1-v1_5 decrypt | 201.32 | 204.85 | 203.26 | 206.65 | 197.14 | 226.90 | 225.54 |
| RSA-8192 EME-PKCS1-v1_5 encrypt | 1.55 | 1.56 | 1.56 | 1.56 | 1.57 | 1.70 | 1.68 |
| RSA-8192 EMSA-PKCS1-v1_5(SHA-1) signature | 201.77 | 205.13 | 205.98 | 203.53 | 197.70 | 226.75 | 228.58 |
| RSA-8192 EMSA-PKCS1-v1_5(SHA-1) verify | 1.55 | 1.57 | 1.56 | 1.56 | 1.57 | 1.70 | 1.68 |
| Algorithm | GCC 4.1.2 | GCC 4.2.4 | GCC 4.3.2 | GCC 4.4-20080822 | GCC 4.4-20081017 | ICC 10.1 | ICC 9.1 |
|---|---|---|---|---|---|---|---|
| DH-768 key exchange | 0.31 | 0.30 | 0.29 | 0.31 | 0.30 | 0.32 | 0.32 |
| DH-768 keygen | 1.98 | 1.97 | 2.00 | 2.02 | 1.98 | 2.13 | 2.22 |
| DH-1024 key exchange | 0.43 | 0.43 | 0.42 | 0.43 | 0.42 | 0.52 | 0.51 |
| DH-1024 keygen | 3.19 | 3.14 | 3.14 | 3.10 | 3.05 | 3.40 | 3.56 |
| DH-2048 key exchange | 1.92 | 1.95 | 1.93 | 1.94 | 1.87 | 2.23 | 2.22 |
| DH-2048 keygen | 9.23 | 9.29 | 9.26 | 9.35 | 9.00 | 10.00 | 10.35 |
| DH-3072 key exchange | 5.53 | 5.63 | 5.53 | 5.64 | 5.56 | 5.56 | 5.50 |
| DH-3072 keygen | 20.76 | 21.15 | 21.68 | 20.62 | 20.75 | 21.04 | 21.57 |
| DH-4096 key exchange | 8.56 | 8.67 | 8.56 | 8.68 | 8.53 | 9.72 | 9.70 |
| DH-4096 keygen | 32.89 | 33.29 | 31.32 | 30.96 | 31.73 | 35.07 | 34.68 |
| DH-6144 key exchange | 25.86 | 26.42 | 25.70 | 26.26 | 26.37 | 26.06 | 26.10 |
| DH-6144 keygen | 83.98 | 85.36 | 82.59 | 81.72 | 81.46 | 80.72 | 83.09 |
| DH-8192 key exchange | 40.85 | 41.27 | 40.84 | 41.28 | 40.63 | 45.76 | 44.88 |
| DH-8192 keygen | 128.93 | 134.53 | 131.18 | 131.17 | 126.24 | 144.91 | 144.79 |
| Algorithm | GCC 4.1.2 | GCC 4.2.4 | GCC 4.3.2 | GCC 4.4-20080822 | GCC 4.4-20081017 | ICC 10.1 | ICC 9.1 |
|---|---|---|---|---|---|---|---|
| DSA-512 EMSA1(SHA-160) signature | 0.30 | 0.29 | 0.30 | 0.30 | 0.29 | 0.35 | 0.34 |
| DSA-512 EMSA1(SHA-160) verify | 0.34 | 0.33 | 0.34 | 0.34 | 0.33 | 0.40 | 0.40 |
| DSA-512 keygen | 1.34 | 1.30 | 1.38 | 1.34 | 1.31 | 1.50 | 1.53 |
| DSA-768 EMSA1(SHA-160) signature | 0.45 | 0.44 | 0.44 | 0.46 | 0.45 | 0.49 | 0.48 |
| DSA-768 EMSA1(SHA-160) verify | 0.67 | 0.66 | 0.64 | 0.67 | 0.66 | 0.71 | 0.71 |
| DSA-768 keygen | 1.53 | 1.51 | 1.54 | 1.54 | 1.52 | 1.64 | 1.71 |
| DSA-1024 EMSA1(SHA-160) signature | 0.55 | 0.54 | 0.54 | 0.55 | 0.53 | 0.64 | 0.62 |
| DSA-1024 EMSA1(SHA-160) verify | 0.82 | 0.82 | 0.80 | 0.81 | 0.80 | 0.97 | 0.95 |
| DSA-1024 keygen | 2.11 | 2.13 | 2.09 | 2.05 | 2.02 | 2.23 | 2.30 |
| DSA-2048 EMSA1(SHA-256) signature | 2.27 | 2.24 | 2.24 | 2.25 | 2.20 | 2.62 | 2.56 |
| DSA-2048 EMSA1(SHA-256) verify | 3.94 | 3.92 | 3.87 | 3.89 | 3.79 | 4.60 | 4.47 |
| DSA-2048 keygen | 6.49 | 6.46 | 6.50 | 6.39 | 6.29 | 7.08 | 7.14 |
| DSA-3072 EMSA1(SHA-256) signature | 5.32 | 5.34 | 5.25 | 5.36 | 5.36 | 5.34 | 5.32 |
| DSA-3072 EMSA1(SHA-256) verify | 10.38 | 10.28 | 10.05 | 10.20 | 10.31 | 10.18 | 10.17 |
| DSA-3072 keygen | 14.60 | 14.44 | 14.53 | 14.10 | 14.19 | 14.72 | 15.00 |
| Algorithm | GCC 4.1.2 | GCC 4.2.4 | GCC 4.3.2 | GCC 4.4-20080822 | GCC 4.4-20081017 | ICC 10.1 | ICC 9.1 |
|---|---|---|---|---|---|---|---|
| ECDSA-112 EMSA1(SHA-160) signature | 3.50 | 3.34 | 3.44 | 3.72 | 3.62 | 4.02 | 4.16 |
| ECDSA-112 EMSA1(SHA-160) verify | 9.75 | 9.39 | 9.58 | 20.28 | 10.22 | 11.19 | 11.58 |
| ECDSA-112 keygen | 3.60 | 3.46 | 3.45 | 3.81 | 3.67 | 4.08 | 4.23 |
| ECDSA-128 EMSA1(SHA-160) signature | 4.04 | 3.85 | 4.02 | 4.31 | 4.19 | 4.62 | 4.78 |
| ECDSA-128 EMSA1(SHA-160) verify | 11.32 | 10.76 | 11.26 | 12.12 | 11.86 | 12.89 | 13.32 |
| ECDSA-128 keygen | 3.89 | 3.82 | 3.87 | 4.18 | 4.18 | 4.51 | 4.69 |
| ECDSA-160 EMSA1(SHA-160) signature | 4.98 | 4.88 | 4.99 | 5.49 | 5.29 | 5.65 | 5.98 |
| ECDSA-160 EMSA1(SHA-160) verify | 13.78 | 13.56 | 13.88 | 15.34 | 14.84 | 15.64 | 16.78 |
| ECDSA-160 keygen | 4.88 | 4.84 | 4.92 | 5.50 | 5.24 | 5.56 | 5.57 |
| ECDSA-224 EMSA1(SHA-224) signature | 6.85 | 6.67 | 7.01 | 7.28 | 6.95 | 7.85 | 8.32 |
| ECDSA-224 EMSA1(SHA-224) verify | 19.33 | 18.94 | 20.01 | 20.51 | 19.63 | 22.26 | 23.91 |
| ECDSA-224 keygen | 6.67 | 6.50 | 6.90 | 7.20 | 6.91 | 7.70 | 8.21 |
| ECDSA-384 EMSA1(SHA-384) signature | 12.70 | 12.09 | 12.23 | 12.82 | 12.31 | 14.28 | 14.79 |
| ECDSA-384 EMSA1(SHA-384) verify | 37.21 | 34.80 | 34.76 | 36.64 | 34.86 | 40.67 | 42.60 |
| ECDSA-384 keygen | 12.50 | 11.70 | 11.97 | 12.54 | 12.24 | 13.78 | 14.89 |
| ECDSA-521 EMSA1(SHA-512) signature | 26.84 | 25.02 | 24.97 | 26.67 | 25.73 | 29.00 | 29.24 |
| ECDSA-521 EMSA1(SHA-512) verify | 74.70 | 69.66 | 69.96 | 73.88 | 71.40 | 79.99 | 81.99 |
| ECDSA-521 keygen | 27.00 | 24.78 | 24.07 | 25.98 | 25.53 | 27.86 | 29.02 |
| Algorithm | GCC 4.1.2 | GCC 4.2.4 | GCC 4.3.2 | GCC 4.4-20080822 | GCC 4.4-20081017 | ICC 10.1 | ICC 9.1 |
|---|---|---|---|---|---|---|---|
| ECKAEG-112 key exchange | 3.33 | 3.17 | 3.34 | 3.51 | 3.45 | 3.75 | 3.93 |
| ECKAEG-112 keygen | 3.57 | 3.39 | 3.50 | 3.73 | 3.67 | 4.01 | 4.08 |
| ECKAEG-128 key exchange | 3.86 | 3.69 | 3.76 | 4.06 | 4.16 | 4.29 | 4.51 |
| ECKAEG-128 keygen | 3.93 | 3.81 | 3.87 | 4.18 | 4.27 | 4.46 | 4.63 |
| ECKAEG-160 key exchange | 4.70 | 4.69 | 4.70 | 5.09 | 5.11 | 5.32 | 5.48 |
| ECKAEG-160 keygen | 4.87 | 4.75 | 4.93 | 5.35 | 5.50 | 5.59 | 5.68 |
| ECKAEG-224 key exchange | 6.79 | 6.38 | 6.75 | 6.81 | 6.67 | 7.62 | 7.93 |
| ECKAEG-224 keygen | 6.90 | 6.49 | 6.85 | 7.12 | 7.10 | 7.87 | 7.98 |
| ECKAEG-384 key exchange | 12.39 | 11.60 | 11.58 | 12.30 | 12.11 | 13.62 | 13.96 |
| ECKAEG-384 keygen | 12.57 | 11.91 | 11.84 | 12.85 | 12.37 | 14.02 | 14.16 |
| ECKAEG-521 key exchange | 25.66 | 23.27 | 23.22 | 24.96 | 24.49 | 26.66 | 27.23 |
| ECKAEG-521 keygen | 26.89 | 24.38 | 24.57 | 26.07 | 25.88 | 28.32 | 28.18 |
| Algorithm | GCC 4.1.2 | GCC 4.2.4 | GCC 4.3.2 | GCC 4.4-20080822 | GCC 4.4-20081017 | ICC 10.1 | ICC 9.1 |
|---|---|---|---|---|---|---|---|
| ElGamal-768 EME1(SHA-1) decrypt | 0.89 | 0.89 | 0.89 | 0.93 | 0.89 | 0.98 | 1.00 |
| ElGamal-768 EME1(SHA-1) encrypt | 0.56 | 0.54 | 0.53 | 0.56 | 0.55 | 0.58 | 0.57 |
| ElGamal-768 keygen | 2.30 | 2.31 | 2.33 | 2.38 | 2.33 | 2.48 | 2.57 |
| ElGamal-1024 EME1(SHA-1) decrypt | 1.45 | 1.43 | 1.43 | 1.42 | 1.38 | 1.57 | 1.66 |
| ElGamal-1024 EME1(SHA-1) encrypt | 0.80 | 0.79 | 0.76 | 0.78 | 0.77 | 0.93 | 0.91 |
| ElGamal-1024 keygen | 3.82 | 3.79 | 3.75 | 3.72 | 3.61 | 4.07 | 4.24 |
| ElGamal-2048 EME1(SHA-1) decrypt | 4.44 | 4.40 | 4.44 | 4.35 | 4.25 | 4.79 | 4.92 |
| ElGamal-2048 EME1(SHA-1) encrypt | 3.60 | 3.63 | 3.53 | 3.55 | 3.48 | 4.15 | 4.02 |
| ElGamal-2048 keygen | 10.72 | 10.66 | 10.40 | 10.37 | 10.36 | 11.32 | 11.76 |
| ElGamal-3072 EME1(SHA-1) decrypt | 10.23 | 10.11 | 10.36 | 10.03 | 10.13 | 10.17 | 10.48 |
| ElGamal-3072 EME1(SHA-1) encrypt | 10.88 | 10.93 | 10.84 | 10.92 | 10.84 | 10.81 | 10.84 |
| ElGamal-3072 keygen | 23.81 | 23.55 | 23.12 | 22.91 | 23.01 | 23.40 | 24.22 |
| ElGamal-4096 EME1(SHA-1) decrypt | 15.59 | 15.61 | 15.50 | 15.18 | 15.01 | 16.72 | 16.92 |
| ElGamal-4096 EME1(SHA-1) encrypt | 16.54 | 16.77 | 16.64 | 16.67 | 16.16 | 18.73 | 18.68 |
| ElGamal-4096 keygen | 36.34 | 35.22 | 34.63 | 34.60 | 33.61 | 38.77 | 39.34 |
| ElGamal-6144 EME1(SHA-1) decrypt | 40.85 | 40.77 | 39.68 | 38.66 | 39.05 | 39.27 | 40.21 |
| ElGamal-6144 EME1(SHA-1) encrypt | 50.35 | 51.43 | 50.50 | 50.91 | 50.13 | 50.23 | 50.57 |
| ElGamal-6144 keygen | 89.33 | 91.27 | 89.34 | 88.73 | 87.04 | 88.99 | 89.15 |
| ElGamal-8192 EME1(SHA-1) decrypt | 62.84 | 63.37 | 63.10 | 62.31 | 60.41 | 66.73 | 67.94 |
| ElGamal-8192 EME1(SHA-1) encrypt | 80.51 | 80.29 | 79.55 | 80.05 | 80.59 | 87.93 | 86.91 |
| ElGamal-8192 keygen | 141.51 | 144.77 | 141.62 | 139.14 | 134.33 | 148.89 | 155.22 |
| Algorithm | GCC 4.1.2 | GCC 4.2.4 | GCC 4.3.2 | GCC 4.4-20080822 | GCC 4.4-20081017 | ICC 10.1 | ICC 9.1 |
|---|---|---|---|---|---|---|---|
| NR-512 EMSA1(SHA-160) signature | 0.20 | 0.19 | 0.19 | 0.19 | 0.19 | 0.22 | 0.22 |
| NR-512 EMSA1(SHA-160) verify | 0.24 | 0.23 | 0.23 | 0.24 | 0.23 | 0.28 | 0.28 |
| NR-512 keygen | 1.33 | 1.31 | 1.36 | 1.35 | 1.32 | 1.51 | 1.53 |
| NR-768 EMSA1(SHA-160) signature | 0.35 | 0.34 | 0.33 | 0.35 | 0.35 | 0.36 | 0.36 |
| NR-768 EMSA1(SHA-160) verify | 0.57 | 0.55 | 0.54 | 0.56 | 0.56 | 0.58 | 0.58 |
| NR-768 keygen | 1.53 | 1.51 | 1.53 | 1.55 | 1.52 | 1.64 | 1.70 |
| NR-1024 EMSA1(SHA-160) signature | 0.44 | 0.44 | 0.43 | 0.43 | 0.43 | 0.52 | 0.51 |
| NR-1024 EMSA1(SHA-160) verify | 0.72 | 0.71 | 0.69 | 0.71 | 0.70 | 0.86 | 0.83 |
| NR-1024 keygen | 2.13 | 2.14 | 2.09 | 2.09 | 2.03 | 2.25 | 2.35 |
| NR-2048 EMSA1(SHA-256) signature | 2.11 | 2.09 | 2.09 | 2.09 | 2.05 | 2.46 | 2.37 |
| NR-2048 EMSA1(SHA-256) verify | 3.79 | 3.78 | 3.76 | 3.74 | 3.63 | 4.38 | 4.29 |
| NR-2048 keygen | 6.53 | 6.50 | 6.50 | 6.58 | 6.34 | 7.09 | 7.16 |
| NR-3072 EMSA1(SHA-256) signature | 5.16 | 5.18 | 5.18 | 5.16 | 5.11 | 5.15 | 5.30 |
| NR-3072 EMSA1(SHA-256) verify | 10.06 | 10.08 | 10.04 | 10.08 | 9.95 | 10.10 | 10.01 |
| NR-3072 keygen | 14.92 | 14.44 | 14.44 | 14.36 | 14.35 | 14.67 | 14.97 |
| Algorithm | GCC 4.1.2 | GCC 4.2.4 | GCC 4.3.2 | GCC 4.4-20080822 | GCC 4.4-20081017 | ICC 10.1 | ICC 9.1 |
|---|---|---|---|---|---|---|---|
| RW-512 EMSA2(SHA-256) signature | 1.70 | 1.54 | 1.71 | 1.71 | 1.56 | 2.04 | 1.91 |
| RW-512 EMSA2(SHA-256) verify | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 |
| RW-512 keygen | 11.37 | 10.78 | 10.92 | 12.05 | 10.93 | 13.66 | 13.40 |
| RW-1024 EMSA2(SHA-256) signature | 5.50 | 5.34 | 5.51 | 5.47 | 5.31 | 6.59 | 6.49 |
| RW-1024 EMSA2(SHA-256) verify | 0.02 | 0.01 | 0.01 | 0.02 | 0.01 | 0.02 | 0.02 |
| RW-1024 keygen | 50.60 | 42.00 | 46.85 | 51.67 | 49.45 | 53.28 | 45.28 |
| RW-2048 EMSA2(SHA-256) signature | 20.79 | 20.43 | 20.90 | 20.46 | 20.72 | 24.65 | 24.05 |
| RW-2048 EMSA2(SHA-256) verify | 0.04 | 0.04 | 0.04 | 0.04 | 0.03 | 0.04 | 0.04 |
| RW-2048 keygen | 357.82 | 323.90 | 361.93 | 283.40 | 293.04 | 378.90 | 332.16 |
| RW-4096 EMSA2(SHA-256) signature | 92.22 | 88.71 | 90.08 | 92.57 | 88.17 | 106.01 | 104.15 |
| RW-4096 EMSA2(SHA-256) verify | 0.11 | 0.11 | 0.11 | 0.11 | 0.11 | 0.12 | 0.12 |
| RW-4096 keygen | 3482.06 | 2700.72 | 2652.30 | 2349.81 | 3926.19 | 2874.20 | 3992.56 |
| RW-6144 EMSA2(SHA-256) signature | 256.78 | 248.78 | 255.74 | 255.22 | 251.09 | 274.22 | 268.68 |
| RW-6144 EMSA2(SHA-256) verify | 0.26 | 0.26 | 0.26 | 0.26 | 0.26 | 0.25 | 0.26 |
| RW-6144 keygen | 14759.64 | 11442.89 | 12481.94 | 21347.67 | 17622.80 | 20432.78 | 19205.69 |
| RW-8192 EMSA2(SHA-256) signature | 466.40 | 454.92 | 458.08 | 474.71 | 446.79 | 520.14 | 509.00 |
| RW-8192 EMSA2(SHA-256) verify | 0.38 | 0.38 | 0.37 | 0.39 | 0.37 | 0.42 | 0.41 |
| RW-8192 keygen | 49484.64 | 36773.61 | 30048.90 | 18511.71 | 33013.69 | 55366.04 | 40475.22 |
Posted 2008/10/23 in benchmarks; no comments
< Botan 1.7.18 | Botan 1.7.19 Released >