¿Qué hace exactamente que SPECK y SIMON sean particularmente adecuados para dispositivos IoT?

12

Para algunos dispositivos IoT, los datos que deben enviarse son confidenciales y, por lo tanto, enviarlos en texto sin formato no es aceptable. Por lo tanto, he estado considerando cómo cifrar los datos enviados entre dispositivos IoT. Un artículo que leí recientemente en el sitio web de RFID Journal menciona las cifras SPECK y SIMON desarrolladas por la NSA como particularmente adecuadas para aplicaciones IoT:

La NSA está haciendo públicos los cifrados [...] sin costo, como parte de un esfuerzo para garantizar la seguridad en Internet de las Cosas (IOT), en el cual los dispositivos comparten datos con otros en Internet.

[...]

Los investigadores de la NSA desarrollaron SIMON y SPECK como una mejora en los algoritmos de cifrado de bloques que ya estaban en uso y que, en la mayoría de los casos, fueron diseñados para computadoras de escritorio o sistemas muy especializados

¿Por qué debería seleccionar un algoritmo más nuevo como SIMON o SPECK para mi dispositivo IoT, especialmente para aplicaciones donde la energía es limitada (por ejemplo, solo la energía de la batería)? ¿Cuáles son los beneficios en comparación con otros sistemas de cifrado como AES ?

Aurora0001
fuente

Respuestas:

7

En "The Simon and Speck Block Ciphers on AVR 8-bit Microcontrollers" Beaulieu et al. investigue la implementación de SIMON y SPECK en un microcontrolador de 8 bits de gama baja y compare el rendimiento con otros cifrados. Se utiliza un Atmel ATmega128 con 128 Kbytes de memoria flash programable, 4 Kbytes de SRAM y treinta y dos registros de uso general de 8 bits.

Se comparan tres implementaciones de cifrado:

  1. Minimización de RAM

    Estas implementaciones evitan el uso de RAM para almacenar claves redondas al incluir las claves redondas previamente expandidas en la memoria del programa flash. No se incluye un cronograma clave para actualizar esta clave expandida, lo que hace que estas implementaciones sean adecuadas para aplicaciones donde la clave es estática.

  2. Alto rendimiento / baja energía

    Estas implementaciones incluyen el cronograma clave y desenrollan suficientes copias de la función redonda en la rutina de cifrado para lograr un rendimiento dentro de aproximadamente el 3% de una implementación completamente desenrollada. La clave, almacenada en flash, se utiliza para generar las claves redondas que posteriormente se almacenan en la RAM.

  3. Minimización de flash

    El horario clave se incluye aquí. Las limitaciones de espacio significan que solo podemos proporcionar una descripción incompleta de estas implementaciones. Sin embargo, debe tenerse en cuenta que los dos tipos anteriores de implementaciones ya tienen tamaños de código muy modestos.


Para comparar diferentes cifrados , se utiliza una medida de eficiencia de rendimiento ( rango ). El rango es proporcional al rendimiento dividido por el uso de la memoria.

SPECK ocupa el primer lugar para cada bloque y tamaño de clave que admite. Excepto por el tamaño de bloque de 128 bits, SIMON ocupa el segundo lugar para todos los tamaños de bloque y clave.

...

No es sorprendente que AES-128 tenga un rendimiento muy bueno en esta plataforma, aunque para el mismo tamaño de bloque y clave, SPECK tiene aproximadamente el doble de rendimiento. Para el mismo tamaño de clave pero con un tamaño de bloque de 64 bits, SIMON y SPECK logran un rendimiento general dos y cuatro veces mejor, respectivamente, que AES.

Al comparar SPECK 128/128 con AES-128, los autores encuentran que la huella de memoria de SPECK se reduce significativamente (460 bytes frente a 970 bytes), mientras que el rendimiento solo disminuye ligeramente (171 ciclos / byte frente a 146 ciclos / byte). Por lo tanto, el rendimiento de SPECK (en la métrica elegida) es mayor que AES. Teniendo en cuenta que la velocidad está correlacionada con el consumo de energía, los autores concluyen que "AES-128 puede ser una mejor opción en aplicaciones críticas de energía que SPECK 128/128 en esta plataforma". Sin embargo, los autores no están seguros de si el uso intensivo del acceso RAM (implementaciones AES de alta velocidad) es más eficiente desde el punto de vista energético que una implementación basada en registros de SPECK. En cualquier caso, se puede lograr una reducción significativa en el uso de la memoria flash, lo que podría ser relevante en los microcontroladores de gama baja.

Si una aplicación requiere alta velocidad, y el uso de memoria no es una prioridad, AES tiene la implementación más rápida (usando 1912 bytes de flash, 432 bytes de RAM) entre todos los cifrados de bloque con un bloque de 128 bits y clave que conocemos, con un costo de solo 125 ciclos / byte. El competidor más cercano de AES es SPECK 128/128, con un costo de 138 ciclos / byte para una implementación completamente desenrollada. Dado que la velocidad está correlacionada con el consumo de energía, AES-128 puede ser una mejor opción en aplicaciones críticas de energía que SPECK 128/128 en esta plataforma. Sin embargo, si no se requiere un bloque de 128 bits, como podríamos esperar para muchas aplicaciones en un microcontrolador de 8 bits, entonces una solución más eficiente en energía (usando 628 bytes de flash, 108 bytes de RAM) es SPECK 64/128 con el mismo tamaño de clave que AES-128 y un costo de cifrado de solo 122 ciclos / byte,


Además, esta charla tiene una figura de Enigma , ¿quién podría resistirse a un cifrado que hace referencia a Enigma ?

Ghanima
fuente