miércoles, 10 de julio de 2013

Cifrado de flujo - SNOW

Cifrado de flujo.

Un sistema de cifrado de flujo, a diferencia del cifrado por bloque, realiza el cifrado de la información caracter por caracter.

Un flujo de cifrado binario, es un flujo de cifrado sincronizado entre el flujo de claves, el texto plano y el texto cifrado que son secuencias de dígitos binarios.

La salida de un generador de claves de flujo, llamado "running key", ej. z(1), z(2),... es "sumado"/"agregado" simbólicamente al la secuencia del texto m(1), m(2),..., dando como resultado el texto cifrado c(1), c(2),... . Cada clave secreta "k" es ingresada en el flujo generador de claves, que corresponde a la secuencia de salida. Una vez que la clave secreta "k" es compartida entre quien transmite y quien recibe, donde quien recibe puede descifrar "restando"/"quitando" la salida del flujo generador de claves al texto cifrado obteniendo la secuencia del mensaje.

Algoritmo SNOW.


El algoritmo SNOW, consta de una llave secreta de 128 o 256 bits y una variable de inicialización (IV0, IV1,…, IV3) de 128 bits de conocimiento público.

La operación del mismo está basada en una maquina de estados finitos (FSM) con 2
registros de 32 bits y un registro de desplazamiento con retroalimentación lineal (LFSR)
con un tamaño de palabra de 32 bits. El cifrador utiliza las operaciones de caja de
sustitución (S-BOX) como elemento no lineal que permite obtener la propiedad de
confusión y la transformación MixColumns del cifrador AES como elemento que
permite obtener difusión.


Cifrador SNOW


Para inicializar el cifrador es necesario introducir estados internos en cada una de las
palabras del LFSR (St0, St1,…, St15), para ello se siguen las siguientes fórmulas en el
caso de una llave (K0, K1,…, K7) de 256 bits:


Además de ello es necesario guardar un valor cero en cada uno de los registros de la
FSM:

R1= R2 = 0

Luego de esto se procede a actualizar 32 veces la salida del LFSR utilizando el

esquema de retroalimentación:

Retroalimentación al inicializar SNOW.

Finalmente se actualiza una vez más la salida del LFSR mediante el esquema (Cifrador SNOW).

Realizadas estas operaciones, el cifrador se encuentra listo para generar un flujo de llave (running key) que será añadido al texto plano mediante la operación XOR.
Para descifrar deberá inicializarse el algoritmo con la misma llave secreta e IV, con ello se generara el mismo flujo de llave, luego de ello se realizará la operación XOR con el texto cifrado con lo cual se recuperará el mensaje original.

Ataques efectivos contra este algoritmo:

  • Búsqueda exaustiva de claves:
    • El más eficiente para atacar este algoritmo.
  • Ataque de intercambio en tiempo de memoria:
    • Se utiliza principalmente en redes GSM, cuando los cambios de estado de memoria son muy pequeños.

Aplicaciones.

Este algoritmo está pensado para equipos de escasos recursos, por ejemplo:

  • Controles remotos(puertas automáticas de garaje, control remoto de botones de seguridad en vehículos, etc.).
  • Transmisión de texto entre equipos celulares o similares.
  • Cifrar conversaciones en redes celulares, de radio, satelitales, etc.
  • Se utiliza en el cifrado en redes IP.

Ventajas.

  • Fácil implementación.
  • Seguro.
  • De bajo costo en aparatos de recursos limitados.
  • Utiliza estándares de clase mundial para el cifrado.


Bibliografia.


Patrik Ekdahl, Thomas Johansson, SNOW - a new stream cipher, año 2001 http://www.hackerzvoice.net/madchat/crypto/hash-lib-algo/snow/snow10.pdf

Alvarado Martínez, Rubén Paul, Diseño e implementación de un control remoto seguro ante interceptación para puerta levadiza de garaje, año 2011 http://tesis.pucp.edu.pe/repositorio/handle/123456789/906

1 comentario: