In the context of the recent collaboration between wolfSSL and Frontgrade Gaisler, we are excited to share some benchmark results of the wolfCrypt library running on the Gaisler GR740-MINI board.
The GR740, designed as ESA’s Next Generation Microprocessor (NGMP), is a radiation-hardened System-on-Chip (SoC) featuring a quad-core fault-tolerant LEON4 SPARC V8 processor.
WolfSSL and Gaisler aim to enhance security solutions for space-grade applications, leveraging the robust capabilities of the GR740 processor and the cryptographic know-how of wolfSSL.
Benchmark for wolfCrypt running on Baremetal:
------------------------------------------------------------------------------ wolfSSL version 5.8.0 ------------------------------------------------------------------------------ Math: Multi-Precision: Wolf(SP) word-size=32 bits=4096 sp_int.c Single Precision: ecc 256 384 rsa/dh 2048 3072 4096 sp_c32.c small wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each) AES-128-CBC-enc 3 MiB took 1.003 seconds, 3.432 MiB/s AES-128-CBC-dec 3 MiB took 1.002 seconds, 3.411 MiB/s AES-192-CBC-enc 3 MiB took 1.007 seconds, 2.958 MiB/s AES-192-CBC-dec 3 MiB took 1.005 seconds, 2.940 MiB/s AES-256-CBC-enc 3 MiB took 1.005 seconds, 2.601 MiB/s AES-256-CBC-dec 3 MiB took 1.001 seconds, 2.585 MiB/s AES-128-GCM-enc 475 KiB took 1.014 seconds, 468.300 KiB/s AES-128-GCM-dec 475 KiB took 1.015 seconds, 468.142 KiB/s AES-192-GCM-enc 475 KiB took 1.036 seconds, 458.356 KiB/s AES-192-GCM-dec 475 KiB took 1.037 seconds, 458.202 KiB/s AES-256-GCM-enc 450 KiB took 1.003 seconds, 448.872 KiB/s AES-256-GCM-dec 450 KiB took 1.003 seconds, 448.724 KiB/s GMAC Table 4-bit 546 KiB took 1.001 seconds, 545.432 KiB/s CHACHA 7 MiB took 1.002 seconds, 6.945 MiB/s CHA-POLY 4 MiB took 1.000 seconds, 4.466 MiB/s POLY1305 17 MiB took 1.001 seconds, 17.076 MiB/s SHA 10 MiB took 1.002 seconds, 9.675 MiB/s SHA-256 3 MiB took 1.003 seconds, 2.581 MiB/s SHA3-224 2 MiB took 1.011 seconds, 1.907 MiB/s SHA3-256 2 MiB took 1.003 seconds, 1.801 MiB/s SHA3-384 1 MiB took 1.014 seconds, 1.397 MiB/s SHA3-512 1 MiB took 1.021 seconds, 0.980 MiB/s HMAC-SHA 10 MiB took 1.001 seconds, 9.585 MiB/s HMAC-SHA256 3 MiB took 1.001 seconds, 2.561 MiB/s RSA 2048 public 78 ops took 1.017 sec, avg 13.035 ms, 76.715 ops/sec RSA 2048 private 2 ops took 1.480 sec, avg 739.794 ms, 1.352 ops/sec DH 2048 key gen 4 ops took 1.283 sec, avg 320.709 ms, 3.118 ops/sec DH 2048 agree 4 ops took 1.282 sec, avg 320.625 ms, 3.119 ops/sec ECC [ SECP256R1] 256 key gen 18 ops took 1.028 sec, avg 57.084 ms, 17.518 ops/sec ECDHE [ SECP256R1] 256 agree 18 ops took 1.025 sec, avg 56.947 ms, 17.560 ops/sec ECDSA [ SECP256R1] 256 sign 16 ops took 1.010 sec, avg 63.136 ms, 15.839 ops/sec ECDSA [ SECP256R1] 256 verify 10 ops took 1.145 sec, avg 114.465 ms, 8.736 ops/sec
Benchmark of wolfCrypt running in Linux Environment:
------------------------------------------------------------------------------ wolfSSL version 5.8.0 ------------------------------------------------------------------------------ Math: Multi-Precision: Wolf(SP) word-size=32 bits=4096 sp_int.c Single Precision: ecc 256 384 rsa/dh 2048 3072 4096 sp_c32.c small wolfCrypt Benchmark (block bytes 1048576, min 1.0 sec each) AES-128-CBC-enc 5 MiB took 1.502 seconds, 3.330 MiB/s AES-128-CBC-dec 5 MiB took 1.542 seconds, 3.242 MiB/s AES-192-CBC-enc 5 MiB took 1.737 seconds, 2.879 MiB/s AES-192-CBC-dec 5 MiB took 1.780 seconds, 2.810 MiB/s AES-256-CBC-enc 5 MiB took 1.971 seconds, 2.536 MiB/s AES-256-CBC-dec 5 MiB took 2.015 seconds, 2.481 MiB/s AES-128-GCM-enc 5 MiB took 10.777 seconds, 0.464 MiB/s AES-128-GCM-dec 5 MiB took 10.744 seconds, 0.465 MiB/s AES-192-GCM-enc 5 MiB took 10.983 seconds, 0.455 MiB/s AES-192-GCM-dec 5 MiB took 10.980 seconds, 0.455 MiB/s AES-256-GCM-enc 5 MiB took 11.218 seconds, 0.446 MiB/s AES-256-GCM-dec 5 MiB took 11.215 seconds, 0.446 MiB/s GMAC Table 4-bit 1024 KiB took 1.863 seconds, 549.684 KiB/s CHACHA 10 MiB took 1.483 seconds, 6.742 MiB/s CHA-POLY 5 MiB took 1.031 seconds, 4.852 MiB/s POLY1305 20 MiB took 1.158 seconds, 17.270 MiB/s SHA 10 MiB took 1.063 seconds, 9.410 MiB/s SHA-256 5 MiB took 1.494 seconds, 3.346 MiB/s SHA3-224 5 MiB took 2.609 seconds, 1.917 MiB/s SHA3-256 5 MiB took 2.757 seconds, 1.814 MiB/s SHA3-384 5 MiB took 3.578 seconds, 1.398 MiB/s SHA3-512 5 MiB took 5.126 seconds, 0.975 MiB/s HMAC-SHA 10 MiB took 1.062 seconds, 9.412 MiB/s HMAC-SHA256 5 MiB took 1.494 seconds, 3.346 MiB/s RSA 2048 public 100 ops took 1.309 sec, avg 13.094 ms, 76.373 ops/sec RSA 2048 private 100 ops took 74.411 sec, avg 744.114 ms, 1.344 ops/sec DH 2048 key gen 4 ops took 1.291 sec, avg 322.812 ms, 3.098 ops/sec DH 2048 agree 100 ops took 32.274 sec, avg 322.741 ms, 3.098 ops/sec ECC [ SECP256R1] 256 key gen 100 ops took 5.748 sec, avg 57.484 ms, 17.396 ops/sec ECDHE [ SECP256R1] 256 agree 100 ops took 5.737 sec, avg 57.371 ms, 17.431 ops/sec ECDSA [ SECP256R1] 256 sign 100 ops took 6.360 sec, avg 63.599 ms, 15.723 ops/sec ECDSA [ SECP256R1] 256 verify 100 ops took 11.532 sec, avg 115.318 ms, 8.672 ops/sec
These results underscore the potential of integrating wolfSSL’s cryptographic solutions with Gaisler’s advanced hardware, paving the way for secure high-performance cryptography that comply with latest industry standards, including DO-178C Level A, FIPS 140-3 and MISRA-C.
If you have questions about any of the above, please contact us at facts@wolfssl.com or call us at +1 425 245 8247.
Download wolfSSL Now