Crypto Benchmark on STM32U3 MCU
ARM Cortex-M33 @ 96 MHz
This benchmark conducted on NUCLEO-U385RG-Q development board with STM32U385RGT6Q 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 STM32U3 microcontroller.
STM32U3 MCU also includes crypto hardware acceleration. In the following comparison charts, both hardware and software performance are presented in the relevant sections.
undefined
Cipher Algorithms
STM32U385 @ 96 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.284 MB/s | 0.285 MB/s | - | - |
3DES-CTR | 0.284 MB/s | 0.284 MB/s | - | - |
AES128-CBC | 1.429 MB/s | 1.395 MB/s | 16.863 MB/s | 16.638 MB/s |
AES192-CBC | 1.25 MB/s | 1.226 MB/s | - | - |
AES256-CBC | 1.111 MB/s | 1.093 MB/s | 12.919 MB/s | 12.755 MB/s |
AES128-CTR | 1.43 MB/s | 1.429 MB/s | 16.42 MB/s | 16.393 MB/s |
AES192-CTR | 1.251 MB/s | 1.25 MB/s | - | - |
AES256-CTR | 1.112 MB/s | 1.111 MB/s | 12.674 MB/s | 12.626 MB/s |
SM4-CBC | 1.104 MB/s | 1.098 MB/s | - | - |
SM4-CTR | 1.105 MB/s | 1.105 MB/s | - | - |
AEAD Algorithms
STM32U385 @ 96 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 | 0.778 MB/s | 0.739 MB/s | 15.822 MB/s | 15.723 MB/s |
AES192-GCM | 0.721 MB/s | 0.685 MB/s | - | - |
AES256-GCM | 0.671 MB/s | 0.638 MB/s | 12.21 MB/s | 12.135 MB/s |
AES128-CCM | 0.756 MB/s | 0.757 MB/s | 9.174 MB/s | 9.14 MB/s |
AES192-CCM | 0.653 MB/s | 0.654 MB/s | - | - |
AES256-CCM | 0.576 MB/s | 0.576 MB/s | 6.92 MB/s | 6.891 MB/s |
SM4-GCM | 0.672 MB/s | 0.671 MB/s | - | - |
SM4-CCM | 0.57 MB/s | 0.573 MB/s | - | - |
Ascon-AEAD128 | 1.364 MB/s | 1.385 MB/s | - | - |
ChaCha20Poly1305 | 2.196 MB/s | 2.193 MB/s | - | - |
Hash Algorithms
STM32U385 @ 96 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using Clang with optimization level 3
Algorithm | Speed (Software) | Speed (Hardware) |
---|---|---|
MD5 | 7.692 MB/s | - |
SHA-1 | 1.74 MB/s | 43.478 MB/s |
SHA-224 | 1.355 MB/s | 45.871 MB/s |
SHA-256 | 1.355 MB/s | 45.871 MB/s |
SHA-384 | 0.783 MB/s | 53.475 MB/s |
SHA-512 | 0.783 MB/s | 53.763 MB/s |
SHA3-224 | 0.781 MB/s | - |
SHA3-256 | 0.738 MB/s | - |
SHA3-384 | 0.566 MB/s | - |
SHA3-512 | 0.393 MB/s | - |
SM3 | 1.223 MB/s | - |
Ascon-Hash256 | 0.504 MB/s | - |
Signature Algorithms
STM32U385 @ 96 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) | 137.1 ms | 22 ms | 20.2 ms | 1.8 ms |
RSA (2048 bits) | 778.7 ms | 81.8 ms | 126.3 ms | 4.8 ms |
RSA (3072 bits) | 2295.6 ms | 176.1 ms | 393.7 ms | 11.8 ms |
RSA (4096 bits) | 5073.9 ms | 312.4 ms | 892.3 ms | 20.1 ms |
DSA (1024 bits) | 79 ms | 166.4 ms | 24.9 ms | 58 ms |
DSA (2048 bits) | 388.5 ms | 823.1 ms | 101.8 ms | 249.9 ms |
DSA (3072 bits) | 843.4 ms | 1793.4 ms | 213.4 ms | 541.6 ms |
EC Signature Algorithms
STM32U385 @ 96 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) | 116.4 ms | 106 ms | 28.8 ms | 30.6 ms |
ECDSA (secp384r1) | 282.5 ms | 258.8 ms | 75.1 ms | 84 ms |
ECDSA (secp521r1) | 579.2 ms | 517.8 ms | 174.2 ms | 198.8 ms |
ECDSA (brainpoolP256r1) | 233.1 ms | 234.6 ms | 28.9 ms | 30.9 ms |
ECDSA (brainpoolP384r1) | 575.1 ms | 578.4 ms | 74.1 ms | 83.6 ms |
ECDSA (brainpoolP512r1) | 1137 ms | 1166.3 ms | 150.9 ms | 174.3 ms |
SM2 | 103.3 ms | 103.3 ms | 37.9 ms | 37.9 ms |
EdDSA (Ed25519) | 27.8 ms | 25 ms | - | - |
EdDSA (Ed448) | 131 ms | 116.8 ms | - | - |
Key Exchange Algorithms
STM32U385 @ 96 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) | 315 ms | 315.1 ms | 60.7 ms | 60.7 ms |
Diffie-Hellman (2048 bits) | 2258.9 ms | 2259.2 ms | 434.8 ms | 434.8 ms |
EC Key Exchange Algorithms
STM32U385 @ 96 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) | 101.9 ms | 101.8 ms | 37.5 ms | 37.3 ms |
ECDH (secp384r1) | 246.8 ms | 246.5 ms | 101.8 ms | 101.5 ms |
ECDH (secp521r1) | 496.6 ms | 496.2 ms | 246.9 ms | 246.6 ms |
ECDH (brainpoolP256r1) | 216.5 ms | 216.3 ms | 49.1 ms | 48.9 ms |
ECDH (brainpoolP384r1) | 533 ms | 532.8 ms | 130 ms | 129.7 ms |
ECDH (brainpoolP512r1) | 1052.6 ms | 1052.4 ms | 270.8 ms | 270.5 ms |
ECDH (SM2) | 103.3 ms | 103.2 ms | 37.9 ms | 37.8 ms |
ECDH (X25519) | 15 ms | 14.9 ms | - | - |
ECDH (X448) | 66.8 ms | 66.8 ms | - | - |