Non esiste una nozione assoluta di "leggerezza": per definizione, questa è una nozione relativa: su una determinata architettura, un algoritmo specifico può essere "più leggero" di un altro. A seconda del contesto di utilizzo, questo potrebbe essere "abbastanza leggero" o meno. Inoltre, ci sono diverse metriche:
- Sulle piattaforme software, consideriamo l'utilizzo della CPU e l'utilizzo della RAM (sia la cache L1 per il codice, a seconda delle dimensioni del codice, sia la cache L1 per i dati, esercitata dalle tabelle di ricerca).
- Su piattaforme hardware (FPGA, ASIC ...), area del silicio, latenza, larghezza di banda, consumo di enery ... sono valori importanti e nessuno dei due è "più importante" genericamente di qualsiasi altro.
Un algoritmo può essere più leggero di un altro per una di queste metriche e più pesante per un'altra. Ad esempio, con implementazioni tipiche, su piattaforme software, AES utilizzerà meno CPU rispetto a 3DES, ma avrà bisogno di RAM (circa 4 kB per tabelle di ricerca costanti, in genere questo utilizzo della cache è perfettamente tollerabile, motivo per cui AES è quasi invariabilmente " molto più veloce "di 3DES).
Ogni ricercatore desideroso di sollecitare le caratteristiche prestazionali del suo codice animale definirà la sua linea formale di peso, essendo la sua creazione, naturalmente, nel lato "leggero".