Crypto Benchmark on STM32F7 MCU
ARM Cortex-M7 @ 216 MHz
This benchmark conducted on NUCLEO-F756ZG development board with STM32F756ZG 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 STM32F7 microcontroller.
STM32F7 MCU also includes crypto hardware acceleration. In the following comparison charts, both hardware and software performance are presented in the relevant sections.
Cipher Algorithms
STM32F756 @ 216 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.898 MB/s | 0.887 MB/s | 19.762 MB/s | 19.801 MB/s |
3DES-CTR | 0.913 MB/s | 0.911 MB/s | - | - |
AES128-CBC | 4.351 MB/s | 4.158 MB/s | 54.054 MB/s | 53.475 MB/s |
AES192-CBC | 3.809 MB/s | 3.695 MB/s | 49.019 MB/s | 48.543 MB/s |
AES256-CBC | 3.39 MB/s | 3.33 MB/s | 49.261 MB/s | 48.543 MB/s |
AES128-CTR | 4.315 MB/s | 4.317 MB/s | 52.083 MB/s | 52.356 MB/s |
AES192-CTR | 3.78 MB/s | 3.782 MB/s | 47.619 MB/s | 47.619 MB/s |
AES256-CTR | 3.365 MB/s | 3.367 MB/s | 47.619 MB/s | 47.619 MB/s |
SM4-CBC | 3.703 MB/s | 3.636 MB/s | - | - |
SM4-CTR | 3.624 MB/s | 3.624 MB/s | - | - |
AEAD Algorithms
STM32F756 @ 216 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 | 2.577 MB/s | 2.573 MB/s | 48.78 MB/s | 52.91 MB/s |
AES192-GCM | 2.373 MB/s | 2.372 MB/s | 44.444 MB/s | 44.247 MB/s |
AES256-GCM | 2.2 MB/s | 2.199 MB/s | 44.444 MB/s | 44.247 MB/s |
AES128-CCM | 2.293 MB/s | 2.294 MB/s | 48.78 MB/s | 47.619 MB/s |
AES192-CCM | 1.987 MB/s | 1.987 MB/s | 41.493 MB/s | 41.152 MB/s |
AES256-CCM | 1.752 MB/s | 1.752 MB/s | 41.493 MB/s | 40.983 MB/s |
SM4-GCM | 2.314 MB/s | 2.237 MB/s | - | - |
SM4-CCM | 1.896 MB/s | 1.9 MB/s | - | - |
Ascon-AEAD128 | 4.416 MB/s | 4.351 MB/s | - | - |
ChaCha20Poly1305 | 3.477 MB/s | 3.468 MB/s | - | - |
Hash Algorithms
STM32F756 @ 216 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Speed (Software) | Speed (Hardware) |
---|---|---|
MD5 | 17.953 MB/s | 147.058 MB/s |
SHA-1 | 6.075 MB/s | 123.456 MB/s |
SHA-224 | 5.773 MB/s | 144.927 MB/s |
SHA-256 | 5.783 MB/s | 144.927 MB/s |
SHA-384 | 2.383 MB/s | - |
SHA-512 | 2.383 MB/s | - |
SHA3-224 | 1.118 MB/s | - |
SHA3-256 | 1.057 MB/s | - |
SHA3-384 | 0.81 MB/s | - |
SHA3-512 | 0.563 MB/s | - |
SM3 | 4.967 MB/s | - |
Ascon-Hash256 | 1.661 MB/s | - |
Signature Algorithms
STM32F756 @ 216 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Generation (Software) | Verification (Software) |
---|---|---|
RSA (1024 bits) | 48.6 ms | 7.7 ms |
RSA (2048 bits) | 250.2 ms | 27 ms |
RSA (3072 bits) | 710.5 ms | 57.1 ms |
RSA (4096 bits) | 1540.9 ms | 99.8 ms |
DSA (1024 bits) | 26.9 ms | 55.1 ms |
DSA (2048 bits) | 121.6 ms | 253 ms |
EC Signature Algorithms
STM32F756 @ 216 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Generation (Software) | Verification (Software) |
---|---|---|
ECDSA (secp256r1) | 40.2 ms | 35.8 ms |
ECDSA (secp384r1) | 94.4 ms | 85.2 ms |
ECDSA (secp521r1) | 194.4 ms | 171.7 ms |
ECDSA (brainpoolP256r1) | 72.8 ms | 72.6 ms |
ECDSA (brainpoolP384r1) | 184.8 ms | 184.7 ms |
ECDSA (brainpoolP512r1) | 371.1 ms | 377 ms |
SM2 | 35.3 ms | 35.3 ms |
EdDSA (Ed25519) | 10.8 ms | 10 ms |
EdDSA (Ed448) | 63.7 ms | 56.9 ms |
Key Exchange Algorithms
STM32F756 @ 216 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) | 100.4 ms | 100.2 ms |
Diffie-Hellman (2048 bits) | 682.2 ms | 681.6 ms |
EC Key Exchange Algorithms
STM32F756 @ 216 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) | 35.9 ms | 35.9 ms |
ECDH (secp384r1) | 83.7 ms | 83.5 ms |
ECDH (secp521r1) | 168.3 ms | 168.2 ms |
ECDH (brainpoolP256r1) | 67.7 ms | 67.5 ms |
ECDH (brainpoolP384r1) | 172 ms | 171.9 ms |
ECDH (brainpoolP512r1) | 344.1 ms | 344 ms |
ECDH (SM2) | 35.4 ms | 35.2 ms |
ECDH (X25519) | 6.1 ms | 6 ms |
ECDH (X448) | 32.6 ms | 32.5 ms |