Crypto Benchmark on ESP32 MCU
Tensilica Xtensa LX6 @ 240 MHz
This benchmark conducted on ESP32-DevKitC will help you in qualifying performance of CycloneCRYPTO (Crypto Library), CycloneSSL (TLS 1.3 / DTLS 1.2 Library), CycloneSSH (SSH Library with SCP & SFTP) 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 MCU. Note: Espressif ESP32 includes aymmetric and asymmetric 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.0
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) |
---|---|---|---|---|---|---|
3DES | - | - | - | - | - | - |
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.0
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.0
Compiled using GCC with optimization level 2
Signature | 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 |
Signature | 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.0
Compiled using GCC with optimization level 2
Signature | 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 |
Signature | Signature Generation (Hardware) | Signature Verification (Hardware) |
---|---|---|
ECDSA (P-256) | - | - |
ECDSA (P-384) | - | - |
ECDSA (P-521) | - | - |
EdDSA (Ed25519) | 44 ms | 88 ms |
EdDSA (Ed448) | 102 ms | 202 ms |
Key Exchange Algorithms
ESP32 @ 240 MHz
Benchmark generated with CycloneCRYPTO 2.1.0
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.0
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 (P-256) | - | - |
ECDH (P-384) | - | - |
ECDH (P-521) | - | - |
ECDH (X25519) | 25 ms | 25 ms |
ECDH (X448) | 54 ms | 54 ms |