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
AlgorithmCBC Encrypt (Software)CBC Decrypt (Software)CCM Encrypt (Software)CCM Decrypt (Software)GCM Encrypt (Software)GCM Decrypt (Software)
3DES0.456 MB/s0.456 MB/s----
AES-1281.68 MB/s1.639 MB/s0.876 MB/s0.852 MB/s1.072 MB/s1.043 MB/s
AES-1921.375 MB/s1.406 MB/s0.743 MB/s0.744 MB/s0.968 MB/s0.915 MB/s
AES-2561.262 MB/s1.233 MB/s0.645 MB/s0.632 MB/s0.882 MB/s0.862 MB/s
AlgorithmCBC Encrypt (Hardware)CBC Decrypt (Hardware)CCM Encrypt (Hardware)CCM Decrypt (Hardware)GCM Encrypt (Hardware)GCM Decrypt (Hardware)
AES-12812.345 MB/s11.111 MB/s1.602 MB/s1.607 MB/s1.474 MB/s1.42 MB/s
AES-19212.048 MB/s11.235 MB/s1.56 MB/s1.562 MB/s1.457 MB/s1.404 MB/s
AES-25611.904 MB/s11.235 MB/s1.543 MB/s1.545 MB/s1.451 MB/s1.396 MB/s

Hash Algorithms

ESP32 @ 240 MHz

  • Benchmark generated with CycloneCRYPTO 2.1.2
  • Compiled using GCC with optimization level 2
AlgorithmSpeed (Software)Speed (Hardware)
MD516.949 MB/s-
SHA-12.793 MB/s32.258 MB/s
SHA-2242.083 MB/s-
SHA-2562.087 MB/s32.258 MB/s
SHA-3841.245 MB/s34.482 MB/s
SHA-5121.245 MB/s34.482 MB/s
SHA3-2240.887 MB/s-
SHA3-2560.814 MB/s-
SHA3-3840.642 MB/s-
SHA3-5120.446 MB/s-

Signature Algorithms

ESP32 @ 240 MHz

  • Benchmark generated with CycloneCRYPTO 2.1.2
  • Compiled using GCC with optimization level 2
AlgorithmSignature Generation (Software)Signature Verification (Software)
RSA (1024 bits)114 ms17 ms
RSA (2048 bits)709 ms61 ms
RSA (3072 bits)2180 ms133 ms
RSA (4096 bits)4972 ms235 ms
DSA (1024 bits)72 ms144 ms
DSA (2048 bits)364 ms751 ms
AlgorithmSignature Generation (Hardware)Signature Verification (Hardware)
RSA (1024 bits)40 ms22 ms
RSA (2048 bits)193 ms118 ms
RSA (3072 bits)521 ms338 ms
RSA (4096 bits)1096 ms742 ms
DSA (1024 bits)35 ms70 ms
DSA (2048 bits)152 ms326 ms

EC Signature Algorithms

ESP32 @ 240 MHz

  • Benchmark generated with CycloneCRYPTO 2.1.2
  • Compiled using GCC with optimization level 2
AlgorithmSignature Generation (Software)Signature Verification (Software)
ECDSA (P-256)225 ms277 ms
ECDSA (P-384)419 ms504 ms
ECDSA (P-521)500 ms588 ms
EdDSA (Ed25519)65 ms130 ms
EdDSA (Ed448)303 ms605 ms
AlgorithmSignature Generation (Hardware)Signature Verification (Hardware)
EdDSA (Ed25519)44 ms88 ms
EdDSA (Ed448)102 ms202 ms

Key Exchange Algorithms

ESP32 @ 240 MHz

  • Benchmark generated with CycloneCRYPTO 2.1.2
  • Compiled using GCC with optimization level 2
AlgorithmPublic Key Generation (Software)Shared Secret Computation (Software)
Diffie-Hellman (1024 bits)306 ms307 ms
Diffie-Hellman (2048 bits)2291 ms2292 ms
AlgorithmPublic Key Generation (Hardware)Shared Secret Computation (Hardware)
Diffie-Hellman (1024 bits)22 ms22 ms
Diffie-Hellman (2048 bits)118 ms118 ms

EC Key Exchange Algorithms

ESP32 @ 240 MHz

  • Benchmark generated with CycloneCRYPTO 2.1.2
  • Compiled using GCC with optimization level 2
AlgorithmPublic Key Generation (Software)Shared Secret Computation (Software)
ECDH (P-256)222 ms220 ms
ECDH (P-384)392 ms392 ms
ECDH (P-521)486 ms486 ms
ECDH (X25519)36 ms36 ms
ECDH (X448)154 ms155 ms
AlgorithmPublic Key Generation (Hardware)Shared Secret Computation (Hardware)
ECDH (X25519)25 ms25 ms
ECDH (X448)54 ms54 ms