Further to our previous announcement about bringing post-quantum KEMs in TLS 1.3 on STM32, we have also brought PQM4’s KYBER Level1 KEM into our benchmarking infrastructure. Note that we do not build PQM4 with optimizations as a bug fix is soon to come for optimization flags. You can monitor the progress of the issue here.
Once that is fixed, we’ll re-post our results on this blog. We run the benchmarks together with conventional algorithms so you can compare the results. Please see below:
[NUCLEO-F446ZE at 168MHz using SP Math with Assembly]
Running wolfCrypt Benchmarks…
wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each)
RNG 1 MB took 1.004 seconds, 1.070 MB/s
AES-128-CBC-enc 1 MB took 1.000 seconds, 1.172 MB/s
AES-128-CBC-dec 1 MB took 1.008 seconds, 1.187 MB/s
AES-192-CBC-enc 1 MB took 1.000 seconds, 1.001 MB/s
AES-192-CBC-dec 1 MB took 1.004 seconds, 0.997 MB/s
AES-256-CBC-enc 900 KB took 1.007 seconds, 893.744 KB/s
AES-256-CBC-dec 900 KB took 1.004 seconds, 896.414 KB/s
AES-128-GCM-enc 75 KB took 1.094 seconds, 68.556 KB/s
AES-128-GCM-dec 75 KB took 1.094 seconds, 68.556 KB/s
AES-192-GCM-enc 75 KB took 1.118 seconds, 67.084 KB/s
AES-192-GCM-dec 75 KB took 1.117 seconds, 67.144 KB/s
AES-256-GCM-enc 75 KB took 1.134 seconds, 66.138 KB/s
AES-256-GCM-dec 75 KB took 1.130 seconds, 66.372 KB/s
GMAC Small 75 KB took 1.008 seconds, 74.405 KB/s
CHACHA 4 MB took 1.004 seconds, 4.426 MB/s
CHA-POLY 3 MB took 1.000 seconds, 2.905 MB/s
POLY1305 12 MB took 1.000 seconds, 12.183 MB/s
SHA-256 3 MB took 1.000 seconds, 2.832 MB/s
HMAC-SHA256 3 MB took 1.000 seconds, 2.808 MB/s
RSA 2048 public 78 ops took 1.016 sec, avg 13.026 ms, 76.772 ops/sec
RSA 2048 private 4 ops took 1.836 sec, avg 459.000 ms, 2.179 ops/sec
DH 2048 key gen 5 ops took 1.196 sec, avg 239.200 ms, 4.181 ops/sec
DH 2048 agree 6 ops took 1.439 sec, avg 239.833 ms, 4.170 ops/sec
ECC [ SECP256R1] 256 key gen 113 ops took 1.000 sec, avg 8.850 ms, 113.000 ops/sec
ECDHE [ SECP256R1] 256 agree 54 ops took 1.008 sec, avg 18.667 ms, 53.571 ops/sec
ECDSA [ SECP256R1] 256 sign 78 ops took 1.019 sec, avg 13.064 ms, 76.546 ops/sec
ECDSA [ SECP256R1] 256 verify 38 ops took 1.012 sec, avg 26.632 ms, 37.549 ops/sec
kyber_level1-kg 62 ops took 1.004 sec, avg 16.194 ms, 61.753 ops/sec
kyber_level1-ed 28 ops took 1.043 sec, avg 37.250 ms, 26.846 ops/sec
Benchmark complete
If you have any questions or run into any issues, contact us at facts@wolfssl.com, or call us at +1 425 245 8247.