Crypto Benchmark on STM32F4 MCU
ARM Cortex-M4 @ 180 MHz
This benchmark conducted on STM32 Nucleo-144 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.2.4
- • Compiled using Clang with optimization level 3
Algorithm | CBC Encrypt (Software) | CBC Decrypt (Software) | CCM Encrypt (Software) | CCM Decrypt (Software) | GCM Encrypt (Software) | GCM Decrypt (Software) |
---|---|---|---|---|---|---|
3DES | 0.285 MB/s | 0.282 MB/s | - | - | - | - |
AES-128 | 1.514 MB/s | 1.482 MB/s | 0.805 MB/s | 0.805 MB/s | 0.981 MB/s | 0.979 MB/s |
AES-192 | 1.305 MB/s | 1.283 MB/s | 0.682 MB/s | 0.682 MB/s | 0.885 MB/s | 0.883 MB/s |
AES-256 | 1.147 MB/s | 1.128 MB/s | 0.597 MB/s | 0.597 MB/s | 0.815 MB/s | 0.814 MB/s |
Algorithm | CBC Encrypt (Hardware) | CBC Decrypt (Hardware) | CCM Encrypt (Hardware) | CCM Decrypt (Hardware) | GCM Encrypt (Hardware) | GCM Decrypt (Hardware) |
---|---|---|---|---|---|---|
3DES | 15.797 MB/s | 15.797 MB/s | - | - | - | - |
AES-128 | 40 MB/s | 39.682 MB/s | 33.444 MB/s | 32.679 MB/s | 37.735 MB/s | 37.037 MB/s |
AES-192 | 39.84 MB/s | 39.682 MB/s | 33.444 MB/s | 32.573 MB/s | 37.453 MB/s | 36.9 MB/s |
AES-256 | 39.84 MB/s | 39.525 MB/s | 33.333 MB/s | 32.894 MB/s | 37.453 MB/s | 37.037 MB/s |
Hash Algorithms
STM32F439 @ 180 MHz
- • Benchmark generated with CycloneCRYPTO 2.2.4
- • Compiled using Clang with optimization level 3
Algorithm | Speed (Software) | Speed (Hardware) |
---|---|---|
MD5 | 12.033 MB/s | 78.125 MB/s |
SHA-1 | 2.804 MB/s | 71.942 MB/s |
SHA-224 | 1.942 MB/s | 75.187 MB/s |
SHA-256 | 1.942 MB/s | 75.757 MB/s |
SHA-384 | 1.18 MB/s | - |
SHA-512 | 1.181 MB/s | - |
SHA3-224 | 1.264 MB/s | - |
SHA3-256 | 1.195 MB/s | - |
SHA3-384 | 0.917 MB/s | - |
SHA3-512 | 0.638 MB/s | - |
Signature Algorithms
STM32F439 @ 180 MHz
- • Benchmark generated with CycloneCRYPTO 2.2.4
- • Compiled using Clang with optimization level 3
Algorithm | Signature Generation (Software) | Signature Verification (Software) |
---|---|---|
RSA (1024 bits) | 84.1 ms | 15 ms |
RSA (2048 bits) | 448.6 ms | 55.4 ms |
RSA (3072 bits) | 1290.6 ms | 118.3 ms |
DSA (1024 bits) | 49.7 ms | 105.2 ms |
DSA (2048 bits) | 230.8 ms | 493.9 ms |
EC Signature Algorithms
STM32F439 @ 180 MHz
- • Benchmark generated with CycloneCRYPTO 2.2.4
- • Compiled using Clang with optimization level 3
Algorithm | Signature Generation (Software) | Signature Verification (Software) |
---|---|---|
ECDSA (P-256) | 180.4 ms | 227.2 ms |
ECDSA (P-384) | 339 ms | 421.6 ms |
ECDSA (P-521) | 374.7 ms | 445.9 ms |
EdDSA (Ed25519) | 47.3 ms | 93.5 ms |
EdDSA (Ed448) | 215.1 ms | 428.1 ms |
Key Exchange Algorithms
STM32F439 @ 180 MHz
- • Benchmark generated with CycloneCRYPTO 2.2.4
- • Compiled using Clang with optimization level 3
Algorithm | Public Key Generation (Software) | Shared Secret Computation (Software) |
---|---|---|
Diffie-Hellman (1024 bits) | 178.1 ms | 178.3 ms |
Diffie-Hellman (2048 bits) | 1238.3 ms | 1238.4 ms |
EC Key Exchange Algorithms
STM32F439 @ 180 MHz
- • Benchmark generated with CycloneCRYPTO 2.2.4
- • Compiled using Clang with optimization level 3
Algorithm | Public Key Generation (Software) | Shared Secret Computation (Software) |
---|---|---|
ECDH (P-256) | 174.3 ms | 173.9 ms |
ECDH (P-384) | 322.5 ms | 327.5 ms |
ECDH (P-521) | 369 ms | 367.6 ms |
ECDH (X25519) | 26.1 ms | 26.1 ms |
ECDH (X448) | 109.1 ms | 109.1 ms |