Crypto Benchmark on SAMD51 MCU
ARM Cortex-M4F @ 120 MHz
This benchmark conducted on Adafruit Metro M4 Evaluation Board featuring ATSAMD51 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 SAMD51 microcontroller.
SAMD51 MCU also includes crypto hardware acceleration. In the following comparison charts, both hardware and software performance are presented in the relevant sections.
Cipher Algorithms
SAMD51 @ 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.328 MB/s | 0.328 MB/s | - | - |
3DES-CTR | 0.33 MB/s | 0.33 MB/s | - | - |
AES128-CBC | 1.561 MB/s | 1.573 MB/s | 16.26 MB/s | 16.207 MB/s |
AES192-CBC | 1.369 MB/s | 1.392 MB/s | 15.267 MB/s | 15.22 MB/s |
AES256-CBC | 1.219 MB/s | 1.246 MB/s | 14.409 MB/s | 14.367 MB/s |
AES128-CTR | 1.49 MB/s | 1.49 MB/s | 15.898 MB/s | 15.847 MB/s |
AES192-CTR | 1.314 MB/s | 1.314 MB/s | 14.992 MB/s | 14.925 MB/s |
AES256-CTR | 1.176 MB/s | 1.175 MB/s | 14.144 MB/s | 14.124 MB/s |
SM4-CBC | 1.529 MB/s | 1.473 MB/s | - | - |
SM4-CTR | 1.461 MB/s | 1.461 MB/s | - | - |
AEAD Algorithms
SAMD51 @ 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.807 MB/s | 0.81 MB/s | 14.471 MB/s | 14.388 MB/s |
AES192-GCM | 0.755 MB/s | 0.755 MB/s | 13.642 MB/s | 13.586 MB/s |
AES256-GCM | 0.703 MB/s | 0.704 MB/s | 12.936 MB/s | 12.87 MB/s |
AES128-CCM | 0.825 MB/s | 0.824 MB/s | - | - |
AES192-CCM | 0.716 MB/s | 0.715 MB/s | - | - |
AES256-CCM | 0.632 MB/s | 0.631 MB/s | - | - |
SM4-GCM | 0.821 MB/s | 0.819 MB/s | - | - |
SM4-CCM | 0.807 MB/s | 0.806 MB/s | - | - |
Ascon-AEAD128 | 1.561 MB/s | 1.575 MB/s | - | - |
ChaCha20Poly1305 | 1.162 MB/s | 1.16 MB/s | - | - |
Hash Algorithms
SAMD51 @ 120 MHz
- • Benchmark generated with CycloneCRYPTO 2.5.0
- • Compiled using ARMCC with optimization level 3
Algorithm | Speed (Software) |
Speed (Hardware) |
---|---|---|
MD5 | 7.027 MB/s | - |
SHA-1 | 1.668 MB/s | 60.606 MB/s |
SHA-224 | 1.606 MB/s | 67.114 MB/s |
SHA-256 | 1.606 MB/s | 67.114 MB/s |
SHA-384 | 0.826 MB/s | - |
SHA-512 | 0.826 MB/s | - |
SHA3-224 | 0.554 MB/s | - |
SHA3-256 | 0.523 MB/s | - |
SHA3-384 | 0.403 MB/s | - |
SHA3-512 | 0.281 MB/s | - |
SM3 | 1.406 MB/s | - |
Ascon-Hash256 | 0.602 MB/s | - |
Signature Algorithms
SAMD51 @ 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) | 143.7 ms | 26.8 ms | 11.7 ms | 1 ms |
RSA (2048 bits) | 739.2 ms | 97.8 ms | 67.8 ms | 3.3 ms |
RSA (3072 bits) | 2081.4 ms | 209.6 ms | 205.7 ms | 6.8 ms |
RSA (4096 bits) | 4479.1 ms | 369.4 ms | 466.4 ms | 11.7 ms |
DSA (1024 bits) | 81.5 ms | 171.1 ms | 19.2 ms | 50.4 ms |
DSA (2048 bits) | 369.6 ms | 785 ms | 75.9 ms | 204.7 ms |
DSA (3072 bits) | 790 ms | 1689.4 ms | 162.2 ms | 446.1 ms |
EC Signature Algorithms
SAMD51 @ 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) | 94.7 ms | 85.2 ms | 23.1 ms | 45.7 ms |
ECDSA (secp384r1) | 234.2 ms | 211.6 ms | 53 ms | 104.9 ms |
ECDSA (secp521r1) | 495.2 ms | 434.1 ms | 113 ms | 224.6 ms |
ECDSA (brainpoolP256r1) | 175.3 ms | 174.3 ms | 23.1 ms | 45.5 ms |
ECDSA (brainpoolP384r1) | 465.7 ms | 463.4 ms | 52.7 ms | 104.8 ms |
ECDSA (brainpoolP512r1) | 968.9 ms | 979.9 ms | 100.8 ms | 203.5 ms |
SM2 | 84.9 ms | 84.9 ms | 22.4 ms | 22.4 ms |
EdDSA (Ed25519) | 22.9 ms | 20.5 ms | - | - |
EdDSA (Ed448) | 116.3 ms | 102.8 ms | - | - |
Key Exchange Algorithms
SAMD51 @ 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) | 279.6 ms | 279.8 ms | 32.3 ms | 32.3 ms |
Diffie-Hellman (2048 bits) | 1906.3 ms | 1906.6 ms | 227.4 ms | 227.4 ms |
EC Key Exchange Algorithms
SAMD51 @ 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) | 84.2 ms | 84 ms | 22.6 ms | 22.4 ms |
ECDH (secp384r1) | 206.4 ms | 206.2 ms | 51.6 ms | 51.3 ms |
ECDH (secp521r1) | 428.2 ms | 427.7 ms | 111.4 ms | 110.9 ms |
ECDH (brainpoolP256r1) | 163.2 ms | 162.9 ms | 22.3 ms | 22 ms |
ECDH (brainpoolP384r1) | 433 ms | 432.7 ms | 51.2 ms | 50.9 ms |
ECDH (brainpoolP512r1) | 899.9 ms | 899.3 ms | 101 ms | 100.8 ms |
ECDH (SM2) | 84.8 ms | 84.6 ms | 22.6 ms | 22.3 ms |
ECDH (X25519) | 12.5 ms | 12.5 ms | - | - |
ECDH (X448) | 59.2 ms | 59.2 ms | - | - |