Crypto Benchmark on STM32F4 MCU
ARM Cortex-M4 @ 180 MHz
This benchmark conducted on NUCLEO-F439ZI development board with STM32F439ZI 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 STM32F4 microcontroller.
STM32F4 MCU also includes crypto hardware acceleration. In the following comparison charts, both hardware and software performance are presented in the relevant sections.
See also software crypto performance comparison: STM32F4 versus STM32H5
Cipher Algorithms
STM32F439 @ 180 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.287 MB/s | 0.292 MB/s | 15.797 MB/s | 15.797 MB/s |
3DES-CTR | 0.286 MB/s | 0.286 MB/s | - | - |
AES128-CBC | 1.469 MB/s | 1.495 MB/s | 40 MB/s | 39.682 MB/s |
AES192-CBC | 1.265 MB/s | 1.295 MB/s | 39.84 MB/s | 39.525 MB/s |
AES256-CBC | 1.11 MB/s | 1.141 MB/s | 39.84 MB/s | 39.525 MB/s |
AES128-CTR | 1.497 MB/s | 1.483 MB/s | 38.461 MB/s | 38.314 MB/s |
AES192-CTR | 1.287 MB/s | 1.276 MB/s | 38.461 MB/s | 38.314 MB/s |
AES256-CTR | 1.128 MB/s | 1.116 MB/s | 38.314 MB/s | 38.167 MB/s |
SM4-CBC | 1.791 MB/s | 1.736 MB/s | - | - |
SM4-CTR | 1.725 MB/s | 1.724 MB/s | - | - |
AEAD Algorithms
STM32F439 @ 180 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.972 MB/s | 0.971 MB/s | 37.593 MB/s | 37.037 MB/s |
AES192-GCM | 0.873 MB/s | 0.872 MB/s | 37.593 MB/s | 36.9 MB/s |
AES256-GCM | 0.802 MB/s | 0.801 MB/s | 37.453 MB/s | 37.037 MB/s |
AES128-CCM | 0.781 MB/s | 0.78 MB/s | 33.444 MB/s | 33.112 MB/s |
AES192-CCM | 0.661 MB/s | 0.66 MB/s | 33.222 MB/s | 33.003 MB/s |
AES256-CCM | 0.576 MB/s | 0.576 MB/s | 33.222 MB/s | 32.894 MB/s |
SM4-GCM | 1.053 MB/s | 1.052 MB/s | - | - |
SM4-CCM | 0.931 MB/s | 0.931 MB/s | - | - |
Ascon-AEAD128 | 2.359 MB/s | 2.348 MB/s | - | - |
ChaCha20Poly1305 | 1.691 MB/s | 1.688 MB/s | - | - |
Hash Algorithms
STM32F439 @ 180 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Speed (Software) | Speed (Hardware) |
---|---|---|
MD5 | 8.92 MB/s | 78.125 MB/s |
SHA-1 | 2.498 MB/s | 71.942 MB/s |
SHA-224 | 2.361 MB/s | 75.187 MB/s |
SHA-256 | 2.36 MB/s | 75.757 MB/s |
SHA-384 | 1.202 MB/s | - |
SHA-512 | 1.203 MB/s | - |
SHA3-224 | 0.806 MB/s | - |
SHA3-256 | 0.763 MB/s | - |
SHA3-384 | 0.587 MB/s | - |
SHA3-512 | 0.409 MB/s | - |
SM3 | 2.109 MB/s | - |
Ascon-Hash256 | 0.901 MB/s | - |
Signature Algorithms
STM32F439 @ 180 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Generation (Software) | Verification (Software) |
---|---|---|
RSA (1024 bits) | 97.3 ms | 17.9 ms |
RSA (2048 bits) | 496 ms | 65.3 ms |
RSA (3072 bits) | 1392.3 ms | 139.7 ms |
DSA (1024 bits) | 54.8 ms | 114.8 ms |
DSA (2048 bits) | 247.3 ms | 524.7 ms |
EC Signature Algorithms
STM32F439 @ 180 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Generation (Software) | Verification (Software) |
---|---|---|
ECDSA (secp256r1) | 66 ms | 59.2 ms |
ECDSA (secp384r1) | 157.9 ms | 142.1 ms |
ECDSA (secp521r1) | 338.3 ms | 296.3 ms |
ECDSA (brainpoolP256r1) | 118.2 ms | 117.3 ms |
ECDSA (brainpoolP384r1) | 314 ms | 311.9 ms |
ECDSA (brainpoolP512r1) | 652.1 ms | 659 ms |
SM2 | 59.1 ms | 59.1 ms |
EdDSA (Ed25519) | 16.2 ms | 14.5 ms |
EdDSA (Ed448) | 78.9 ms | 69.6 ms |
Key Exchange Algorithms
STM32F439 @ 180 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) | 187.9 ms | 188.1 ms |
Diffie-Hellman (2048 bits) | 1274.1 ms | 1274.2 ms |
EC Key Exchange Algorithms
STM32F439 @ 180 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) | 59 ms | 58.9 ms |
ECDH (secp384r1) | 139.2 ms | 139.1 ms |
ECDH (secp521r1) | 292.6 ms | 292.2 ms |
ECDH (brainpoolP256r1) | 110.1 ms | 110 ms |
ECDH (brainpoolP384r1) | 291.9 ms | 291.6 ms |
ECDH (brainpoolP512r1) | 605.7 ms | 605.4 ms |
ECDH (SM2) | 59.1 ms | 58.9 ms |
ECDH (X25519) | 8.8 ms | 8.9 ms |
ECDH (X448) | 40.1 ms | 40.1 ms |