Skip to main content

¿Qué es un cifrado de flujo?

  • Cleveland

Un cifrado de flujo es un tipo de algoritmo utilizado en el cifrado de datos donde la fuente que debe cifrarse se procesa contra una secuencia de teclas 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 en fragmentos de datos de 64 bits a la vez, un cifrado de flujo puede operar en un solo bit. Por esta razón, un flujo puede procesarse 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 el pad de una sola vez, que es una forma de cifrado de flujo que utiliza una clave única para cifrar los datos. En un pad de una sola vez, la clave generada tiene la misma longitud que los datos que deben cifrarse, es completamente aleatoria y nunca más se usa 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. El pad de una sola vez 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.

El cifrado de flujo tiene la capacidad de cifrar sobre la marcha. De esta forma, incluso es fácil que las personas puedan realizar cifrados de flujo simples en lápiz y papel, mientras que un cifrado en bloque generalmente requiere el uso de una computadora para procesar. El texto sin formato fluye a través del proceso de cifrado junto con el flujo de claves, la secuencia pseudoaleatoria que constituye la clave, donde se convierte y sale del 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 a través del cifrado. Un simple cifrado XOR utiliza 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 cero o uno, y el bit de secuencia de claves emparejado no coincide, la salida resultante es uno. Si el bit y el bit de flujo de clave emparejado coinciden, donde ambos son un uno o ambos son un cero, el resultado es un cero. La secuencia cifrada de unos y ceros se descifra en el otro extremo de la transmisión utilizando la misma secuencia de claves para convertir los bits nuevamente en su texto original.

Hay dos tipos de cifrado de flujo. Usando un método sincrónico, la secuencia de claves se crea por separado del texto sin formato o del 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 con la misma tecla y la misma posición en la tecla. En caso de que ocurra un problema, el descifrado debe comenzar de nuevo o puede haber banderas colocadas de manera intermitente a lo largo del texto cifrado que indican nuevos puntos de partida. Un cifrado de sincronización automática, por otro lado, actualizará la secuencia de claves en función de 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 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 celulares que necesitan ser encriptados. IBM® también ha desarrollado un método de cifrado de flujo conocido como SEAL, que se ha utilizado en el cifrado de disco duro.