Crypto Benchmark on ESP32 MCU
Tensilica Xtensa LX6 @ 240 MHz
This benchmark conducted on ESP32-DevKitC 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 microcontroller.
ESP32 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 @ 240 MHz
- • Benchmark generated with CycloneCRYPTO 2.1.2
- • Compiled using GCC with optimization level 2
Algorithm | CBC Encrypt (Software) | CBC Decrypt (Software) | CCM Encrypt (Software) | CCM Decrypt (Software) | GCM Encrypt (Software) | GCM Decrypt (Software) |
---|---|---|---|---|---|---|
3DES | 0.456 MB/s | 0.456 MB/s | - | - | - | - |
AES-128 | 1.68 MB/s | 1.639 MB/s | 0.876 MB/s | 0.852 MB/s | 1.072 MB/s | 1.043 MB/s |
AES-192 | 1.375 MB/s | 1.406 MB/s | 0.743 MB/s | 0.744 MB/s | 0.968 MB/s | 0.915 MB/s |
AES-256 | 1.262 MB/s | 1.233 MB/s | 0.645 MB/s | 0.632 MB/s | 0.882 MB/s | 0.862 MB/s |
Algorithm | CBC Encrypt (Hardware) | CBC Decrypt (Hardware) | CCM Encrypt (Hardware) | CCM Decrypt (Hardware) | GCM Encrypt (Hardware) | GCM Decrypt (Hardware) |
---|---|---|---|---|---|---|
AES-128 | 12.345 MB/s | 11.111 MB/s | 1.602 MB/s | 1.607 MB/s | 1.474 MB/s | 1.42 MB/s |
AES-192 | 12.048 MB/s | 11.235 MB/s | 1.56 MB/s | 1.562 MB/s | 1.457 MB/s | 1.404 MB/s |
AES-256 | 11.904 MB/s | 11.235 MB/s | 1.543 MB/s | 1.545 MB/s | 1.451 MB/s | 1.396 MB/s |
Hash Algorithms
ESP32 @ 240 MHz
- • Benchmark generated with CycloneCRYPTO 2.1.2
- • Compiled using GCC with optimization level 2
Algorithm | Speed (Software) | Speed (Hardware) |
---|---|---|
MD5 | 16.949 MB/s | - |
SHA-1 | 2.793 MB/s | 32.258 MB/s |
SHA-224 | 2.083 MB/s | - |
SHA-256 | 2.087 MB/s | 32.258 MB/s |
SHA-384 | 1.245 MB/s | 34.482 MB/s |
SHA-512 | 1.245 MB/s | 34.482 MB/s |
SHA3-224 | 0.887 MB/s | - |
SHA3-256 | 0.814 MB/s | - |
SHA3-384 | 0.642 MB/s | - |
SHA3-512 | 0.446 MB/s | - |
Signature Algorithms
ESP32 @ 240 MHz
- • Benchmark generated with CycloneCRYPTO 2.1.2
- • Compiled using GCC with optimization level 2
Algorithm | Signature Generation (Software) | Signature Verification (Software) |
---|---|---|
RSA (1024 bits) | 114 ms | 17 ms |
RSA (2048 bits) | 709 ms | 61 ms |
RSA (3072 bits) | 2180 ms | 133 ms |
RSA (4096 bits) | 4972 ms | 235 ms |
DSA (1024 bits) | 72 ms | 144 ms |
DSA (2048 bits) | 364 ms | 751 ms |
Algorithm | Signature Generation (Hardware) | Signature Verification (Hardware) |
---|---|---|
RSA (1024 bits) | 40 ms | 22 ms |
RSA (2048 bits) | 193 ms | 118 ms |
RSA (3072 bits) | 521 ms | 338 ms |
RSA (4096 bits) | 1096 ms | 742 ms |
DSA (1024 bits) | 35 ms | 70 ms |
DSA (2048 bits) | 152 ms | 326 ms |
EC Signature Algorithms
ESP32 @ 240 MHz
- • Benchmark generated with CycloneCRYPTO 2.1.2
- • Compiled using GCC with optimization level 2
Algorithm | Signature Generation (Software) | Signature Verification (Software) |
---|---|---|
ECDSA (P-256) | 225 ms | 277 ms |
ECDSA (P-384) | 419 ms | 504 ms |
ECDSA (P-521) | 500 ms | 588 ms |
EdDSA (Ed25519) | 65 ms | 130 ms |
EdDSA (Ed448) | 303 ms | 605 ms |
Algorithm | Signature Generation (Hardware) | Signature Verification (Hardware) |
---|---|---|
EdDSA (Ed25519) | 44 ms | 88 ms |
EdDSA (Ed448) | 102 ms | 202 ms |
Key Exchange Algorithms
ESP32 @ 240 MHz
- • Benchmark generated with CycloneCRYPTO 2.1.2
- • Compiled using GCC with optimization level 2
Algorithm | Public Key Generation (Software) | Shared Secret Computation (Software) |
---|---|---|
Diffie-Hellman (1024 bits) | 306 ms | 307 ms |
Diffie-Hellman (2048 bits) | 2291 ms | 2292 ms |
Algorithm | Public Key Generation (Hardware) | Shared Secret Computation (Hardware) |
---|---|---|
Diffie-Hellman (1024 bits) | 22 ms | 22 ms |
Diffie-Hellman (2048 bits) | 118 ms | 118 ms |
EC Key Exchange Algorithms
ESP32 @ 240 MHz
- • Benchmark generated with CycloneCRYPTO 2.1.2
- • Compiled using GCC with optimization level 2
Algorithm | Public Key Generation (Software) | Shared Secret Computation (Software) |
---|---|---|
ECDH (P-256) | 222 ms | 220 ms |
ECDH (P-384) | 392 ms | 392 ms |
ECDH (P-521) | 486 ms | 486 ms |
ECDH (X25519) | 36 ms | 36 ms |
ECDH (X448) | 154 ms | 155 ms |
Algorithm | Public Key Generation (Hardware) | Shared Secret Computation (Hardware) |
---|---|---|
ECDH (X25519) | 25 ms | 25 ms |
ECDH (X448) | 54 ms | 54 ms |