|
Lightweight Cryptography Primitives
|
This page lists the performance figures for AVR platforms, in particular the ATmega2560 running at 16MHz. Figures for other AVR chips should be fairly similar. Performance figures for 32-bit platforms can be found here.
| Algorithm | Key Bits | Nonce Bits | Tag Bits | Encrypt 128 bytes | Decrypt 128 bytes | Encrypt 16 bytes | Decrypt 16 bytes | Average |
| Schwaemm128-128 (SPARKLE) | 128 | 128 | 128 | 4.38 | 3.87 | 8.37 | 7.70 | 4.94 |
| Schwaemm256-128 (SPARKLE) | 128 | 256 | 128 | 4.45 | 4.00 | 5.07 | 4.89 | 4.45 |
| Schwaemm192-192 (SPARKLE) | 192 | 192 | 192 | 3.63 | 3.31 | 5.29 | 5.05 | 3.91 |
| ASCON-128a | 128 | 128 | 128 | 2.95 | 2.90 | 4.28 | 4.22 | 3.28 |
| Schwaemm256-256 (SPARKLE) | 256 | 256 | 256 | 3.03 | 2.75 | 3.45 | 3.33 | 3.04 |
| GIFT-COFB | 128 | 128 | 128 | 2.61 | 2.41 | 3.88 | 3.70 | 2.83 |
| ASCON-128 | 128 | 128 | 128 | 2.18 | 2.16 | 3.83 | 3.79 | 2.55 |
| ASCON-80pq | 160 | 128 | 128 | 2.18 | 2.16 | 3.82 | 3.78 | 2.55 |
| TinyJAMBU-128 | 128 | 96 | 64 | 1.79 | 1.78 | 4.02 | 3.99 | 2.21 |
| Delirium (Elephant) | 128 | 96 | 128 | 1.72 | 1.70 | 3.41 | 3.37 | 2.06 |
| Xoodyak | 128 | 128 | 128 | 1.81 | 1.80 | 2.58 | 2.57 | 2.01 |
| TinyJAMBU-192 | 192 | 96 | 64 | 1.62 | 1.61 | 3.72 | 3.69 | 2.00 |
| Romulus-N | 128 | 128 | 128 | 1.56 | 1.55 | 3.66 | 3.62 | 1.94 |
| TinyJAMBU-256 | 256 | 96 | 64 | 1.47 | 1.47 | 3.46 | 3.44 | 1.83 |
| PHOTON-Beetle-AEAD-ENC-128 | 128 | 128 | 128 | 1.16 | 1.15 | 2.82 | 2.76 | 1.45 |
| Romulus-M | 128 | 128 | 128 | 1.08 | 1.08 | 2.46 | 2.45 | 1.34 |
| AES-128-GCM | 128 | 96 | 128 | 1.02 | 1.02 | 2.23 | 2.22 | 1.26 |
| AES-192-GCM | 192 | 96 | 128 | 0.99 | 0.99 | 2.15 | 2.14 | 1.22 |
| AES-256-GCM | 256 | 96 | 128 | 0.96 | 0.96 | 2.04 | 2.03 | 1.18 |
| Grain-128AEAD | 128 | 96 | 64 | 0.83 | 0.70 | 1.96 | 1.78 | 0.96 |
| Romulus-T | 128 | 128 | 128 | 0.48 | 0.48 | 0.94 | 0.94 | 0.57 |
| Dumbo (Elephant) | 128 | 96 | 64 | 0.37 | 0.37 | 0.79 | 0.79 | 0.45 |
| PHOTON-Beetle-AEAD-ENC-32 | 128 | 128 | 128 | 0.33 | 0.34 | 1.15 | 1.15 | 0.44 |
| Jumbo (Elephant) | 128 | 96 | 64 | 0.33 | 0.33 | 0.62 | 0.62 | 0.39 |
| ISAP-A-128A | 128 | 128 | 128 | 0.37 | 0.38 | 0.31 | 0.32 | 0.35 |
| ISAP-K-128A | 128 | 128 | 128 | 0.32 | 0.33 | 0.25 | 0.25 | 0.30 |
| ISAP-A-128 | 128 | 128 | 128 | 0.07 | 0.08 | 0.04 | 0.04 | 0.06 |
| ISAP-K-128 | 128 | 128 | 128 | 0.05 | 0.06 | 0.03 | 0.03 | 0.04 |
| Algorithm | Hash Bits | 1024 bytes | 128 bytes | 16 bytes | Average |
| Esch256 (SPARKLE) | 256 | 1.90 | 1.65 | 3.15 | 2.23 |
| SHA256 | 256 | 2.22 | 1.55 | 2.22 | 1.99 |
| Esch384 (SPARKLE) | 384 | 1.20 | 0.96 | 1.48 | 1.21 |
| Xoodyak | 256 | 0.92 | 0.83 | 1.83 | 1.19 |
| Romulus-H | 256 | 0.91 | 0.75 | 1.81 | 1.16 |
| ASCON-HASHA | 256 | 1.05 | 0.81 | 1.17 | 1.01 |
| ASCON-HASH | 256 | 0.72 | 0.59 | 0.98 | 0.76 |
| PHOTON-Beetle-HASH | 256 | 0.17 | 0.18 | 1.38 | 0.58 |
SHA256 uses a fully unrolled implementation of the SHA256 block transform function in AVR assembly code.
AEAD algorithm rankings:
| Rank | Algorithms |
| 44 | SPARKLE |
| 28 | GIFT-COFB |
| 25 | ASCON |
| 22 | TinyJAMBU |
| 20 | Xoodyak |
| 19 | Romulus |
| 14 | PHOTON-Beetle |
| 12 | AES-128-GCM |
| 9 | Grain-128AEAD |
| 4 | Elephant |
| 3 | ISAP |
Hash algorithm rankings:
| Rank | Algorithms |
| 22 | SPARKLE |
| 19 | SHA256 |
| 11 | Romulus, Xoodyak |
| 7 | ASCON |
| 5 | PHOTON-Beetle |
1.8.6