The wiki is currently read-only for maintenance

world leader in high performance signal processing

Trace: » crypto
# Crypto++® Library

## Benchmark Results

Throughput Geometric Average: 9.68
^{1)}
only compiled executable code can receive FIPS validation. You cannot compile Crypto++ yourself and claim FIPS 140-2 conformance on the resulting module, unless the it goes through the validation process. At this time, there are no FIPS validated binaries for the Blackfin.

Table of Contents

Crypto++ Library is a free C++ class library of cryptographic schemes. Currently the library contains the following algorithms:

algorithm type | name |
---|---|

authenticated encryption schemes | GCM, CCM, EAX |

high speed stream ciphers | Panama, Sosemanuk, Salsa20, XSalsa20 |

AES and AES candidates | AES (Rijndael), RC6, MARS, Twofish, Serpent, CAST-256 |

other block ciphers | IDEA, Triple-DES (DES-EDE2 and DES-EDE3), Camellia, http://www.cryptolounge.org/wiki/SEED">SEED, RC5, Blowfish, TEA, XTEA, Skipjack, SHACAL-2 |

block cipher modes of operation | ECB, CBC, CBC ciphertext stealing (CTS), CFB, OFB, counter mode (CTR) |

message authentication codes | VMAC, HMAC, CMAC, CBC-MAC, DMAC, Two-Track-MAC |

hash functions | SHA-1, SHA-2 (SHA-224, SHA-256, SHA-384, and SHA-512), Tiger, WHIRLPOOL, RIPEMD-128, RIPEMD-256, RIPEMD-160, RIPEMD-320 |

public-key cryptography | RSA, DSA, ElGamal, Nyberg-Rueppel (NR), Rabin, Rabin-Williams (RW), LUC, LUCELG, DLIES (variants of DHAES), ESIGN |

padding schemes for public-key systems | PKCS#1 v2.0, OAEP, PSS, PSSR, IEEE P1363 EMSA2 and EMSA5 |

key agreement schemes | Diffie-Hellman (DH), Unified Diffie-Hellman (DH2), Menezes-Qu-Vanstone (MQV), LUCDIF, XTR-DH |

elliptic curve cryptography | ECDSA, ECNR, ECIES, ECDH, ECMQV |

insecure or obsolescent algorithms retained for backwards compatibility and historical value | MD2, MD4, MD5, Panama Hash, DES, ARC4, SEAL 3.0, WAKE, WAKE-OFB, DESX (DES-XEX3), RC2, SAFER, 3-WAY, GOST, SHARK, CAST-128, Square |

Other features include:

- pseudo random number generators (PRNG): ANSI X9.17 appendix C, RandomPool
- password based key derivation functions: PBKDF1 and PBKDF2 from PKCS #5, PBKDF from PKCS #12 appendix B
- Shamir's secret sharing scheme and Rabin's information dispersal algorithm (IDA)
- fast multi-precision integer (bignum) and polynomial operations
- finite field arithmetics, including GF(p) and GF(2^n)
- prime number generation and verification
- useful non-cryptographic algorithms
- DEFLATE (RFC 1951) compression/decompression with gzip (RFC 1952) and zlib (RFC 1950) format support
- hex, base-32, and base-64 coding/decoding
- 32-bit CRC and Adler32 checksum

- A high level interface for most of the above, using a filter/pipeline metaphor
- benchmarks and validation testing
- FIPS 140-2 Validated
^{1)}

root:/mnt/cryptopp-5.6.0>cat /proc/cpuinfoprocessor : 0 vendor_id : Analog Devices cpu family : 0x27c8 model name : ADSP-BF537 500(MHz CCLK) 100(MHz SCLK) (mpu off) stepping : 2 cpu MHz : 500.000/100.000 bogomips : 997.37 Calibration : 498688000 loops cache size : 16 KB(L1 icache) 32 KB(L1 dcache-wb) 0 KB(L2 cache) dbank-A/B : cache/cache icache setup : 4 Sub-banks/4 Ways, 32 Lines/Way dcache setup : 2 Super-banks/4 Sub-banks/2 Ways, 64 Lines/Way board name : ADI BF537-STAMP board memory : 65536 kB (0x00000000 -> 0x04000000) kernel memory : 57336 kB (0x00001000 -> 0x037ff000) root:/mnt/cryptopp-5.6.0>versionkernel: Linux release 2.6.28.7-ADI-2009R1-pre-svn6180, build #89 Tue Mar 17 18:00:06 EDT 2009 toolchain: bfin-linux-uclibc-gcc release gcc version 4.3.3 (ADI-trunk/svn-3216) user-dist: release svn-7890, build #240 Tue Mar 17 17:59:00 EDT 2009

