Crypto Benchmark on STM32WB MCU
ARM Cortex-M4 @ 64 MHz
This benchmark conducted on P-NUCLEO-WB55 development board with STM32WB55 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 STM32WB microcontroller.
STM32WB MCU also includes crypto hardware acceleration. In the following comparison charts, both hardware and software performance are presented in the relevant sections.
Cipher Algorithms
STM32WB55 @ 64 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.123 MB/s | 0.122 MB/s | - | - |
3DES-CTR | 0.124 MB/s | 0.124 MB/s | - | - |
AES128-CBC | 0.599 MB/s | 0.613 MB/s | 10.905 MB/s | 10.752 MB/s |
AES192-CBC | 0.519 MB/s | 0.538 MB/s | - | - |
AES256-CBC | 0.459 MB/s | 0.474 MB/s | 8.896 MB/s | 8.756 MB/s |
AES128-CTR | 0.605 MB/s | 0.601 MB/s | 10.526 MB/s | 10.471 MB/s |
AES192-CTR | 0.525 MB/s | 0.522 MB/s | - | - |
AES256-CTR | 0.463 MB/s | 0.459 MB/s | 8.635 MB/s | 8.613 MB/s |
SM4-CBC | 0.785 MB/s | 0.748 MB/s | - | - |
SM4-CTR | 0.752 MB/s | 0.752 MB/s | - | - |
AEAD Algorithms
STM32WB55 @ 64 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.37 MB/s | 0.37 MB/s | 10.08 MB/s | 10.03 MB/s |
AES192-GCM | 0.337 MB/s | 0.337 MB/s | - | - |
AES256-GCM | 0.311 MB/s | 0.311 MB/s | 8.326 MB/s | 8.264 MB/s |
AES128-CCM | 0.319 MB/s | 0.32 MB/s | 6.053 MB/s | 5.998 MB/s |
AES192-CCM | 0.272 MB/s | 0.273 MB/s | - | - |
AES256-CCM | 0.238 MB/s | 0.239 MB/s | 4.587 MB/s | 4.564 MB/s |
SM4-GCM | 0.413 MB/s | 0.41 MB/s | - | - |
SM4-CCM | 0.417 MB/s | 0.416 MB/s | - | - |
Ascon-AEAD128 | 0.835 MB/s | 0.833 MB/s | - | - |
ChaCha20Poly1305 | 0.661 MB/s | 0.66 MB/s | - | - |
Hash Algorithms
STM32WB55 @ 64 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Speed (Software) |
---|---|
MD5 | 2.948 MB/s |
SHA-1 | 0.884 MB/s |
SHA-224 | 0.837 MB/s |
SHA-256 | 0.837 MB/s |
SHA-384 | 0.432 MB/s |
SHA-512 | 0.432 MB/s |
SHA3-224 | 0.246 MB/s |
SHA3-256 | 0.233 MB/s |
SHA3-384 | 0.179 MB/s |
SHA3-512 | 0.124 MB/s |
SM3 | 0.744 MB/s |
Ascon-Hash256 | 0.319 MB/s |
Signature Algorithms
STM32WB55 @ 64 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Generation (Software) |
Verification (Software) |
Generation (Hardware) |
Verification (Hardware) |
---|---|---|---|---|
RSA (1024 bits) | 275.2 ms | 50.8 ms | 61.1 ms | 5.2 ms |
RSA (2048 bits) | 1401.7 ms | 184.6 ms | 381.7 ms | 14.2 ms |
RSA (3072 bits) | 3934.6 ms | 395.3 ms | 1186.1 ms | 35.2 ms |
DSA (1024 bits) | 155.4 ms | 325 ms | - | - |
DSA (2048 bits) | 699.5 ms | 1483.8 ms | - | - |
EC Signature Algorithms
STM32WB55 @ 64 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Generation (Software) |
Verification (Software) |
Generation (Hardware) |
Verification (Hardware) |
---|---|---|---|---|
ECDSA (secp256r1) | 190 ms | 170.9 ms | 79.8 ms | 165.3 ms |
ECDSA (secp384r1) | 455.5 ms | 411.3 ms | 228.8 ms | 461.9 ms |
ECDSA (secp521r1) | 958.5 ms | 841.7 ms | 547.6 ms | 1094.9 ms |
ECDSA (brainpoolP256r1) | 333.8 ms | 332.2 ms | 83.7 ms | 164.7 ms |
ECDSA (brainpoolP384r1) | 880.2 ms | 876.2 ms | 226.8 ms | 453.1 ms |
ECDSA (brainpoolP512r1) | 1833.5 ms | 1855.4 ms | 482.2 ms | 956.4 ms |
SM2 | 171.2 ms | 171.2 ms | 86 ms | 86 ms |
EdDSA (Ed25519) | 55.6 ms | 50.4 ms | - | - |
EdDSA (Ed448) | 232.1 ms | 204.8 ms | - | - |
Key Exchange Algorithms
STM32WB55 @ 64 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) | 530.8 ms | 531.2 ms |
Diffie-Hellman (2048 bits) | 3599.6 ms | 3599.9 ms |
EC Key Exchange Algorithms
STM32WB55 @ 64 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Public Key Generation (Software) |
Shared Secret Computation (Software) |
Public Key Generation (Hardware) |
Shared Secret Computation (Hardware) |
---|---|---|---|---|
ECDH (secp256r1) | 170.1 ms | 169.7 ms | 83 ms | 82.5 ms |
ECDH (secp384r1) | 403.1 ms | 402.5 ms | 236 ms | 235.4 ms |
ECDH (secp521r1) | 831.1 ms | 830.1 ms | 560.1 ms | 559 ms |
ECDH (brainpoolP256r1) | 311 ms | 310.5 ms | 99.2 ms | 98.7 ms |
ECDH (brainpoolP384r1) | 818.4 ms | 817.7 ms | 275.9 ms | 275.3 ms |
ECDH (brainpoolP512r1) | 1703.1 ms | 1702.3 ms | 579.1 ms | 578.3 ms |
ECDH (SM2) | 171.3 ms | 170.8 ms | 85.5 ms | 85 ms |
ECDH (X25519) | 31 ms | 30.9 ms | - | - |
ECDH (X448) | 118.4 ms | 118.5 ms | - | - |