¿Qué es un cifrado de flujo?

Un cifrado de flujo es un tipo de algoritmo utilizado en el cifrado de datos en el que la fuente que debe cifrarse se procesa con una secuencia de claves que parece aleatoria. Este tipo de cifrado es algo flexible en el sentido de que puede variar el cifrado a medida que se procesa el texto. A veces también se les conoce como cifrado de estado porque el cifrado también depende del estado actual de la operación. A diferencia de los cifrados de bloque, que funcionan con fragmentos de datos de 64 bits a la vez, un cifrado de flujo puede operar en un solo bit. Por esta razón, una secuencia se puede procesar a altas velocidades con muy poca potencia de procesamiento.

El primer cifrado de flujo fue ideado por Gilbert Vernam en 1917. Vernam más tarde también ayudó a crear un cifrado conocido como bloc de un solo uso, que es una forma de cifrado de flujo que utiliza una clave de un solo uso para cifrar los datos. En un bloc de notas de una sola vez, la clave generada tiene la misma longitud que los datos que deben cifrarse, es completamente aleatoria y nunca se vuelve a utilizar en ningún otro lugar, de ahí el nombre.

Cuando se procesa con los datos que se van a cifrar, normalmente denominados texto sin formato, el texto cifrado resultante es imposible de descifrar sin la clave. La almohadilla de un solo uso es difícil de manejar en la mayoría de los escenarios y, por lo tanto, solo se usa para situaciones muy exclusivas. Aún así, un cifrado de flujo generalmente se considera útil, por lo que las claves se acortaron y se hicieron pseudoaleatorias, lo que significa que son estadísticamente aleatorias, pero en realidad no lo son.

Stream Cipher tiene la capacidad de cifrar sobre la marcha. De esta manera, es incluso fácil que las personas realicen cifrados de flujo simple en lápiz y papel, mientras que un cifrado en bloque generalmente requiere el uso de una computadora para procesarlo. El texto sin formato fluye a través del proceso de cifrado junto con el flujo de claves, la secuencia pseudoaleatoria que forma la clave, donde se convierte y sale por el otro extremo como texto cifrado.

Por lo general, este cifrado se realiza mediante una operación exclusiva o (XOR) en los bits individuales a medida que pasan por el cifrado. Un cifrado XOR simple usa un tipo de disyunción lógica como base, que esencialmente dice que el resultado puede ser verdadero si cualquiera de los operandos es verdadero, pero no ambos. Por ejemplo, si un bit que se mueve a través del proceso de cifrado es un cero o un uno, y el bit de flujo de claves emparejado no coincide, la salida resultante es uno. Si el bit y el bit de flujo de claves emparejado coinciden, donde ambos son uno o ambos son cero, el resultado es cero. El flujo cifrado de unos y ceros luego se descifra en el otro extremo de la transmisión utilizando el mismo flujo de claves para convertir los bits de nuevo en su texto plano original.

Hay dos tipos de cifrado de flujo. Usando un método síncrono, el flujo de claves se crea por separado del texto sin formato o el texto cifrado y luego se fusiona para proporcionar el cifrado o descifrado. Con este método, los extremos de envío y recepción de la transmisión deben permanecer sincronizados donde operan en la misma clave y en la misma posición en la clave. Si ocurre un problema, el descifrado debe comenzar de nuevo o puede haber indicadores colocados de forma intermitente a lo largo del texto cifrado que indiquen nuevos puntos de partida. Un cifrado con sincronización automática, por otro lado, actualizará el flujo de claves basándose en un número de dígitos anteriores en el texto cifrado.
RSA Data Security® creó uno de los cifrados de flujo más utilizados, llamado RC4. Tiene licencia y se utiliza en varios productos de software, así como en el protocolo de capa de conexión segura (SSL) utilizado en las comunicaciones seguras de Internet y el cifrado de privacidad equivalente por cable (WEP) utilizado con dispositivos inalámbricos. Otro cifrado de uso frecuente se conoce como ORYX, que ha encontrado uso en transmisiones de datos de teléfonos móviles que necesitan cifrarse. IBM® también ha desarrollado un método de cifrado de flujo conocido como SEAL, que ha encontrado uso en el cifrado de disco duro.