Crypto Benchmark on STM32L4+ MCU
ARM Cortex-M4 @ 120 MHz
This benchmark conducted on B-L4S5I-IOT01A STM32L4+ discovery kit with STM32L4S5VIT6 MCU will help you in qualifying performance of CycloneCRYPTO (Cryptography library), CycloneSSL (TLS 1.3 & DTLS 1.2 library), CycloneSSH (SSH library with SCP & SFTP protocols), CycloneIPSEC (IPsec/IKEv2 library) and CycloneTCP (TCP/IPv4/IPv6 stack with secure protocols like HTTPS, FTPS, MQTTS, Secure WebSocket, Secure CoAP, Secure Modbus/TCP, SNMPv3...) running on STMicroelectronics STM32L4+ microcontroller.
STM32L4+ MCU also includes crypto hardware acceleration. In the following comparison charts, both hardware and software performance are presented in the relevant sections.
Cipher Algorithms
STM32L4S5 @ 120 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Encryption (Software) | Decryption (Software) | Encryption (Hardware) | Decryption (Hardware) |
---|---|---|---|---|
3DES-CBC | 0.172 MB/s | 0.172 MB/s | - | - |
3DES-CTR | 0.172 MB/s | 0.172 MB/s | - | - |
AES128-CBC | 0.949 MB/s | 0.965 MB/s | 17.482 MB/s | 17.482 MB/s |
AES192-CBC | 0.817 MB/s | 0.836 MB/s | - | - |
AES256-CBC | 0.717 MB/s | 0.738 MB/s | 14.164 MB/s | 14.204 MB/s |
AES128-CTR | 0.96 MB/s | 0.954 MB/s | 16.75 MB/s | 16.694 MB/s |
AES192-CTR | 0.828 MB/s | 0.822 MB/s | - | - |
AES256-CTR | 0.726 MB/s | 0.719 MB/s | 13.698 MB/s | 13.623 MB/s |
SM4-CBC | 1.282 MB/s | 1.238 MB/s | - | - |
SM4-CTR | 1.219 MB/s | 1.219 MB/s | - | - |
AEAD Algorithms
STM32L4S5 @ 120 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Encryption (Software) | Decryption (Software) | Encryption (Hardware) | Decryption (Hardware) |
---|---|---|---|---|
AES128-GCM | 0.526 MB/s | 0.528 MB/s | 15.772 MB/s | 15.455 MB/s |
AES192-GCM | 0.482 MB/s | 0.483 MB/s | - | - |
AES256-GCM | 0.447 MB/s | 0.448 MB/s | 13.003 MB/s | 12.787 MB/s |
AES128-CCM | 0.493 MB/s | 0.493 MB/s | 9.891 MB/s | 9.765 MB/s |
AES192-CCM | 0.418 MB/s | 0.418 MB/s | - | - |
AES256-CCM | 0.366 MB/s | 0.365 MB/s | 7.812 MB/s | 7.727 MB/s |
SM4-GCM | 0.655 MB/s | 0.653 MB/s | - | - |
SM4-CCM | 0.654 MB/s | 0.652 MB/s | - | - |
Ascon-AEAD128 | 1.433 MB/s | 1.464 MB/s | - | - |
ChaCha20Poly1305 | 1.015 MB/s | 1.013 MB/s | - | - |
Hash Algorithms
STM32L4S5 @ 120 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Speed (Software) | Speed (Hardware) |
---|---|---|
MD5 | 3.284 MB/s | 51.813 MB/s |
SHA-1 | 1.66 MB/s | 47.619 MB/s |
SHA-224 | 1.511 MB/s | 50 MB/s |
SHA-256 | 1.511 MB/s | 50 MB/s |
SHA-384 | 0.698 MB/s | - |
SHA-512 | 0.698 MB/s | - |
SHA3-224 | 0.269 MB/s | - |
SHA3-256 | 0.254 MB/s | - |
SHA3-384 | 0.195 MB/s | - |
SHA3-512 | 0.135 MB/s | - |
SM3 | 1.346 MB/s | - |
Ascon-Hash256 | 0.592 MB/s | - |
Signature Algorithms
STM32L4S5 @ 120 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Generation (Software) | Verification (Software) |
---|---|---|
RSA (1024 bits) | 168.7 ms | 30.6 ms |
RSA (2048 bits) | 846.4 ms | 111.6 ms |
RSA (3072 bits) | 2362.9 ms | 239 ms |
DSA (1024 bits) | 94.2 ms | 196.7 ms |
DSA (2048 bits) | 420.7 ms | 892.3 ms |
EC Signature Algorithms
STM32L4S5 @ 120 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Generation (Software) | Verification (Software) |
---|---|---|
ECDSA (secp256r1) | 128.7 ms | 116.1 ms |
ECDSA (secp384r1) | 292 ms | 263.9 ms |
ECDSA (secp521r1) | 592.5 ms | 519.8 ms |
ECDSA (brainpoolP256r1) | 197.2 ms | 195.7 ms |
ECDSA (brainpoolP384r1) | 513.9 ms | 510.2 ms |
ECDSA (brainpoolP512r1) | 1065.7 ms | 1075.6 ms |
SM2 | 118.1 ms | 118.1 ms |
EdDSA (Ed25519) | 50.8 ms | 46.7 ms |
EdDSA (Ed448) | 179.6 ms | 159.5 ms |
Key Exchange Algorithms
STM32L4S5 @ 120 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Public Key Generation (Software) | Shared Secret Computation (Software) |
---|---|---|
Diffie-Hellman (1024 bits) | 321.4 ms | 320.8 ms |
Diffie-Hellman (2048 bits) | 2155.7 ms | 2152.2 ms |
EC Key Exchange Algorithms
STM32L4S5 @ 120 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Public Key Generation (Software) | Shared Secret Computation (Software) |
---|---|---|
ECDH (secp256r1) | 117.3 ms | 117.1 ms |
ECDH (secp384r1) | 262 ms | 261.7 ms |
ECDH (secp521r1) | 516.7 ms | 516.1 ms |
ECDH (brainpoolP256r1) | 184.2 ms | 183.9 ms |
ECDH (brainpoolP384r1) | 478.4 ms | 478 ms |
ECDH (brainpoolP512r1) | 990.8 ms | 990.4 ms |
ECDH (SM2) | 118.1 ms | 117.9 ms |
ECDH (X25519) | 28.3 ms | 28.3 ms |
ECDH (X448) | 91.7 ms | 91.7 ms |