Crypto Benchmark on PIC32CX-MT MCU
ARM Cortex-M4F @ 196 MHz
This benchmark conducted on PIC32CXMTG-EK Evaluation Kit (EV11K09A) 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-MT microcontroller.
PIC32CX-MT 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-MT @ 196 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Encryption (Software) |
Decryption (Software) |
Encryption (Hardware) |
Decryption (Hardware) |
---|---|---|---|---|
3DES-CBC | 0.148 MB/s | 0.149 MB/s | - | - |
3DES-CTR | 0.147 MB/s | 0.147 MB/s | - | - |
AES128-CBC | 0.747 MB/s | 0.728 MB/s | 17.301 MB/s | 17.331 MB/s |
AES192-CBC | 0.641 MB/s | 0.628 MB/s | 16.722 MB/s | 16.694 MB/s |
AES256-CBC | 0.562 MB/s | 0.553 MB/s | 16.155 MB/s | 16.155 MB/s |
AES128-CTR | 0.724 MB/s | 0.717 MB/s | 16.474 MB/s | 16.393 MB/s |
AES192-CTR | 0.624 MB/s | 0.619 MB/s | 15.873 MB/s | 15.822 MB/s |
AES256-CTR | 0.549 MB/s | 0.545 MB/s | 15.36 MB/s | 15.29 MB/s |
SM4-CBC | 0.792 MB/s | 0.742 MB/s | - | - |
SM4-CTR | 0.74 MB/s | 0.74 MB/s | - | - |
AEAD Algorithms
PIC32CX-MT @ 196 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Encryption (Software) |
Decryption (Software) |
Encryption (Hardware) |
Decryption (Hardware) |
---|---|---|---|---|
AES128-GCM | 0.501 MB/s | 0.5 MB/s | 17.825 MB/s | 17.793 MB/s |
AES192-GCM | 0.447 MB/s | 0.446 MB/s | 17.064 MB/s | 17.035 MB/s |
AES256-GCM | 0.411 MB/s | 0.41 MB/s | 16.474 MB/s | 16.393 MB/s |
AES128-CCM | 0.383 MB/s | 0.385 MB/s | - | - |
AES192-CCM | 0.324 MB/s | 0.325 MB/s | - | - |
AES256-CCM | 0.285 MB/s | 0.286 MB/s | - | - |
SM4-GCM | 0.503 MB/s | 0.501 MB/s | - | - |
SM4-CCM | 0.397 MB/s | 0.398 MB/s | - | - |
Ascon-AEAD128 | 1.249 MB/s | 1.254 MB/s | - | - |
ChaCha20Poly1305 | 1.267 MB/s | 1.264 MB/s | - | - |
Hash Algorithms
PIC32CX-MT @ 196 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Speed (Software) |
Speed (Hardware) |
---|---|---|
MD5 | 5.192 MB/s | - |
SHA-1 | 1.149 MB/s | 30.395 MB/s |
SHA-224 | 1.196 MB/s | 32.362 MB/s |
SHA-256 | 1.196 MB/s | 32.362 MB/s |
SHA-384 | 0.769 MB/s | 36.363 MB/s |
SHA-512 | 0.769 MB/s | 36.496 MB/s |
SHA3-224 | 0.638 MB/s | - |
SHA3-256 | 0.604 MB/s | - |
SHA3-384 | 0.465 MB/s | - |
SHA3-512 | 0.324 MB/s | - |
SM3 | 1.141 MB/s | - |
Ascon-Hash256 | 0.455 MB/s | - |
Signature Algorithms
PIC32CX-MT @ 196 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Generation (Software) |
Verification (Software) |
Generation (Hardware) |
Verification (Hardware) |
---|---|---|---|---|
RSA (1024 bits) | 158.2 ms | 27 ms | 7.8 ms | 0.7 ms |
RSA (2048 bits) | 778.9 ms | 92.5 ms | 42.7 ms | 2.1 ms |
RSA (3072 bits) | 2125.4 ms | 192.9 ms | 127.6 ms | 4.4 ms |
RSA (4096 bits) | 4494.3 ms | 335.8 ms | 287.4 ms | 7.4 ms |
DSA (1024 bits) | 88.4 ms | 180.6 ms | 19 ms | 48.9 ms |
DSA (2048 bits) | 372.2 ms | 778.2 ms | 66.8 ms | 181.8 ms |
DSA (3072 bits) | 769.7 ms | 1626.6 ms | 138.1 ms | 387.6 ms |
EC Signature Algorithms
PIC32CX-MT @ 196 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Generation (Software) |
Verification (Software) |
Generation (Hardware) |
Verification (Hardware) |
---|---|---|---|---|
ECDSA (secp256r1) | 138.7 ms | 126 ms | 15.4 ms | 30 ms |
ECDSA (secp384r1) | 352.8 ms | 321.3 ms | 33.8 ms | 66.2 ms |
ECDSA (secp521r1) | 784.5 ms | 692.6 ms | 70.8 ms | 139.8 ms |
ECDSA (brainpoolP256r1) | 282.3 ms | 283.8 ms | 15.3 ms | 29.8 ms |
ECDSA (brainpoolP384r1) | 770.3 ms | 772.7 ms | 33.5 ms | 66.1 ms |
ECDSA (brainpoolP512r1) | 1634.2 ms | 1663.8 ms | 63.4 ms | 127.3 ms |
SM2 | 121.5 ms | 121.5 ms | 14.8 ms | 14.8 ms |
EdDSA (Ed25519) | 22.8 ms | 19.6 ms | - | - |
EdDSA (Ed448) | 109.8 ms | 91 ms | - | - |
Key Exchange Algorithms
PIC32CX-MT @ 196 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC 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) | 303.6 ms | 303.8 ms | 20.2 ms | 20.3 ms |
Diffie-Hellman (2048 bits) | 1945.7 ms | 1945.7 ms | 140.1 ms | 140.1 ms |
EC Key Exchange Algorithms
PIC32CX-MT @ 196 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Public Key Generation (Software) |
Shared Secret Computation (Software) |
Public Key Generation (Hardware) |
Shared Secret Computation (Hardware) |
---|---|---|---|---|
ECDH (secp256r1) | 121.5 ms | 121.1 ms | 14.9 ms | 14.6 ms |
ECDH (secp384r1) | 306.3 ms | 305.6 ms | 32.8 ms | 32.3 ms |
ECDH (secp521r1) | 676.3 ms | 675.6 ms | 69.6 ms | 68.9 ms |
ECDH (brainpoolP256r1) | 262.4 ms | 262.1 ms | 14.7 ms | 14.3 ms |
ECDH (brainpoolP384r1) | 715.3 ms | 714.7 ms | 32.5 ms | 32 ms |
ECDH (brainpoolP512r1) | 1516.5 ms | 1516 ms | 63.3 ms | 62.8 ms |
ECDH (SM2) | 121.7 ms | 121.1 ms | 14.9 ms | 14.6 ms |
ECDH (X25519) | 12.2 ms | 12.1 ms | - | - |
ECDH (X448) | 51 ms | 50.9 ms | - | - |