Here are speed benchmarks for some of the most commonly used cryptographic algorithms. All were coded in C++, compiled with Microsoft Visual C++ 2005 SP1 (whole program optimization, optimize for speed), and ran on an Intel Core 2 1.83 GHz processor under Windows XP SP 2 in 32-bit mode. x86/MMX/SSE2 assembly language routines were used for integer arithmetic, AES, VMAC, Sosemanuk, Panama, Salsa20, SHA-512, Tiger, and Whirlpool. (OpenMP support was disabled so only one core of the CPU was used for this benchmark.) The results from the same binary running on an Intel Pentium 4 (Northwood) CPU are available here.
Also available are benchmarks that ran on an AMD Opteron 2.4 GHz processor under Linux 2.6.18. Those were compiled with GCC 4.1.1 using -O2 optimization, and x86-64/MMX/SSE2 assembly language routines were used for integer arithmetic, AES, VMAC, Sosemanuk, Panama, Salsa20, and Whirlpool.
| Algorithm | MiB/Second | Cycles Per Byte | Microseconds to Setup Key and IV | Cycles to Setup Key and IV |
|---|---|---|---|---|
| VMAC(AES)-64 | 1489 | 1.2 | 3.066 | 5611 |
| VMAC(AES)-128 | 794 | 2.2 | 3.597 | 6582 |
| HMAC(SHA-1) | 152 | 11.5 | 0.546 | 999 |
| Two-Track-MAC | 106 | 16.4 | 0.042 | 77 |
| CBC-MAC/AES | 86 | 20.2 | 0.287 | 525 |
| DMAC/AES | 82 | 21.3 | 1.739 | 3183 |
| CRC-32 | 256 | 6.8 | ||
| Adler-32 | 936 | 1.9 | ||
| MD5 | 258 | 6.8 | ||
| SHA-1 | 155 | 11.3 | ||
| SHA-256 | 81 | 21.5 | ||
| SHA-512 | 99 | 17.6 | ||
| Tiger | 217 | 8.0 | ||
| Whirlpool | 58 | 30.0 | ||
| RIPEMD-160 | 108 | 16.1 | ||
| RIPEMD-320 | 111 | 15.8 | ||
| RIPEMD-128 | 155 | 11.3 | ||
| RIPEMD-256 | 159 | 11.0 | ||
| Panama-LE | 851 | 2.1 | 1.605 | 2937 |
| Panama-BE | 405 | 4.3 | 2.639 | 4830 |
| Salsa20 | 318 | 5.5 | 0.309 | 565 |
| Salsa20/12 | 486 | 3.6 | 0.408 | 747 |
| Salsa20/8 | 669 | 2.6 | 0.406 | 743 |
| Sosemanuk | 739 | 2.4 | 1.115 | 2040 |
| MARC4 | 128 | 13.6 | 3.800 | 6954 |
| SEAL-3.0-BE | 372 | 4.7 | 60.103 | 109988 |
| SEAL-3.0-LE | 377 | 4.6 | 60.133 | 110043 |
| WAKE-OFB-BE | 206 | 8.5 | 2.790 | 5106 |
| WAKE-OFB-LE | 200 | 8.7 | 2.778 | 5084 |
| AES/ECB (128-bit key) | 99 | 17.7 | 0.248 | 454 |
| AES/ECB (192-bit key) | 86 | 20.2 | 0.242 | 443 |
| AES/ECB (256-bit key) | 77 | 22.6 | 0.312 | 572 |
| AES/CTR (128-bit key) | 96 | 18.1 | 0.620 | 1134 |
| AES/OFB (128-bit key) | 83 | 21.1 | 0.564 | 1033 |
| AES/CFB (128-bit key) | 69 | 25.3 | 0.746 | 1366 |
| AES/CBC (128-bit key) | 84 | 20.9 | 0.431 | 789 |
| Camellia/ECB (128-bit key) | 49 | 35.6 | 0.174 | 318 |
| Camellia/ECB (256-bit key) | 38 | 46.0 | 0.269 | 492 |
| Twofish | 62 | 28.1 | 7.077 | 12950 |
| Serpent | 33 | 53.3 | 0.736 | 1346 |
| CAST-256 | 38 | 45.6 | 2.185 | 3998 |
| RC6 | 103 | 16.9 | 2.379 | 4353 |
| MARS | 74 | 23.7 | 2.924 | 5351 |
| SHACAL-2/ECB (128-bit key) | 55 | 31.7 | 0.411 | 752 |
| SHACAL-2/ECB (512-bit key) | 55 | 32.0 | 0.436 | 798 |
| DES | 34 | 51.1 | 6.975 | 12765 |
| DES-XEX3 | 28 | 61.4 | 7.128 | 13045 |
| DES-EDE3 | 13 | 131.2 | 25.240 | 46190 |
| IDEA | 36 | 48.6 | 0.220 | 403 |
| RC5 (r=16) | 82 | 21.3 | 1.989 | 3640 |
| Blowfish | 61 | 28.6 | 61.035 | 111694 |
| TEA/ECB | 27 | 63.9 | 0.183 | 334 |
| XTEA/ECB | 27 | 64.3 | 0.183 | 335 |
| CAST-128 | 57 | 30.5 | 0.497 | 910 |
| SKIPJACK | 10 | 173.8 | 2.991 | 5474 |
| Operation | Milliseconds/Operation | Megacycles/Operation |
|---|---|---|
| RSA 1024 Encryption | 0.07 | 0.13 |
| RSA 1024 Decryption | 1.52 | 2.78 |
| LUC 1024 Encryption | 0.07 | 0.13 |
| LUC 1024 Decryption | 2.32 | 4.25 |
| DLIES 1024 Encryption | 0.83 | 1.53 |
| DLIES 1024 Encryption with precomputation | 1.45 | 2.65 |
| DLIES 1024 Decryption | 3.06 | 5.60 |
| LUCELG 512 Encryption | 0.57 | 1.05 |
| LUCELG 512 Encryption with precomputation | 0.57 | 1.05 |
| LUCELG 512 Decryption | 0.62 | 1.13 |
| RSA 2048 Encryption | 0.15 | 0.28 |
| RSA 2048 Decryption | 5.95 | 10.89 |
| LUC 2048 Encryption | 0.17 | 0.32 |
| LUC 2048 Decryption | 9.71 | 17.77 |
| DLIES 2048 Encryption | 4.26 | 7.79 |
| DLIES 2048 Encryption with precomputation | 4.69 | 8.59 |
| DLIES 2048 Decryption | 18.84 | 34.48 |
| LUCELG 1024 Encryption | 1.86 | 3.40 |
| LUCELG 1024 Encryption with precomputation | 1.89 | 3.45 |
| LUCELG 1024 Decryption | 1.67 | 3.05 |
| RSA 1024 Signature | 1.42 | 2.60 |
| RSA 1024 Verification | 0.07 | 0.13 |
| RW 1024 Signature | 2.01 | 3.67 |
| RW 1024 Verification | 0.04 | 0.08 |
| LUC 1024 Signature | 2.37 | 4.34 |
| LUC 1024 Verification | 0.07 | 0.13 |
| NR 1024 Signature | 0.47 | 0.86 |
| NR 1024 Signature with precomputation | 0.41 | 0.75 |
| NR 1024 Verification | 0.50 | 0.92 |
| NR 1024 Verification with precomputation | 0.64 | 1.17 |
| DSA 1024 Signature | 0.47 | 0.85 |
| DSA 1024 Signature with precomputation | 0.41 | 0.76 |
| DSA 1024 Verification | 0.52 | 0.95 |
| DSA 1024 Verification with precomputation | 0.66 | 1.21 |
| LUC-HMP 512 Signature | 0.60 | 1.09 |
| LUC-HMP 512 Signature with precomputation | 0.59 | 1.08 |
| LUC-HMP 512 Verification | 0.62 | 1.13 |
| LUC-HMP 512 Verification with precomputation | 0.67 | 1.22 |
| ESIGN 1023 Signature | 0.21 | 0.38 |
| ESIGN 1023 Verification | 0.07 | 0.12 |
| ESIGN 1536 Signature | 0.38 | 0.69 |
| ESIGN 1536 Verification | 0.14 | 0.25 |
| RSA 2048 Signature | 5.95 | 10.89 |
| RSA 2048 Verification | 0.15 | 0.28 |
| RW 2048 Signature | 7.27 | 13.31 |
| RW 2048 Verification | 0.09 | 0.17 |
| LUC 2048 Signature | 9.71 | 17.77 |
| LUC 2048 Verification | 0.17 | 0.32 |
| NR 2048 Signature | 2.11 | 3.87 |
| NR 2048 Signature with precomputation | 0.93 | 1.71 |
| NR 2048 Verification | 2.35 | 4.31 |
| NR 2048 Verification with precomputation | 1.44 | 2.63 |
| LUC-HMP 1024 Signature | 1.87 | 3.42 |
| LUC-HMP 1024 Signature with precomputation | 1.88 | 3.45 |
| LUC-HMP 1024 Verification | 1.92 | 3.52 |
| LUC-HMP 1024 Verification with precomputation | 1.91 | 3.50 |
| ESIGN 2046 Signature | 0.46 | 0.84 |
| ESIGN 2046 Verification | 0.15 | 0.27 |
| XTR-DH 171 Key-Pair Generation | 0.77 | 1.40 |
| XTR-DH 171 Key Agreement | 1.52 | 2.77 |
| XTR-DH 342 Key-Pair Generation | 1.84 | 3.36 |
| XTR-DH 342 Key Agreement | 3.72 | 6.80 |
| DH 1024 Key-Pair Generation | 0.44 | 0.80 |
| DH 1024 Key-Pair Generation with precomputation | 0.74 | 1.36 |
| DH 1024 Key Agreement | 1.15 | 2.10 |
| DH 2048 Key-Pair Generation | 2.13 | 3.91 |
| DH 2048 Key-Pair Generation with precomputation | 2.38 | 4.35 |
| DH 2048 Key Agreement | 3.77 | 6.91 |
| LUCDIF 512 Key-Pair Generation | 0.30 | 0.54 |
| LUCDIF 512 Key-Pair Generation with precomputation | 0.30 | 0.54 |
| LUCDIF 512 Key Agreement | 0.62 | 1.13 |
| LUCDIF 1024 Key-Pair Generation | 0.94 | 1.71 |
| LUCDIF 1024 Key-Pair Generation with precomputation | 0.98 | 1.79 |
| LUCDIF 1024 Key Agreement | 1.68 | 3.07 |
| MQV 1024 Key-Pair Generation | 0.42 | 0.77 |
| MQV 1024 Key-Pair Generation with precomputation | 0.39 | 0.71 |
| MQV 1024 Key Agreement | 0.86 | 1.57 |
| MQV 2048 Key-Pair Generation | 2.09 | 3.83 |
| MQV 2048 Key-Pair Generation with precomputation | 0.91 | 1.66 |
| MQV 2048 Key Agreement | 3.85 | 7.04 |
| ECIES over GF(p) 256 Encryption | 5.57 | 10.19 |
| ECIES over GF(p) 256 Encryption with precomputation | 4.12 | 7.53 |
| ECIES over GF(p) 256 Decryption | 3.91 | 7.15 |
| ECNR over GF(p) 256 Signature | 2.82 | 5.17 |
| ECNR over GF(p) 256 Signature with precomputation | 2.13 | 3.90 |
| ECNR over GF(p) 256 Verification | 8.33 | 15.25 |
| ECNR over GF(p) 256 Verification with precomputation | 3.60 | 6.58 |
| ECDHC over GF(p) 256 Key-Pair Generation | 2.82 | 5.15 |
| ECDHC over GF(p) 256 Key-Pair Generation with precomputation | 2.06 | 3.78 |
| ECDHC over GF(p) 256 Key Agreement | 2.85 | 5.21 |
| ECMQVC over GF(p) 256 Key-Pair Generation | 2.79 | 5.11 |
| ECMQVC over GF(p) 256 Key-Pair Generation with precomputation | 2.07 | 3.80 |
| ECMQVC over GF(p) 256 Key Agreement | 8.55 | 15.64 |
| ECIES over GF(2^n) 233 Encryption | 21.51 | 39.35 |
| ECIES over GF(2^n) 233 Encryption with precomputation | 6.33 | 11.58 |
| ECIES over GF(2^n) 233 Decryption | 12.12 | 22.18 |
| ECNR over GF(2^n) 233 Signature | 10.70 | 19.57 |
| ECNR over GF(2^n) 233 Signature with precomputation | 3.13 | 5.72 |
| ECNR over GF(2^n) 233 Verification | 13.16 | 24.08 |
| ECNR over GF(2^n) 233 Verification with precomputation | 5.48 | 10.03 |
| ECDHC over GF(2^n) 233 Key-Pair Generation | 10.64 | 19.47 |
| ECDHC over GF(2^n) 233 Key-Pair Generation with precomputation | 3.06 | 5.60 |
| ECDHC over GF(2^n) 233 Key Agreement | 10.50 | 19.22 |
| ECMQVC over GF(2^n) 233 Key-Pair Generation | 10.64 | 19.47 |
| ECMQVC over GF(2^n) 233 Key-Pair Generation with precomputation | 3.18 | 5.82 |
| ECMQVC over GF(2^n) 233 Key Agreement | 13.51 | 24.73 |
| modulus | exponent |
|---|---|
| 1024 | 164 |
| 2048 | 226 |