Crypto Benchmark on STM32U5 MCU
ARM Cortex-M33 @ 160 MHz
This benchmark conducted on B-U585I-IOT02A discovery kit for IoT node with STM32U5 series 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 STM32U5 microcontroller.
STM32U5 MCU also includes crypto hardware acceleration. In the following comparison charts, both hardware and software performance are presented in the relevant sections.
Cipher Algorithms
STM32U585 @ 160 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using Clang with optimization level 3
Algorithm | Encryption (Software) | Decryption (Software) | Encryption (Hardware) | Decryption (Hardware) |
---|---|---|---|---|
3DES-CBC | 0.461 MB/s | 0.462 MB/s | - | - |
3DES-CTR | 0.472 MB/s | 0.472 MB/s | - | - |
AES128-CBC | 2.302 MB/s | 2.191 MB/s | 28.169 MB/s | 27.7 MB/s |
AES192-CBC | 2.023 MB/s | 1.934 MB/s | - | - |
AES256-CBC | 1.804 MB/s | 1.736 MB/s | 21.598 MB/s | 21.231 MB/s |
AES128-CTR | 2.279 MB/s | 2.278 MB/s | 27.472 MB/s | 27.247 MB/s |
AES192-CTR | 2.005 MB/s | 2.004 MB/s | - | - |
AES256-CTR | 1.79 MB/s | 1.789 MB/s | 21.097 MB/s | 21.052 MB/s |
SM4-CBC | 1.844 MB/s | 1.834 MB/s | - | - |
SM4-CTR | 1.845 MB/s | 1.845 MB/s | - | - |
AEAD Algorithms
STM32U585 @ 160 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using Clang with optimization level 3
Algorithm | Encryption (Software) | Decryption (Software) | Encryption (Hardware) | Decryption (Hardware) |
---|---|---|---|---|
AES128-GCM | 1.209 MB/s | 1.247 MB/s | 26.178 MB/s | 26.109 MB/s |
AES192-GCM | 1.122 MB/s | 1.156 MB/s | - | - |
AES256-GCM | 1.049 MB/s | 1.079 MB/s | 20.242 MB/s | 20.242 MB/s |
AES128-CCM | 1.263 MB/s | 1.228 MB/s | 15.267 MB/s | 15.22 MB/s |
AES192-CCM | 1.092 MB/s | 1.065 MB/s | - | - |
AES256-CCM | 0.962 MB/s | 0.942 MB/s | 11.507 MB/s | 11.454 MB/s |
SM4-GCM | 1.12 MB/s | 1.121 MB/s | - | - |
SM4-CCM | 0.956 MB/s | 0.923 MB/s | - | - |
Ascon-AEAD128 | 2.276 MB/s | 2.312 MB/s | - | - |
ChaCha20Poly1305 | 3.672 MB/s | 3.661 MB/s | - | - |
Hash Algorithms
STM32U585 @ 160 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using Clang with optimization level 3
Algorithm | Speed (Software) | Speed (Hardware) |
---|---|---|
MD5 | 12.82 MB/s | 84.745 MB/s |
SHA-1 | 2.905 MB/s | 74.626 MB/s |
SHA-224 | 2.26 MB/s | 83.333 MB/s |
SHA-256 | 2.261 MB/s | 83.333 MB/s |
SHA-384 | 1.305 MB/s | - |
SHA-512 | 1.305 MB/s | - |
SHA3-224 | 1.299 MB/s | - |
SHA3-256 | 1.228 MB/s | - |
SHA3-384 | 0.942 MB/s | - |
SHA3-512 | 0.654 MB/s | - |
SM3 | 2.042 MB/s | - |
Ascon-Hash256 | 0.842 MB/s | - |
Signature Algorithms
STM32U585 @ 160 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using Clang with optimization level 3
Algorithm | Generation (Software) | Verification (Software) | Generation (Hardware) | Verification (Hardware) |
---|---|---|---|---|
RSA (1024 bits) | 82.2 ms | 13.1 ms | 12.1 ms | 1 ms |
RSA (2048 bits) | 466.8 ms | 49 ms | 75.7 ms | 2.9 ms |
RSA (3072 bits) | 1375.5 ms | 105.5 ms | 236.3 ms | 7 ms |
RSA (4096 bits) | 3039.8 ms | 187.2 ms | 535.4 ms | 12.1 ms |
DSA (1024 bits) | 47.5 ms | 99.8 ms | 14.9 ms | 34.9 ms |
DSA (2048 bits) | 233 ms | 493.3 ms | 61.2 ms | 149.8 ms |
EC Signature Algorithms
STM32U585 @ 160 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using Clang with optimization level 3
Algorithm | Generation (Software) | Verification (Software) | Generation (Hardware) | Verification (Hardware) |
---|---|---|---|---|
ECDSA (secp256r1) | 73.1 ms | 65.6 ms | 17.3 ms | 18.3 ms |
ECDSA (secp384r1) | 179 ms | 162.3 ms | 45.1 ms | 50.3 ms |
ECDSA (secp521r1) | 351.2 ms | 312.2 ms | 104.6 ms | 119.3 ms |
ECDSA (brainpoolP256r1) | 142.5 ms | 142.7 ms | 17.3 ms | 18.5 ms |
ECDSA (brainpoolP384r1) | 347.8 ms | 348.6 ms | 44.5 ms | 50.1 ms |
ECDSA (brainpoolP512r1) | 685.4 ms | 701 ms | 90.5 ms | 104.6 ms |
SM2 | 64.3 ms | 64.3 ms | 22.6 ms | 22.6 ms |
EdDSA (Ed25519) | 16.7 ms | 15.1 ms | - | - |
EdDSA (Ed448) | 78.9 ms | 70.3 ms | - | - |
Key Exchange Algorithms
STM32U585 @ 160 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using Clang with optimization level 3
Algorithm | Public Key Generation (Software) | Shared Secret Computation (Software) | Public Key Generation (Hardware) | Shared Secret Computation (Hardware) |
---|---|---|---|---|
Diffie-Hellman (1024 bits) | 188.8 ms | 188.9 ms | 36.5 ms | 36.3 ms |
Diffie-Hellman (2048 bits) | 1353.4 ms | 1353.6 ms | 261 ms | 260.9 ms |
EC Key Exchange Algorithms
STM32U585 @ 160 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using Clang with optimization level 3
Algorithm | Public Key Generation (Software) | Shared Secret Computation (Software) | Public Key Generation (Hardware) | Shared Secret Computation (Hardware) |
---|---|---|---|---|
ECDH (secp256r1) | 64.1 ms | 64 ms | 22.3 ms | 22.2 ms |
ECDH (secp384r1) | 157.3 ms | 157.2 ms | 61.2 ms | 61.1 ms |
ECDH (secp521r1) | 301.3 ms | 301.1 ms | 148.2 ms | 148.1 ms |
ECDH (brainpoolP256r1) | 132.2 ms | 132.1 ms | 29.4 ms | 29.3 ms |
ECDH (brainpoolP384r1) | 322.6 ms | 322.5 ms | 78 ms | 77.9 ms |
ECDH (brainpoolP512r1) | 634.9 ms | 634.7 ms | 162.4 ms | 162.3 ms |
ECDH (SM2) | 64.3 ms | 64.3 ms | 22.7 ms | 22.5 ms |
ECDH (X25519) | 9 ms | 9 ms | - | - |
ECDH (X448) | 40 ms | 40 ms | - | - |