2 Criptografía de clave simétrica
2.2 Algoritmos de cifrado en flujo

Un cifrado en flujo es un cifrado simétrico que opera con una transformación variable en el tiempo que aplica a símbolos individuales del texto en claro. Esto se logra mediante la suma lógica de símbolos de texto en claro y de una cadena de claves. La cadena de claves, también llamada clave de funcionamiento, es una secuencia pseudo-aleatoria (una secuencia que aparece como una secuencia aleatoria a un atacante) generada por un autómata de estado finito, cuyo estado inicial está determinado por una clave secreta y un parámetro público.

La seguridad de un cifrado de flujo depende totalmente de la cadena de claves. El flujo de claves debe ser impredecible para prevenir un ataque exitoso.

image
Fig 2.8 Ejemplo de cifrado en flujo: algoritmo Trivium

La implementación de esquemas de cifrado en flujo suele requerir menos recursos que los algoritmos de cifrado en bloque (ya sea en software, por ejemplo, en tamaño de código o en hardware, el área de chip), y son atractivos para su uso en entornos restringidos tales como teléfonos móviles.

En la mayoría de aplicaciones, como la seguridad en Internet, los algoritmos de cifrado en flujo son menos populares que los cifrados de bloque. Hay excepciones, por ejemplo, el algoritmo RC4.

Tipos de algoritmo de cifrado en flujo

Los algoritmos de cifrado en flujo generan elementos sucesivos de la cadena de claves a partir de un estado interno. En un cifrado en flujo síncrono, el mecanismo de actualización de estado es independiente del texto en claro y del texto cifrado. Por el contrario, los cifrados de flujo autosincronizantes actualizan su estado en base a los símbolos anteriores del texto cifrado.

Cifrado en flujo síncrono

La cadena de claves generada por el cifrado en flujo síncrono es independiente del texto en claro y del texto cifrado. Dicha cadena se genera habitualmente mediante un generador pseudoaleatorio, parametrizado con una clave, que es la clave secreta de todo el esquema.

image
Fig 2.9 Cifrado en flujo síncrono

Algunas propiedades importantes del cifrado en flujo síncrono son:

Cifrado en flujo autosincronizante

En cifrado en flujo autosincrozante, o asíncrono, el flujo de claves depende de la clave secreta del esquema y de un número fijo de símbolos de texto cifrado (que ya se han generado, o recibido).

image
Fig 2.10 Cifrado en flujo autosincronizante

Las principales propiedades de este esquema son las siguientes: