Crypto Benchmark on SAM4C MCU
ARM Cortex-M4 @ 120 MHz
This benchmark conducted on ATSAM4C32 Evaluation Kit (ATSAM4C32-EK) 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 SAM4C microcontroller.
SAM4C MCU also includes crypto hardware acceleration. In the following comparison charts, both hardware and software performance are presented in the relevant sections.
Cipher Algorithms
SAM4C @ 120 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.149 MB/s | 0.148 MB/s | - | - |
3DES-CTR | 0.15 MB/s | 0.15 MB/s | - | - |
AES128-CBC | 0.715 MB/s | 0.72 MB/s | 21.929 MB/s | 21.929 MB/s |
AES192-CBC | 0.617 MB/s | 0.626 MB/s | 21.097 MB/s | 20.964 MB/s |
AES256-CBC | 0.542 MB/s | 0.553 MB/s | 20.283 MB/s | 20.242 MB/s |
AES128-CTR | 0.733 MB/s | 0.73 MB/s | 21.186 MB/s | 21.052 MB/s |
AES192-CTR | 0.63 MB/s | 0.628 MB/s | 20.325 MB/s | 20.242 MB/s |
AES256-CTR | 0.553 MB/s | 0.551 MB/s | 19.531 MB/s | 19.531 MB/s |
SM4-CBC | 0.774 MB/s | 0.776 MB/s | - | - |
SM4-CTR | 0.773 MB/s | 0.773 MB/s | - | - |
AEAD Algorithms
SAM4C @ 120 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.474 MB/s | 0.472 MB/s | 20.533 MB/s | 20.449 MB/s |
AES192-GCM | 0.425 MB/s | 0.424 MB/s | 19.723 MB/s | 19.646 MB/s |
AES256-GCM | 0.391 MB/s | 0.39 MB/s | 19.047 MB/s | 18.939 MB/s |
AES128-CCM | 0.38 MB/s | 0.38 MB/s | - | - |
AES192-CCM | 0.321 MB/s | 0.322 MB/s | - | - |
AES256-CCM | 0.281 MB/s | 0.282 MB/s | - | - |
SM4-GCM | 0.485 MB/s | 0.483 MB/s | - | - |
SM4-CCM | 0.404 MB/s | 0.405 MB/s | - | - |
Ascon-AEAD128 | 1.198 MB/s | 1.198 MB/s | - | - |
ChaCha20Poly1305 | 0.923 MB/s | 0.922 MB/s | - | - |
Hash Algorithms
SAM4C @ 120 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Speed (Software) |
Speed (Hardware) |
---|---|---|
MD5 | 5.07 MB/s | - |
SHA-1 | 0.912 MB/s | 57.142 MB/s |
SHA-224 | 1.095 MB/s | 62.5 MB/s |
SHA-256 | 1.095 MB/s | 62.893 MB/s |
SHA-384 | 0.604 MB/s | - |
SHA-512 | 0.604 MB/s | - |
SHA3-224 | 0.432 MB/s | - |
SHA3-256 | 0.408 MB/s | - |
SHA3-384 | 0.314 MB/s | - |
SHA3-512 | 0.219 MB/s | - |
SM3 | 1.038 MB/s | - |
Ascon-Hash256 | 0.45 MB/s | - |
Signature Algorithms
SAM4C @ 120 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) | 198.7 ms | 35.1 ms | 15.4 ms | 1.2 ms |
RSA (2048 bits) | 995.1 ms | 124.9 ms | 73.3 ms | 3.4 ms |
RSA (3072 bits) | 2776.4 ms | 264.7 ms | 214.7 ms | 7.1 ms |
RSA (4096 bits) | 5948 ms | 464.3 ms | 478.1 ms | 12 ms |
DSA (1024 bits) | 111.3 ms | 232.5 ms | 25.4 ms | 64.9 ms |
DSA (2048 bits) | 491.8 ms | 1044.2 ms | 92.1 ms | 247.8 ms |
DSA (3072 bits) | 1040.3 ms | 2228 ms | 192.1 ms | 531.4 ms |
EC Signature Algorithms
SAM4C @ 120 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) | 128 ms | 114.9 ms | 34.3 ms | 68 ms |
ECDSA (secp384r1) | 309.2 ms | 279.3 ms | 62.8 ms | 124 ms |
ECDSA (secp521r1) | 644.9 ms | 566.7 ms | 124.8 ms | 247.9 ms |
ECDSA (brainpoolP256r1) | 243.2 ms | 242.1 ms | 34.3 ms | 67.5 ms |
ECDSA (brainpoolP384r1) | 637.1 ms | 635.2 ms | 62.4 ms | 124 ms |
ECDSA (brainpoolP512r1) | 1321.5 ms | 1340.5 ms | 111.8 ms | 225.6 ms |
SM2 | 114 ms | 114 ms | 33.1 ms | 33.1 ms |
EdDSA (Ed25519) | 30.2 ms | 26.8 ms | - | - |
EdDSA (Ed448) | 152.7 ms | 130.7 ms | - | - |
Key Exchange Algorithms
SAM4C @ 120 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) | 380.4 ms | 380.7 ms | 34.8 ms | 34.8 ms |
Diffie-Hellman (2048 bits) | 2548.3 ms | 2548.5 ms | 233.1 ms | 233.1 ms |
EC Key Exchange Algorithms
SAM4C @ 120 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) | 113.4 ms | 113.1 ms | 33.4 ms | 33 ms |
ECDH (secp384r1) | 271.1 ms | 270.6 ms | 60.6 ms | 60.1 ms |
ECDH (secp521r1) | 555.5 ms | 554.8 ms | 122.3 ms | 121.6 ms |
ECDH (brainpoolP256r1) | 226.5 ms | 226.2 ms | 32.8 ms | 32.4 ms |
ECDH (brainpoolP384r1) | 592.2 ms | 591.7 ms | 60.1 ms | 59.6 ms |
ECDH (brainpoolP512r1) | 1227 ms | 1226.4 ms | 111.3 ms | 110.9 ms |
ECDH (SM2) | 114 ms | 113.6 ms | 33.3 ms | 33 ms |
ECDH (X25519) | 16.3 ms | 16.3 ms | - | - |
ECDH (X448) | 73.7 ms | 73.7 ms | - | - |