Compiled with `-O2`

root:/mnt/cryptopp-5.6.0>./cryptest.exe b 5 .5CPU frequency of the test platform is 5e+08 Hz.

yle=

Algorithm | MiB/Second | Cycles Per Byte | Microseconds to Setup Key and IV | Cycles to Setup Key and IV |
---|---|---|---|---|

AES/GCM (2K tables) | 2.74 | 173.7 | 43.089 | 21544 |

AES/GCM (64K tables) | 1.89 | 252.1 | 990.234 | 495117 |

AES/CCM | 1.91 | 249.1 | 17.193 | 8597 |

AES/EAX | 1.92 | 248.6 | 38.376 | 19188 |

GMAC(AES) (2K tables) | 9.36 | 51.0 | 47.690 | 23845 |

GMAC(AES) (64K tables) | 4.22 | 113.0 | 990.234 | 495117 |

VMAC(AES)-64 | 20.1 | 23.7 | 63.540 | 31770 |

VMAC(AES)-128 | 10.3 | 46.4 | 76.752 | 38376 |

HMAC(SHA-1) | 12.7 | 37.6 | 13.951 | 6975 |

Two-Track-MAC | 7.55 | 63.2 | 0.540 | 270 |

CMAC(AES) | 3.79 | 125.8 | 9.318 | 4659 |

DMAC(AES) | 3.78 | 126.1 | 24.414 | 12207 |

CRC32 | 48.6 | 9.8 | ||

Adler32 | 85.6 | 5.6 | ||

MD5 | 32.2 | 14.8 | ||

SHA-1 | 12.7 | 37.6 | ||

SHA-256 | 4.68 | 101.9 | ||

SHA-512 | 2.57 | 185.4 | ||

Tiger | 6.68 | 71.4 | ||

Whirlpool | 1.54 | 310.5 | ||

RIPEMD-160 | 11.7 | 40.7 | ||

RIPEMD-320 | 8.47 | 56.3 | ||

RIPEMD-128 | 21.7 | 22.0 | ||

RIPEMD-256 | 19.2 | 24.9 | ||

Panama-LE | 31.1 | 15.3 | 33.976 | 16988 |

Panama-BE | 29.2 | 16.4 | 34.214 | 17107 |

Salsa20 | 9.95 | 47.9 | 4.138 | 2069 |

Salsa20/12 | 13.9 | 34.2 | 4.754 | 2377 |

Salsa20/8 | 17.5 | 27.2 | 4.759 | 2380 |

Sosemanuk | 16.9 | 28.2 | 13.161 | 6581 |

MARC4 | 15.8 | 30.2 | 29.711 | 14856 |

SEAL-3.0-LE | 15.8 | 30.2 | 825.195 | 412598 |

WAKE-OFB-LE | 36.0 | 13.3 | 22.341 | 11170 |

AES/CTR (128-bit key) | 3.91 | 121.9 | 7.478 | 3739 |

AES/CTR (192-bit key) | 3.34 | 142.8 | 7.376 | 3688 |

AES/CTR (256-bit key) | 2.92 | 163.3 | 7.813 | 3906 |

AES/CBC (128-bit key) | 3.78 | 126.1 | 6.333 | 3167 |

AES/CBC (192-bit key) | 3.25 | 146.9 | 6.236 | 3118 |

AES/CBC (256-bit key) | 2.85 | 167.2 | 6.671 | 3335 |

AES/OFB (128-bit key) | 3.76 | 127.0 | 7.838 | 3919 |

AES/CFB (128-bit key) | 3.95 | 120.7 | 12.716 | 6358 |

AES/ECB (128-bit key) | 4.05 | 117.7 | 3.242 | 1621 |

Camellia/CTR (128-bit key) | 3.96 | 120.4 | 7.478 | 3739 |

Camellia/CTR (256-bit key) | 3.09 | 154.1 | 10.258 | 5129 |

Twofish/CTR | 3.72 | 128.1 | 127.704 | 63852 |

Serpent/CTR | 3.80 | 125.5 | 13.639 | 6820 |

CAST-256/CTR | 3.08 | 154.7 | 32.041 | 16021 |

RC6/CTR | 5.76 | 82.9 | 134.607 | 67304 |

MARS/CTR | 4.47 | 106.7 | 28.669 | 14334 |

SHACAL-2/CTR (128-bit key) | 4.35 | 109.7 | 8.961 | 4480 |

