No hay una noción absoluta de "ligereza": por definición, esta es una noción relativa: en una arquitectura dada, un algoritmo específico puede ser "más ligero" que otro. Dependiendo del contexto de uso, esto puede ser "suficientemente claro" o no. Además, hay varias métricas:
- En las plataformas de software, consideramos el uso de la CPU y el uso de la RAM (tanto el caché L1 para el código, dependiendo del tamaño del código, como el caché L1 para los datos, ejercidos por las tablas de búsqueda).
- En las plataformas de hardware (FPGA, ASIC ...), el área de silicio, la latencia, el ancho de banda, el consumo de energía ... son valores importantes y ninguno es "más importante" genéricamente que cualquier otro.
Un algoritmo puede ser más ligero que otro para una de estas métricas y más pesado para otra. Por ejemplo, con las implementaciones típicas, en plataformas de software, AES utilizará menos CPU que 3DES, pero necesitará RAM (aproximadamente 4 kB para tablas de búsqueda constantes; por lo general, este uso de caché es perfectamente tolerable, por lo que AES es casi invariablemente " mucho más rápido "que 3DES).
Todo investigador que desee promocionar las características de rendimiento de su código de mascota definirá su propia línea formal de peso, su creación, por supuesto, en el lado "ligero".