SNOW es una familia de cifrados de flujo síncrono basados en palabras desarrollados por Thomas Johansson y Patrik Ekdahl en la Universidad de Lund .
Tienen un registro de desplazamiento de retroalimentación lineal de 512 bits en su núcleo, seguido de una máquina de estado de salida no lineal con algunas palabras de estado adicionales.
SNOW 1.0 , SNOW 2.0 y SNOW 3G utilizan un registro de desplazamiento de 16 palabras de 32 bits y una transformación de salida XOR (ARX) de adición y rotación de 32 bits con 2 o 3 palabras de estado. Cada iteración avanza el registro de desplazamiento en 32 bits y produce 32 bits de salida.
SNOW-V y SNOW-Vi utilizan un registro de desplazamiento de 32 palabras de 16 bits (diseñado para implementarse como 4 registros SIMD de 128 bits ) que avanza 16 bits por iteración. Se pueden realizar 8 iteraciones LFSR simultáneamente usando operaciones SIMD, después de lo cual se realiza un paso de transformación de salida, produciendo 128 bits de salida. La transformación de salida utiliza la función de ronda del Estándar de cifrado avanzado (AES) (comúnmente implementada en hardware en procesadores recientes) y mantiene 2 palabras de estado adicionales de 128 bits.
SNOW 1.0, originalmente simplemente SNOW, se presentó al proyecto NESSIE . [1] El cifrado no tiene propiedad intelectual conocida ni otras restricciones. El cifrado funciona con palabras de 32 bits y admite claves de 128 y 256 bits. El cifrado consta de una combinación de un LFSR y una máquina de estados finitos (FSM), donde el LFSR también alimenta la siguiente función de estado de la FSM. El cifrado tiene una fase de inicialización corta y un rendimiento muy bueno tanto en procesadores de 32 bits como en hardware.
Durante la evaluación, se descubrieron debilidades y, como resultado, SNOW no se incluyó en el conjunto de algoritmos de NESSIE. Los autores han desarrollado una nueva versión, la versión 2.0 del cifrado, que soluciona los puntos débiles y mejora el rendimiento. [2]
Durante la evaluación de ETSI SAGE, el diseño se modificó aún más para aumentar su resistencia contra ataques algebraicos con el resultado denominado SNOW 3G. [3]
Se ha descubierto que existen claves relacionadas tanto para SNOW 2.0 como para SNOW 3G, [4] permitiendo ataques contra SNOW 2.0 en el modelo de clave relacionada.
SNOW se ha utilizado en el proyecto ESTREAM como cifrado de referencia para la evaluación del desempeño.
SNOW 2.0 es uno de los cifrados fuera de corriente elegido para el estándar ISO/IEC ISO/IEC 18033-4. [5]
SNOW 3G [6] se elige como cifrado de flujo para los algoritmos de cifrado 3GPP UEA2 y UIA2. [7]
SNOW-V fue un rediseño extenso publicado en 2019, [8] diseñado para igualar las velocidades de la red celular 5G generando 128 bits de salida por iteración. SNOW-Vi [9] fue ajustado para una velocidad aún mayor mediante pequeños cambios en el LFSR; la transformación de salida es idéntica.