SHACAL-2/CTR (512-bit key) | 4.35 | 109.7 | 9.283 | 4641 |

DES/CTR | 2.23 | 213.4 | 434.570 | 217285 |

DES-XEX3/CTR | 1.94 | 245.6 | 434.570 | 217285 |

DES-EDE3/CTR | 0.82 | 579.4 | 1389.160 | 694580 |

IDEA/CTR | 3.70 | 129.0 | 7.455 | 3727 |

RC5 (r=16) | 6.19 | 77.0 | 105.967 | 52984 |

Blowfish/CTR | 3.64 | 130.8 | 922.852 | 461426 |

TEA/CTR | 3.62 | 131.7 | 6.820 | 3410 |

XTEA/CTR | 3.08 | 154.7 | 6.244 | 3122 |

CAST-128/CTR | 4.83 | 98.6 | 15.117 | 7559 |

SKIPJACK/CTR | 2.50 | 191.0 | 52.153 | 26076 |

SEED/CTR (1/2 K table) | 2.41 | 197.9 | 10.522 | 5261 |

Operation | Milliseconds/Operation | Megacycles/Operation |
---|---|---|

RSA 1024 Encryption | 3.40 | 1.70 |

RSA 1024 Decryption | 169.00 | 84.50 |

LUC 1024 Encryption | 4.30 | 2.15 |

LUC 1024 Decryption | 308.24 | 154.12 |

DLIES 1024 Encryption | 137.03 | 68.51 |

DLIES 1024 Encryption with precomputation | 103.47 | 51.73 |

DLIES 1024 Decryption | 78.75 | 39.38 |

LUCELG 512 Encryption | 96.15 | 48.08 |

LUCELG 512 Encryption with precomputation | 95.85 | 47.92 |

LUCELG 512 Decryption | 51.55 | 25.77 |

RSA 2048 Encryption | 8.62 | 4.31 |

RSA 2048 Decryption | 835.00 | 417.50 |

LUC 2048 Encryption | 11.26 | 5.63 |

LUC 2048 Decryption | 1330.00 | 665.00 |

DLIES 2048 Encryption | 533.00 | 266.50 |

DLIES 2048 Encryption with precomputation | 445.83 | 222.92 |

DLIES 2048 Decryption | 291.11 | 145.56 |

LUCELG 1024 Encryption | 290.00 | 145.00 |

LUCELG 1024 Encryption with precomputation | 289.44 | 144.72 |

LUCELG 1024 Decryption | 153.64 | 76.82 |

RSA 1024 Signature | 169.00 | 84.50 |

RSA 1024 Verification | 3.40 | 1.70 |

RW 1024 Signature | 169.67 | 84.83 |

RW 1024 Verification | 1.05 | 0.53 |

LUC 1024 Signature | 307.65 | 153.82 |

LUC 1024 Verification | 4.29 | 2.15 |

NR 1024 Signature | 69.32 | 34.66 |

NR 1024 Signature with precomputation | 23.79 | 11.90 |

NR 1024 Verification | 79.68 | 39.84 |

NR 1024 Verification with precomputation | 40.08 | 20.04 |

DSA 1024 Signature | 67.07 | 33.53 |

DSA 1024 Signature with precomputation | 23.15 | 11.57 |

DSA 1024 Verification | 77.38 | 38.69 |

DSA 1024 Verification with precomputation | 39.22 | 19.61 |

LUC-HMP 512 Signature | 95.85 | 47.92 |

LUC-HMP 512 Signature with precomputation | 95.66 | 47.83 |

LUC-HMP 512 Verification | 96.73 | 48.37 |

LUC-HMP 512 Verification with precomputation | 96.15 | 48.08 |

ESIGN 1023 Signature | 7.86 | 3.93 |

ESIGN 1023 Verification | 3.34 | 1.67 |

ESIGN 1536 Signature | 18.12 | 9.06 |

ESIGN 1536 Verification | 8.38 | 4.19 |

RSA 2048 Signature | 836.67 | 418.33 |

RSA 2048 Verification | 8.59 | 4.30 |

RW 2048 Signature | 841.67 | 420.83 |

RW 2048 Verification | 2.27 | 1.13 |

LUC 2048 Signature | 1330.00 | 665.00 |

LUC 2048 Verification | 11.26 | 5.63 |

NR 2048 Signature | 268.95 | 134.47 |

NR 2048 Signature with precomputation | 75.37 | 37.69 |

NR 2048 Verification | 302.94 | 151.47 |

NR 2048 Verification with precomputation | 126.75 | 63.38 |

