Crypto Benchmark on PIC32CX-SG MCU
ARM Cortex-M4F @ 120 MHz
This benchmark conducted on PIC32CX SG41 Curiosity Ultra Evaluation Board (EV06X38A) 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 Microchip PIC32CX-SG microcontroller.
PIC32CX-SG MCU also includes crypto hardware acceleration. In the following comparison charts, both hardware and software performance are presented in the relevant sections.
Cipher Algorithms
PIC32CX-SG @ 120 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.338 MB/s | 0.333 MB/s | - | - |
3DES-CTR | 0.339 MB/s | 0.339 MB/s | - | - |
AES128-CBC | 1.485 MB/s | 1.222 MB/s | 16.42 MB/s | 16.339 MB/s |
AES192-CBC | 1.307 MB/s | 1.066 MB/s | 15.432 MB/s | 15.384 MB/s |
AES256-CBC | 1.166 MB/s | 0.946 MB/s | 14.577 MB/s | 14.492 MB/s |
AES128-CTR | 1.6 MB/s | 1.6 MB/s | - | - |
AES192-CTR | 1.395 MB/s | 1.394 MB/s | - | - |
AES256-CTR | 1.236 MB/s | 1.236 MB/s | - | - |
SM4-CBC | 1.58 MB/s | 1.502 MB/s | - | - |
SM4-CTR | 1.707 MB/s | 1.706 MB/s | - | - |
AEAD Algorithms
PIC32CX-SG @ 120 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.899 MB/s | 0.892 MB/s | 14.792 MB/s | 14.727 MB/s |
AES192-GCM | 0.829 MB/s | 0.822 MB/s | 13.927 MB/s | 13.888 MB/s |
AES256-GCM | 0.769 MB/s | 0.763 MB/s | 13.175 MB/s | 13.175 MB/s |
AES128-CCM | 0.89 MB/s | 0.891 MB/s | - | - |
AES192-CCM | 0.762 MB/s | 0.762 MB/s | - | - |
AES256-CCM | 0.665 MB/s | 0.666 MB/s | - | - |
SM4-GCM | 0.934 MB/s | 0.934 MB/s | - | - |
SM4-CCM | 0.962 MB/s | 0.964 MB/s | - | - |
Ascon-AEAD128 | 1.536 MB/s | 1.538 MB/s | - | - |
ChaCha20Poly1305 | 2.151 MB/s | 2.154 MB/s | - | - |
Hash Algorithms
PIC32CX-SG @ 120 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using GCC with optimization level 3
Algorithm | Speed (Software) |
Speed (Hardware) |
---|---|---|
MD5 | 7.204 MB/s | - |
SHA-1 | 2.003 MB/s | 61.349 MB/s |
SHA-224 | 1.447 MB/s | 68.027 MB/s |
SHA-256 | 1.447 MB/s | 68.027 MB/s |
SHA-384 | 0.851 MB/s | - |
SHA-512 | 0.851 MB/s | - |
SHA3-224 | 0.693 MB/s | - |
SHA3-256 | 0.656 MB/s | - |
SHA3-384 | 0.505 MB/s | - |
SHA3-512 | 0.352 MB/s | - |
SM3 | 1.166 MB/s | - |
Ascon-Hash256 | 0.574 MB/s | - |
Signature Algorithms
PIC32CX-SG @ 120 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) | 152.6 ms | 22.4 ms | 11.7 ms | 1 ms |
RSA (2048 bits) | 920.3 ms | 84.1 ms | 67.8 ms | 3.2 ms |
RSA (3072 bits) | 2798.7 ms | 182.1 ms | 205.7 ms | 6.8 ms |
RSA (4096 bits) | 6295.5 ms | 322.9 ms | 466.3 ms | 11.6 ms |
DSA (1024 bits) | 90.4 ms | 187.2 ms | 15.7 ms | 42.1 ms |
DSA (2048 bits) | 464.6 ms | 969.3 ms | 65.5 ms | 178 ms |
EC Signature Algorithms
PIC32CX-SG @ 120 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) | 118.5 ms | 106 ms | 23 ms | 45.7 ms |
ECDSA (secp384r1) | 297.3 ms | 267.1 ms | 53 ms | 104.9 ms |
ECDSA (secp521r1) | 619.4 ms | 543.5 ms | 113 ms | 224.6 ms |
ECDSA (brainpoolP256r1) | 223.8 ms | 222 ms | 23 ms | 45.4 ms |
ECDSA (brainpoolP384r1) | 586.3 ms | 582.7 ms | 52.6 ms | 104.8 ms |
ECDSA (brainpoolP512r1) | 1213.7 ms | 1228 ms | 100.7 ms | 203.5 ms |
SM2 | 105.5 ms | 105.5 ms | 22.4 ms | 22.4 ms |
EdDSA (Ed25519) | 30.8 ms | 27.7 ms | - | - |
EdDSA (Ed448) | 131.2 ms | 116.2 ms | - | - |
Key Exchange Algorithms
PIC32CX-SG @ 120 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) | 387.5 ms | 387.5 ms | 32.3 ms | 32.3 ms |
Diffie-Hellman (2048 bits) | 2877 ms | 2877.4 ms | 227.4 ms | 227.3 ms |
EC Key Exchange Algorithms
PIC32CX-SG @ 120 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) | 105 ms | 104.8 ms | 22.6 ms | 22.4 ms |
ECDH (secp384r1) | 262.2 ms | 262 ms | 51.6 ms | 51.3 ms |
ECDH (secp521r1) | 535 ms | 534.5 ms | 111.3 ms | 110.9 ms |
ECDH (brainpoolP256r1) | 208.3 ms | 208.1 ms | 22.2 ms | 21.9 ms |
ECDH (brainpoolP384r1) | 544.8 ms | 544.4 ms | 51.2 ms | 50.9 ms |
ECDH (brainpoolP512r1) | 1126.8 ms | 1126.5 ms | 101 ms | 100.7 ms |
ECDH (SM2) | 105.6 ms | 105.3 ms | 22.5 ms | 22.4 ms |
ECDH (X25519) | 16.5 ms | 16.5 ms | - | - |
ECDH (X448) | 66.6 ms | 66.7 ms | - | - |