Crypto Benchmark on STM32H5 MCU
ARM Cortex-M33 @ 250 MHz
This benchmark conducted on STM32H573I-DK discovery kit with STM32H573IIK3Q 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 STM32H5 microcontroller.
STM32H5 MCU also includes crypto hardware acceleration. In the following comparison charts, both hardware and software performance are presented in the relevant sections.
Note: STM32H563 variant offers hardware acceleration only for hash (SHA-1 / SHA-256 / SHA-384 / SHA-512) and ECDSA signature verification.
See also software crypto performance comparison: STM32F4 versus STM32H5
Cipher Algorithms
STM32H573 @ 250 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.743 MB/s | 0.746 MB/s | - | - |
| 3DES-CTR | 0.742 MB/s | 0.742 MB/s | - | - |
| AES128-CBC | 3.727 MB/s | 3.645 MB/s | 44.052 MB/s | 43.29 MB/s |
| AES192-CBC | 3.26 MB/s | 3.204 MB/s | - | - |
| AES256-CBC | 2.898 MB/s | 2.857 MB/s | 33.783 MB/s | 33.222 MB/s |
| AES128-CTR | 3.732 MB/s | 3.735 MB/s | 42.918 MB/s | 42.735 MB/s |
| AES192-CTR | 3.265 MB/s | 3.267 MB/s | - | - |
| AES256-CTR | 2.901 MB/s | 2.903 MB/s | 33.003 MB/s | 33.003 MB/s |
| SM4-CBC | 2.719 MB/s | 2.869 MB/s | - | - |
| SM4-CTR | 2.884 MB/s | 2.886 MB/s | - | - |
AEAD Algorithms
STM32H573 @ 250 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 | 2.04 MB/s | 2.003 MB/s | 41.322 MB/s | 40.983 MB/s |
| AES192-GCM | 1.89 MB/s | 1.855 MB/s | - | - |
| AES256-GCM | 1.76 MB/s | 1.73 MB/s | 31.847 MB/s | 31.645 MB/s |
| AES128-CCM | 1.801 MB/s | 1.977 MB/s | 23.923 MB/s | 23.809 MB/s |
| AES192-CCM | 1.571 MB/s | 1.709 MB/s | - | - |
| AES256-CCM | 1.395 MB/s | 1.505 MB/s | 18.018 MB/s | 17.953 MB/s |
| SM4-GCM | 1.753 MB/s | 1.752 MB/s | - | - |
| SM4-CCM | 1.368 MB/s | 1.495 MB/s | - | - |
| Ascon-AEAD128 | 3.562 MB/s | 3.619 MB/s | - | - |
| ChaCha20Poly1305 | 5.743 MB/s | 5.733 MB/s | - | - |
Hash Algorithms
STM32H573 @ 250 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using Clang with optimization level 3
| Algorithm | Speed (Software) | Speed (Hardware) |
|---|---|---|
| MD5 | 20.12 MB/s | - |
| SHA-1 | 4.543 MB/s | 113.636 MB/s |
| SHA-224 | 3.538 MB/s | 120.481 MB/s |
| SHA-256 | 3.539 MB/s | 119.047 MB/s |
| SHA-384 | 2.044 MB/s | 140.845 MB/s |
| SHA-512 | 2.044 MB/s | 140.845 MB/s |
| SHA3-224 | 2.04 MB/s | - |
| SHA3-256 | 1.929 MB/s | - |
| SHA3-384 | 1.48 MB/s | - |
| SHA3-512 | 1.028 MB/s | - |
| SM3 | 3.194 MB/s | - |
| Ascon-Hash256 | 1.318 MB/s | - |
Signature Algorithms
STM32H573 @ 250 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) | 52.5 ms | 8.3 ms | 7.8 ms | 0.7 ms |
| RSA (2048 bits) | 298.1 ms | 31.4 ms | 48.5 ms | 1.8 ms |
| RSA (3072 bits) | 879.2 ms | 67.5 ms | 151.2 ms | 4.6 ms |
| RSA (4096 bits) | 1943 ms | 119.6 ms | 342.6 ms | 7.7 ms |
| DSA (1024 bits) | 30.2 ms | 63.7 ms | 9.6 ms | 22.2 ms |
| DSA (2048 bits) | 148.8 ms | 315.2 ms | 39.1 ms | 95.9 ms |
| DSA (3072 bits) | 322.9 ms | 686.8 ms | 81.9 ms | 207.8 ms |
EC Signature Algorithms
STM32H573 @ 250 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) | 44.9 ms | 40.9 ms | 11.1 ms | 11.8 ms |
| ECDSA (secp384r1) | 110.7 ms | 100.4 ms | 28.9 ms | 32.3 ms |
| ECDSA (secp521r1) | 223.1 ms | 199.4 ms | 66.9 ms | 76.4 ms |
| ECDSA (brainpoolP256r1) | 90.9 ms | 90.7 ms | 11.1 ms | 11.9 ms |
| ECDSA (brainpoolP384r1) | 223.2 ms | 223.8 ms | 28.4 ms | 32.1 ms |
| ECDSA (brainpoolP512r1) | 437.6 ms | 447.7 ms | 58 ms | 67 ms |
| SM2 | 41.8 ms | 41.8 ms | 14.4 ms | 14.4 ms |
| EdDSA (Ed25519) | 10.8 ms | 9.6 ms | - | - |
| EdDSA (Ed448) | 50.2 ms | 44.7 ms | - | - |
Key Exchange Algorithms
STM32H573 @ 250 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) | 120.6 ms | 120.7 ms | 23.3 ms | 23.3 ms |
| Diffie-Hellman (2048 bits) | 865 ms | 865.2 ms | 167 ms | 167 ms |
EC Key Exchange Algorithms
STM32H573 @ 250 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) | 39.5 ms | 39.4 ms | 14.3 ms | 14.2 ms |
| ECDH (secp384r1) | 97 ms | 96.9 ms | 39.5 ms | 39.4 ms |
| ECDH (secp521r1) | 191.4 ms | 191.3 ms | 95 ms | 94.8 ms |
| ECDH (brainpoolP256r1) | 84.6 ms | 84.4 ms | 18.8 ms | 18.8 ms |
| ECDH (brainpoolP384r1) | 207.2 ms | 207 ms | 49.8 ms | 49.8 ms |
| ECDH (brainpoolP512r1) | 405.2 ms | 405.1 ms | 103.8 ms | 103.8 ms |
| ECDH (SM2) | 41.8 ms | 41.7 ms | 14.4 ms | 14.4 ms |
| ECDH (X25519) | 5.8 ms | 5.7 ms | - | - |
| ECDH (X448) | 25.7 ms | 25.7 ms | - | - |