Crypto++ 5.5 Benchmarks

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.

AlgorithmMiB/SecondCycles Per ByteMicroseconds to
Setup Key and IV
Cycles to
Setup Key and IV
VMAC(AES)-6414891.23.0665611
VMAC(AES)-1287942.23.5976582
HMAC(SHA-1)15211.50.546999
Two-Track-MAC10616.40.04277
CBC-MAC/AES8620.20.287525
DMAC/AES8221.31.7393183
CRC-322566.8
Adler-329361.9
MD52586.8
SHA-115511.3
SHA-2568121.5
SHA-5129917.6
Tiger2178.0
Whirlpool5830.0
RIPEMD-16010816.1
RIPEMD-32011115.8
RIPEMD-12815511.3
RIPEMD-25615911.0
Panama-LE8512.11.6052937
Panama-BE4054.32.6394830
Salsa203185.50.309565
Salsa20/124863.60.408747
Salsa20/86692.60.406743
Sosemanuk7392.41.1152040
MARC412813.63.8006954
SEAL-3.0-BE3724.760.103109988
SEAL-3.0-LE3774.660.133110043
WAKE-OFB-BE2068.52.7905106
WAKE-OFB-LE2008.72.7785084
AES/ECB (128-bit key)9917.70.248454
AES/ECB (192-bit key)8620.20.242443
AES/ECB (256-bit key)7722.60.312572
AES/CTR (128-bit key)9618.10.6201134
AES/OFB (128-bit key)8321.10.5641033
AES/CFB (128-bit key)6925.30.7461366
AES/CBC (128-bit key)8420.90.431789
Camellia/ECB (128-bit key)4935.60.174318
Camellia/ECB (256-bit key)3846.00.269492
Twofish6228.17.07712950
Serpent3353.30.7361346
CAST-2563845.62.1853998
RC610316.92.3794353
MARS7423.72.9245351
SHACAL-2/ECB (128-bit key)5531.70.411752
SHACAL-2/ECB (512-bit key)5532.00.436798
DES3451.16.97512765
DES-XEX32861.47.12813045
DES-EDE313131.225.24046190
IDEA3648.60.220403
RC5 (r=16)8221.31.9893640
Blowfish6128.661.035111694
TEA/ECB2763.90.183334
XTEA/ECB2764.30.183335
CAST-1285730.50.497910
SKIPJACK10173.82.9915474
OperationMilliseconds/OperationMegacycles/Operation
RSA 1024 Encryption0.070.13
RSA 1024 Decryption1.522.78
LUC 1024 Encryption0.070.13
LUC 1024 Decryption2.324.25
DLIES 1024 Encryption0.831.53
DLIES 1024 Encryption with precomputation1.452.65
DLIES 1024 Decryption3.065.60
LUCELG 512 Encryption0.571.05
LUCELG 512 Encryption with precomputation0.571.05
LUCELG 512 Decryption0.621.13
RSA 2048 Encryption0.150.28
RSA 2048 Decryption5.9510.89
LUC 2048 Encryption0.170.32
LUC 2048 Decryption9.7117.77
DLIES 2048 Encryption4.267.79
DLIES 2048 Encryption with precomputation4.698.59
DLIES 2048 Decryption18.8434.48
LUCELG 1024 Encryption1.863.40
LUCELG 1024 Encryption with precomputation1.893.45
LUCELG 1024 Decryption1.673.05
RSA 1024 Signature1.422.60
RSA 1024 Verification0.070.13
RW 1024 Signature2.013.67
RW 1024 Verification0.040.08
LUC 1024 Signature2.374.34
LUC 1024 Verification0.070.13
NR 1024 Signature0.470.86
NR 1024 Signature with precomputation0.410.75
NR 1024 Verification0.500.92
NR 1024 Verification with precomputation0.641.17
DSA 1024 Signature0.470.85
DSA 1024 Signature with precomputation0.410.76
DSA 1024 Verification0.520.95
DSA 1024 Verification with precomputation0.661.21
LUC-HMP 512 Signature0.601.09
LUC-HMP 512 Signature with precomputation0.591.08
LUC-HMP 512 Verification0.621.13
LUC-HMP 512 Verification with precomputation0.671.22
ESIGN 1023 Signature0.210.38
ESIGN 1023 Verification0.070.12
ESIGN 1536 Signature0.380.69
ESIGN 1536 Verification0.140.25
RSA 2048 Signature5.9510.89
RSA 2048 Verification0.150.28
RW 2048 Signature7.2713.31
RW 2048 Verification0.090.17
LUC 2048 Signature9.7117.77
LUC 2048 Verification0.170.32
NR 2048 Signature2.113.87
NR 2048 Signature with precomputation0.931.71
NR 2048 Verification2.354.31
NR 2048 Verification with precomputation1.442.63
LUC-HMP 1024 Signature1.873.42
LUC-HMP 1024 Signature with precomputation1.883.45
LUC-HMP 1024 Verification1.923.52
LUC-HMP 1024 Verification with precomputation1.913.50
ESIGN 2046 Signature0.460.84
ESIGN 2046 Verification0.150.27
XTR-DH 171 Key-Pair Generation0.771.40
XTR-DH 171 Key Agreement1.522.77
XTR-DH 342 Key-Pair Generation1.843.36
XTR-DH 342 Key Agreement3.726.80
DH 1024 Key-Pair Generation0.440.80
DH 1024 Key-Pair Generation with precomputation0.741.36
DH 1024 Key Agreement1.152.10
DH 2048 Key-Pair Generation2.133.91
DH 2048 Key-Pair Generation with precomputation2.384.35
DH 2048 Key Agreement3.776.91
LUCDIF 512 Key-Pair Generation0.300.54
LUCDIF 512 Key-Pair Generation with precomputation0.300.54
LUCDIF 512 Key Agreement0.621.13
LUCDIF 1024 Key-Pair Generation0.941.71
LUCDIF 1024 Key-Pair Generation with precomputation0.981.79
LUCDIF 1024 Key Agreement1.683.07
MQV 1024 Key-Pair Generation0.420.77
MQV 1024 Key-Pair Generation with precomputation0.390.71
MQV 1024 Key Agreement0.861.57
MQV 2048 Key-Pair Generation2.093.83
MQV 2048 Key-Pair Generation with precomputation0.911.66
MQV 2048 Key Agreement3.857.04
ECIES over GF(p) 256 Encryption5.5710.19
ECIES over GF(p) 256 Encryption with precomputation4.127.53
ECIES over GF(p) 256 Decryption3.917.15
ECNR over GF(p) 256 Signature2.825.17
ECNR over GF(p) 256 Signature with precomputation2.133.90
ECNR over GF(p) 256 Verification8.3315.25
ECNR over GF(p) 256 Verification with precomputation3.606.58
ECDHC over GF(p) 256 Key-Pair Generation2.825.15
ECDHC over GF(p) 256 Key-Pair Generation with precomputation2.063.78
ECDHC over GF(p) 256 Key Agreement2.855.21
ECMQVC over GF(p) 256 Key-Pair Generation2.795.11
ECMQVC over GF(p) 256 Key-Pair Generation with precomputation2.073.80
ECMQVC over GF(p) 256 Key Agreement8.5515.64
ECIES over GF(2^n) 233 Encryption21.5139.35
ECIES over GF(2^n) 233 Encryption with precomputation6.3311.58
ECIES over GF(2^n) 233 Decryption12.1222.18
ECNR over GF(2^n) 233 Signature10.7019.57
ECNR over GF(2^n) 233 Signature with precomputation3.135.72
ECNR over GF(2^n) 233 Verification13.1624.08
ECNR over GF(2^n) 233 Verification with precomputation5.4810.03
ECDHC over GF(2^n) 233 Key-Pair Generation10.6419.47
ECDHC over GF(2^n) 233 Key-Pair Generation with precomputation3.065.60
ECDHC over GF(2^n) 233 Key Agreement10.5019.22
ECMQVC over GF(2^n) 233 Key-Pair Generation10.6419.47
ECMQVC over GF(2^n) 233 Key-Pair Generation with precomputation3.185.82
ECMQVC over GF(2^n) 233 Key Agreement13.5124.73

Notes


Written by: Wei Dai Last modified: 5/5/2007