Crypto Benchmark on STM32C5 MCU
ARM Cortex-M33 @ 144 MHz
This benchmark conducted on NUCLEO-C5A3ZG development board with STM32C5A3ZG 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 STM32C5 microcontroller.
STM32C5 MCU also includes crypto hardware acceleration. In the following comparison charts, both hardware and software performance are presented in the relevant sections.
Cipher Algorithms
STM32C5A3 @ 144 MHz
- • Benchmark generated with CycloneCRYPTO 2.6.2
- • Compiled using Clang with optimization level 3
| Algorithm | Encryption (Software) | Decryption (Software) | Encryption (Hardware) | Decryption (Hardware) |
|---|---|---|---|---|
| 3DES-CBC | 0.421 MB/s | 0.419 MB/s | - | - |
| 3DES-CTR | 0.414 MB/s | 0.414 MB/s | - | - |
| AES128-CBC | 1.987 MB/s | 2.061 MB/s | 23.696 MB/s | 23.419 MB/s |
| AES192-CBC | 1.751 MB/s | 1.815 MB/s | - | - |
| AES256-CBC | 1.567 MB/s | 1.621 MB/s | 18.416 MB/s | 18.181 MB/s |
| AES128-CTR | 1.86 MB/s | 1.86 MB/s | 23.094 MB/s | 23.041 MB/s |
| AES192-CTR | 1.65 MB/s | 1.649 MB/s | - | - |
| AES256-CTR | 1.484 MB/s | 1.483 MB/s | 18.05 MB/s | 18.018 MB/s |
| SM4-CBC | 1.645 MB/s | 1.564 MB/s | - | - |
| SM4-CTR | 1.594 MB/s | 1.594 MB/s | - | - |
AEAD Algorithms
STM32C5A3 @ 144 MHz
- • Benchmark generated with CycloneCRYPTO 2.6.2
- • Compiled using Clang with optimization level 3
| Algorithm | Encryption (Software) | Decryption (Software) | Encryption (Hardware) | Decryption (Hardware) |
|---|---|---|---|---|
| AES128-GCM | 1.058 MB/s | 1.05 MB/s | 22.321 MB/s | 22.075 MB/s |
| AES192-GCM | 0.988 MB/s | 0.98 MB/s | - | - |
| AES256-GCM | 0.926 MB/s | 0.919 MB/s | 17.452 MB/s | 17.241 MB/s |
| AES128-CCM | 1.05 MB/s | 1.049 MB/s | 13.227 MB/s | 13.106 MB/s |
| AES192-CCM | 0.917 MB/s | 0.917 MB/s | - | - |
| AES256-CCM | 0.814 MB/s | 0.814 MB/s | 10.07 MB/s | 10 MB/s |
| SM4-GCM | 0.929 MB/s | 0.922 MB/s | - | - |
| SM4-CCM | 0.819 MB/s | 0.819 MB/s | - | - |
| Ascon-AEAD128 | 1.887 MB/s | 1.916 MB/s | - | - |
| ChaCha20Poly1305 | 2.798 MB/s | 2.792 MB/s | - | - |
Hash Algorithms
STM32C5A3 @ 144 MHz
- • Benchmark generated with CycloneCRYPTO 2.6.2
- • Compiled using Clang with optimization level 3
| Algorithm | Speed (Software) | Speed (Hardware) |
|---|---|---|
| MD5 | 10.57 MB/s | - |
| SHA-1 | 2.603 MB/s | 58.479 MB/s |
| SHA-224 | 1.799 MB/s | 61.349 MB/s |
| SHA-256 | 1.799 MB/s | 61.728 MB/s |
| SHA-384 | 1.02 MB/s | 70.422 MB/s |
| SHA-512 | 1.02 MB/s | 70.422 MB/s |
| SHA3-224 | 0.915 MB/s | - |
| SHA3-256 | 0.864 MB/s | - |
| SHA3-384 | 0.663 MB/s | - |
| SHA3-512 | 0.46 MB/s | - |
| SM3 | 1.658 MB/s | - |
| Ascon-Hash256 | 0.7 MB/s | - |
Signature Algorithms
STM32C5A3 @ 144 MHz
- • Benchmark generated with CycloneCRYPTO 2.6.2
- • Compiled using Clang with optimization level 3
| Algorithm | Generation (Software) | Verification (Software) | Generation (Hardware) | Verification (Hardware) |
|---|---|---|---|---|
| RSA (1024 bits) | 99.7 ms | 15.9 ms | 13.5 ms | 1.2 ms |
| RSA (2048 bits) | 546.8 ms | 58.9 ms | 84.3 ms | 3.1 ms |
| RSA (3072 bits) | 1588.6 ms | 126.5 ms | 262.6 ms | 7.8 ms |
| RSA (4096 bits) | 3481.5 ms | 224.1 ms | 594.9 ms | 13.5 ms |
| DSA (1024 bits) | 56.1 ms | 118.8 ms | 17.8 ms | 42.1 ms |
| DSA (2048 bits) | 270 ms | 575.6 ms | 71.8 ms | 179.1 ms |
| DSA (3072 bits) | 583.2 ms | 1249.4 ms | 150.3 ms | 389.1 ms |
EC Signature Algorithms
STM32C5A3 @ 144 MHz
- • Benchmark generated with CycloneCRYPTO 2.6.2
- • Compiled using Clang with optimization level 3
| Algorithm | Generation (Software) | Verification (Software) | Generation (Hardware) | Verification (Hardware) |
|---|---|---|---|---|
| ECDSA (secp256r1) | 87.2 ms | 79.4 ms | 19.2 ms | 20.4 ms |
| ECDSA (secp384r1) | 205.5 ms | 189 ms | 50.1 ms | 56 ms |
| ECDSA (secp521r1) | 421 ms | 377.1 ms | 116.2 ms | 132.5 ms |
| ECDSA (brainpoolP256r1) | 174.6 ms | 175.6 ms | 19.2 ms | 20.6 ms |
| ECDSA (brainpoolP384r1) | 427.9 ms | 430.7 ms | 49.4 ms | 55.8 ms |
| ECDSA (brainpoolP512r1) | 841.8 ms | 861.8 ms | 100.7 ms | 116.3 ms |
| SM2 | 89 ms | 65.6 ms | 39.9 ms | 47.5 ms |
| EdDSA (Ed25519) | 22 ms | 19.4 ms | - | - |
| EdDSA (Ed448) | 101.4 ms | 90.8 ms | - | - |
Key Exchange Algorithms
STM32C5A3 @ 144 MHz
- • Benchmark generated with CycloneCRYPTO 2.6.2
- • 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) | 218.3 ms | 217.3 ms | 40.2 ms | 40 ms |
| Diffie-Hellman (2048 bits) | 1535.4 ms | 1534.1 ms | 289.7 ms | 289.5 ms |
EC Key Exchange Algorithms
STM32C5A3 @ 144 MHz
- • Benchmark generated with CycloneCRYPTO 2.6.2
- • 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) | 76.3 ms | 76.2 ms | 25.2 ms | 25.1 ms |
| ECDH (secp384r1) | 179 ms | 178.9 ms | 68.6 ms | 68.4 ms |
| ECDH (secp521r1) | 359.6 ms | 359.3 ms | 166 ms | 165.7 ms |
| ECDH (brainpoolP256r1) | 162.1 ms | 161.9 ms | 34.1 ms | 33.9 ms |
| ECDH (brainpoolP384r1) | 396.5 ms | 396.3 ms | 90.3 ms | 90 ms |
| ECDH (brainpoolP512r1) | 779 ms | 778.8 ms | 186.8 ms | 186.5 ms |
| ECDH (SM2) | 74.6 ms | 74.4 ms | 25.4 ms | 25.3 ms |
| ECDH (X25519) | 11.9 ms | 11.9 ms | - | - |
| ECDH (X448) | 51.6 ms | 51.6 ms | - | - |