Crypto Benchmark on ESP32-C3 MCU
RISC-V @ 160 MHz
This benchmark conducted on ESP32-C3-DevKitC-02 Development Board 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 Espressif ESP32-C3 microcontroller.
ESP32-C3 MCU also includes crypto hardware acceleration. In the following comparison charts, both hardware and software performance are presented in the relevant sections.
Cipher Algorithms
ESP32-C3 @ 160 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using GCC with optimization level 3
Algorithm | Encryption (Software) | Decryption (Software) | Encryption (Hardware) | Decryption (Hardware) |
---|---|---|---|---|
3DES-CBC | 0.386 MB/s | 0.379 MB/s | - | - |
3DES-CTR | 0.385 MB/s | 0.385 MB/s | - | - |
AES128-CBC | 1.406 MB/s | 1.394 MB/s | 6.25 MB/s | 5.617 MB/s |
AES192-CBC | 1.215 MB/s | 1.212 MB/s | - | - |
AES256-CBC | 1.068 MB/s | 1.07 MB/s | 6.097 MB/s | 5.464 MB/s |
AES128-CTR | 1.373 MB/s | 1.371 MB/s | 5.025 MB/s | 5 MB/s |
AES192-CTR | 1.189 MB/s | 1.189 MB/s | - | - |
AES256-CTR | 1.049 MB/s | 1.05 MB/s | 4.901 MB/s | 4.878 MB/s |
SM4-CBC | 1.366 MB/s | 1.329 MB/s | - | - |
SM4-CTR | 1.335 MB/s | 1.335 MB/s | - | - |
AEAD Algorithms
ESP32-C3 @ 160 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using GCC with optimization level 3
Algorithm | Encryption (Software) | Decryption (Software) | Encryption (Hardware) | Decryption (Hardware) |
---|---|---|---|---|
AES128-GCM | 0.846 MB/s | 0.841 MB/s | 1.029 MB/s | 1.036 MB/s |
AES192-GCM | 0.771 MB/s | 0.768 MB/s | - | - |
AES256-GCM | 0.709 MB/s | 0.705 MB/s | 1.009 MB/s | 1.014 MB/s |
AES128-CCM | 0.722 MB/s | 0.725 MB/s | 1.047 MB/s | 1.054 MB/s |
AES192-CCM | 0.618 MB/s | 0.621 MB/s | - | - |
AES256-CCM | 0.541 MB/s | 0.543 MB/s | 1.003 MB/s | 1.01 MB/s |
SM4-GCM | 0.831 MB/s | 0.826 MB/s | - | - |
SM4-CCM | 0.7 MB/s | 0.703 MB/s | - | - |
Ascon-AEAD128 | 1.879 MB/s | 1.814 MB/s | - | - |
ChaCha20Poly1305 | 2.044 MB/s | 2.044 MB/s | - | - |
Hash Algorithms
ESP32-C3 @ 160 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using GCC with optimization level 3
Algorithm | Speed (Software) | Speed (Hardware) |
---|---|---|
MD5 | 8.064 MB/s | - |
SHA-1 | 1.988 MB/s | 21.739 MB/s |
SHA-224 | 1.626 MB/s | 22.222 MB/s |
SHA-256 | 1.623 MB/s | 21.739 MB/s |
SHA-384 | 1.25 MB/s | - |
SHA-512 | 1.25 MB/s | - |
SHA3-224 | 0.763 MB/s | - |
SHA3-256 | 0.721 MB/s | - |
SHA3-384 | 0.554 MB/s | - |
SHA3-512 | 0.386 MB/s | - |
SM3 | 1.449 MB/s | - |
Ascon-Hash256 | 0.71 MB/s | - |
Signature Algorithms
ESP32-C3 @ 160 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using GCC with optimization level 3
Algorithm | Generation (Software) | Verification (Software) | Generation (Hardware) | Verification (Hardware) |
---|---|---|---|---|
RSA (1024 bits) | 139 ms | 19 ms | 37 ms | 13 ms |
RSA (2048 bits) | 884 ms | 71 ms | 162 ms | 47 ms |
RSA (3072 bits) | 2743 ms | 153 ms | 415 ms | 100 ms |
RSA (4096 bits) | 6239 ms | 272 ms | - | - |
DSA (1024 bits) | 85 ms | 170 ms | 27 ms | 58 ms |
DSA (2048 bits) | 445 ms | 916 ms | - | - |
EC Signature Algorithms
ESP32-C3 @ 160 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using GCC with optimization level 3
Algorithm | Generation (Software) | Verification (Software) | Generation (Hardware) | Verification (Hardware) |
---|---|---|---|---|
ECDSA (secp256r1) | 92 ms | 83 ms | 65 ms | 58 ms |
ECDSA (secp384r1) | 247 ms | 225 ms | 142 ms | 126 ms |
ECDSA (secp521r1) | 560 ms | 494 ms | 276 ms | 236 ms |
ECDSA (brainpoolP256r1) | 187 ms | 188 ms | 72 ms | 68 ms |
ECDSA (brainpoolP384r1) | 528 ms | 530 ms | 152 ms | 143 ms |
ECDSA (brainpoolP512r1) | 1138 ms | 1158 ms | 270 ms | 259 ms |
SM2 | 80 ms | 80 ms | 70 ms | 70 ms |
EdDSA (Ed25519) | 38 ms | 36 ms | - | - |
EdDSA (Ed448) | 186 ms | 167 ms | - | - |
Key Exchange Algorithms
ESP32-C3 @ 160 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using GCC 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) | 385 ms | 386 ms | 41 ms | 41 ms |
Diffie-Hellman (2048 bits) | 2904 ms | 2904 ms | 264 ms | 265 ms |
EC Key Exchange Algorithms
ESP32-C3 @ 160 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using GCC with optimization level 3
Algorithm | Public Key Generation (Software) | Shared Secret Computation (Software) | Public Key Generation (Hardware) | Shared Secret Computation (Hardware) |
---|---|---|---|---|
ECDH (secp256r1) | 81 ms | 80 ms | 62 ms | 62 ms |
ECDH (secp384r1) | 214 ms | 214 ms | 135 ms | 135 ms |
ECDH (secp521r1) | 480 ms | 479 ms | 261 ms | 262 ms |
ECDH (brainpoolP256r1) | 174 ms | 173 ms | 67 ms | 66 ms |
ECDH (brainpoolP384r1) | 490 ms | 490 ms | 142 ms | 142 ms |
ECDH (brainpoolP512r1) | 1055 ms | 1054 ms | 254 ms | 253 ms |
ECDH (SM2) | 80 ms | 81 ms | 71 ms | 70 ms |
ECDH (X25519) | 21 ms | 21 ms | - | - |
ECDH (X448) | 94 ms | 94 ms | - | - |