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 |