LUC-HMP 1024 Signature | 289.44 | 144.72 |

LUC-HMP 1024 Signature with precomputation | 288.33 | 144.17 |

LUC-HMP 1024 Verification | 290.56 | 145.28 |

LUC-HMP 1024 Verification with precomputation | 290.00 | 145.00 |

ESIGN 2046 Signature | 18.12 | 9.06 |

ESIGN 2046 Verification | 8.53 | 4.27 |

XTR-DH 171 Key-Pair Generation | 29.53 | 14.76 |

XTR-DH 171 Key Agreement | 59.30 | 29.65 |

XTR-DH 342 Key-Pair Generation | 301.76 | 150.88 |

XTR-DH 342 Key Agreement | 609.00 | 304.50 |

DH 1024 Key-Pair Generation | 69.04 | 34.52 |

DH 1024 Key-Pair Generation with precomputation | 52.50 | 26.25 |

DH 1024 Key Agreement | 78.28 | 39.14 |

DH 2048 Key-Pair Generation | 267.89 | 133.95 |

DH 2048 Key-Pair Generation with precomputation | 223.48 | 111.74 |

DH 2048 Key Agreement | 286.67 | 143.33 |

LUCDIF 512 Key-Pair Generation | 48.27 | 24.13 |

LUCDIF 512 Key-Pair Generation with precomputation | 48.27 | 24.13 |

LUCDIF 512 Key Agreement | 52.19 | 26.09 |

LUCDIF 1024 Key-Pair Generation | 144.86 | 72.43 |

LUCDIF 1024 Key-Pair Generation with precomputation | 144.86 | 72.43 |

LUCDIF 1024 Key Agreement | 153.24 | 76.62 |

MQV 1024 Key-Pair Generation | 68.63 | 34.32 |

MQV 1024 Key-Pair Generation with precomputation | 23.57 | 11.78 |

MQV 1024 Key Agreement | 123.81 | 61.90 |

MQV 2048 Key-Pair Generation | 266.32 | 133.16 |

MQV 2048 Key-Pair Generation with precomputation | 73.97 | 36.99 |

MQV 2048 Key Agreement | 470.83 | 235.42 |

ECIES over GF(p) 256 Encryption | 162.90 | 81.45 |

ECIES over GF(p) 256 Encryption with precomputation | 63.54 | 31.77 |

ECIES over GF(p) 256 Decryption | 97.12 | 48.56 |

ECDSA over GF(p) 256 Signature | 81.97 | 40.98 |

ECDSA over GF(p) 256 Signature with precomputation | 32.39 | 16.19 |

ECDSA over GF(p) 256 Verification | 140.83 | 70.42 |

ECDSA over GF(p) 256 Verification with precomputation | 55.05 | 27.53 |

ECDHC over GF(p) 256 Key-Pair Generation | 81.61 | 40.81 |

ECDHC over GF(p) 256 Key-Pair Generation with precomputation | 31.71 | 15.85 |

ECDHC over GF(p) 256 Key Agreement | 83.50 | 41.75 |

ECMQVC over GF(p) 256 Key-Pair Generation | 82.30 | 41.15 |

ECMQVC over GF(p) 256 Key-Pair Generation with precomputation | 32.05 | 16.03 |

ECMQVC over GF(p) 256 Key Agreement | 140.56 | 70.28 |

ECIES over GF(2^n) 233 Encryption | 232.73 | 116.36 |

ECIES over GF(2^n) 233 Encryption with precomputation | 68.38 | 34.19 |

ECIES over GF(2^n) 233 Decryption | 132.11 | 66.05 |

ECNR over GF(2^n) 233 Signature | 117.44 | 58.72 |

ECNR over GF(2^n) 233 Signature with precomputation | 34.86 | 17.43 |

ECNR over GF(2^n) 233 Verification | 145.14 | 72.57 |

ECNR over GF(2^n) 233 Verification with precomputation | 59.18 | 29.59 |

ECDHC over GF(2^n) 233 Key-Pair Generation | 117.21 | 58.60 |

ECDHC over GF(2^n) 233 Key-Pair Generation with precomputation | 34.15 | 17.07 |

ECDHC over GF(2^n) 233 Key Agreement | 117.73 | 58.86 |

ECMQVC over GF(2^n) 233 Key-Pair Generation | 116.98 | 58.49 |

ECMQVC over GF(2^n) 233 Key-Pair Generation with precomputation | 34.15 | 17.07 |

ECMQVC over GF(2^n) 233 Key Agreement | 146.39 | 73.19 |