Crypto++ 5.6.0 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 Vista in 32-bit mode. x86/MMX/SSE2 assembly language routines were used for integer arithmetic, AES, VMAC, Sosemanuk, Panama, Salsa20, SHA-256, 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 (Prescott) CPU are available here.

Also available are benchmarks that ran on an AMD Opteron 8354 2.2 GHz processor under Linux. Those were compiled with GCC 4.1.2 using -O3 optimization, and x86-64/MMX/SSE2 assembly language routines were used for integer arithmetic, AES, VMAC, Sosemanuk, Panama, Salsa20, SHA-256, and Whirlpool.

AlgorithmMiB/SecondCycles Per ByteMicroseconds to
Setup Key and IV
Cycles to
Setup Key and IV
AES/GCM (2K tables)10217.22.9465391
AES/GCM (64K tables)10816.111.54621130
AES/CCM6128.60.8881625
AES/EAX6128.81.7573216
GMAC(AES) (2K tables)4174.22.9445388
GMAC(AES) (64K tables)5403.211.52321088
VMAC(AES)-6415191.13.1335734
VMAC(AES)-1287792.23.7386841
HMAC(SHA-1)14711.90.509932
Two-Track-MAC10516.60.04175
CMAC(AES)10916.10.6001098
DMAC(AES)10916.01.7613223
CRC322536.9
Adler329201.9
MD52556.8
SHA-115311.4
SHA-25611115.8
SHA-5129917.7
Tiger2148.1
Whirlpool5730.5
RIPEMD-16010616.5
RIPEMD-32011015.9
RIPEMD-12815311.4
RIPEMD-25615811.1
Panama-LE8432.11.6953103
Panama-BE3974.42.7034946
Salsa204084.30.390714
Salsa20/126432.70.483884
Salsa20/88872.00.481881
Sosemanuk7272.41.2402269
MARC412613.92.6904923
SEAL-3.0-LE3754.763.697116566
WAKE-OFB-LE1978.92.8165153
AES/CTR (128-bit key)13912.60.6981277
AES/CTR (192-bit key)11315.40.7071293
AES/CTR (256-bit key)9618.20.7561383
AES/CBC (128-bit key)10916.00.5691041
AES/CBC (192-bit key)9218.90.5721046
AES/CBC (256-bit key)8021.70.6191133
AES/OFB (128-bit key)10316.90.7021285
AES/CFB (128-bit key)10816.10.9261695
AES/ECB (128-bit key)10916.00.253462
Camellia/CTR (128-bit key)4836.30.6321156
Camellia/CTR (256-bit key)3747.40.6961273
Twofish/CTR5929.47.71614121
Serpent/CTR3254.71.1972191
CAST-256/CTR3747.12.6594865
RC6/CTR10117.32.8025128
MARS/CTR4737.23.5166435
SHACAL-2/CTR (128-bit key)5332.90.8961639
SHACAL-2/CTR (512-bit key)5432.60.9191681
DES/CTR3254.78.37215320
DES-XEX3/CTR2960.68.30915206
DES-EDE3/CTR13134.527.31749989
IDEA/CTR3549.90.6981277
RC5 (r=16)7523.42.5494665
Blowfish/CTR5830.062.683114710
TEA/CTR2765.10.6381167
XTEA/CTR2667.40.6361165
CAST-128/CTR5531.91.0081844
SKIPJACK/CTR10180.53.4566324
SEED/CTR (1/2 K table)2959.20.7621394
OperationMilliseconds/OperationMegacycles/Operation
RSA 1024 Encryption0.080.14
RSA 1024 Decryption1.462.68
LUC 1024 Encryption0.080.14
LUC 1024 Decryption2.494.55
DLIES 1024 Encryption0.851.56
DLIES 1024 Encryption with precomputation1.492.72
DLIES 1024 Decryption1.182.17
LUCELG 512 Encryption0.581.05
LUCELG 512 Encryption with precomputation0.581.05
LUCELG 512 Decryption0.651.18
RSA 2048 Encryption0.160.29
RSA 2048 Decryption6.0811.12
LUC 2048 Encryption0.180.33
LUC 2048 Decryption9.8918.10
DLIES 2048 Encryption4.117.52
DLIES 2048 Encryption with precomputation4.548.30
DLIES 2048 Decryption3.867.07
LUCELG 1024 Encryption1.893.45
LUCELG 1024 Encryption with precomputation1.883.45
LUCELG 1024 Decryption1.733.17
RSA 1024 Signature1.482.71
RSA 1024 Verification0.070.13
RW 1024 Signature2.033.72
RW 1024 Verification0.050.08
LUC 1024 Signature2.494.56
LUC 1024 Verification0.080.14
NR 1024 Signature0.450.82
NR 1024 Signature with precomputation0.420.76
NR 1024 Verification0.510.92
NR 1024 Verification with precomputation0.701.29
DSA 1024 Signature0.450.83
DSA 1024 Signature with precomputation0.420.78
DSA 1024 Verification0.520.94
DSA 1024 Verification with precomputation0.671.23
LUC-HMP 512 Signature0.581.06
LUC-HMP 512 Signature with precomputation0.581.06
LUC-HMP 512 Verification0.601.09
LUC-HMP 512 Verification with precomputation0.601.09
ESIGN 1023 Signature0.220.40
ESIGN 1023 Verification0.070.12
ESIGN 1536 Signature0.380.70
ESIGN 1536 Verification0.140.26
RSA 2048 Signature6.0511.06
RSA 2048 Verification0.160.29
RW 2048 Signature7.3713.49
RW 2048 Verification0.100.18
LUC 2048 Signature9.9218.16
LUC 2048 Verification0.180.32
NR 2048 Signature2.093.83
NR 2048 Signature with precomputation0.931.71
NR 2048 Verification2.394.37
NR 2048 Verification with precomputation1.572.88
LUC-HMP 1024 Signature1.913.50
LUC-HMP 1024 Signature with precomputation1.923.51
LUC-HMP 1024 Verification2.023.70
LUC-HMP 1024 Verification with precomputation1.973.60
ESIGN 2046 Signature0.480.88
ESIGN 2046 Verification0.150.28
XTR-DH 171 Key-Pair Generation0.781.43
XTR-DH 171 Key Agreement1.552.83
XTR-DH 342 Key-Pair Generation1.873.43
XTR-DH 342 Key Agreement3.746.85
DH 1024 Key-Pair Generation0.450.82
DH 1024 Key-Pair Generation with precomputation0.831.51
DH 1024 Key Agreement1.182.16
DH 2048 Key-Pair Generation2.143.92
DH 2048 Key-Pair Generation with precomputation2.404.39
DH 2048 Key Agreement3.847.03
LUCDIF 512 Key-Pair Generation0.300.55
LUCDIF 512 Key-Pair Generation with precomputation0.300.55
LUCDIF 512 Key Agreement0.641.18
LUCDIF 1024 Key-Pair Generation0.981.79
LUCDIF 1024 Key-Pair Generation with precomputation0.981.79
LUCDIF 1024 Key Agreement1.733.17
MQV 1024 Key-Pair Generation0.430.78
MQV 1024 Key-Pair Generation with precomputation0.400.73
MQV 1024 Key Agreement0.911.66
MQV 2048 Key-Pair Generation2.093.83
MQV 2048 Key-Pair Generation with precomputation0.921.68
MQV 2048 Key Agreement3.977.27
ECIES over GF(p) 256 Encryption5.6510.34
ECIES over GF(p) 256 Encryption with precomputation4.217.70
ECIES over GF(p) 256 Decryption3.987.29
ECDSA over GF(p) 256 Signature2.885.27
ECDSA over GF(p) 256 Signature with precomputation2.143.92
ECDSA over GF(p) 256 Verification8.5315.61
ECDSA over GF(p) 256 Verification with precomputation3.586.56
ECDHC over GF(p) 256 Key-Pair Generation2.875.25
ECDHC over GF(p) 256 Key-Pair Generation with precomputation2.113.87
ECDHC over GF(p) 256 Key Agreement2.825.17
ECMQVC over GF(p) 256 Key-Pair Generation2.845.20
ECMQVC over GF(p) 256 Key-Pair Generation with precomputation2.194.01
ECMQVC over GF(p) 256 Key Agreement8.3115.21
ECIES over GF(2^n) 233 Encryption21.1738.74
ECIES over GF(2^n) 233 Encryption with precomputation6.0811.13
ECIES over GF(2^n) 233 Decryption12.1522.23
ECDSA over GF(2^n) 233 Signature10.6219.43
ECDSA over GF(2^n) 233 Signature with precomputation3.085.64
ECDSA over GF(2^n) 233 Verification12.8023.43
ECDSA over GF(2^n) 233 Verification with precomputation5.309.69
ECDHC over GF(2^n) 233 Key-Pair Generation10.5119.23
ECDHC over GF(2^n) 233 Key-Pair Generation with precomputation3.035.55
ECDHC over GF(2^n) 233 Key Agreement10.7219.61
ECMQVC over GF(2^n) 233 Key-Pair Generation10.4919.20
ECMQVC over GF(2^n) 233 Key-Pair Generation with precomputation3.045.57
ECMQVC over GF(2^n) 233 Key Agreement13.2024.16

Notes


Written by: Wei Dai Last modified: 3/31/2009