Los cifrados de flujo son adecuados para aplicaciones de hardware en tiempo real.
Un cifrado es un conjunto de reglas matemáticas, o algoritmo, que se utiliza para convertir texto legible o texto sin formato en texto ilegible o texto cifrado. La principal diferencia entre los cifrados de flujo y los cifrados de bloque es que los cifrados de flujo funcionan en flujos de texto, un bit o un byte a la vez, mientras que los cifrados de bloque funcionan en bloques de texto.
Cifrado de flujo
La idea básica de un cifrado de flujo es dividir el texto en bloques pequeños, de un bit o un byte de longitud, y codificar cada bloque en función de muchos bloques anteriores. Los cifrados de flujo utilizan una clave de cifrado diferente, un valor que debe introducirse en el algoritmo, para cada bit o byte, por lo que el mismo bit o byte produce un texto cifrado diferente cada vez que se cifra. Algunos cifrados de flujo utilizan un generador de flujo de claves, que produce un flujo de bits aleatorio o casi aleatorio. El cifrado realiza una operación booleana, conocida como OR exclusivo, entre los bits del flujo de claves y los bits del texto sin formato para producir texto cifrado.
Video del día
Cifrado de bloque
La idea básica de un cifrado de bloques es dividir el texto en bloques relativamente grandes, normalmente de 64 o 128 bits de longitud, y codificar cada bloque por separado. Se utiliza la misma clave de cifrado para cada bloque y es la clave de cifrado la que determina la orden en el que la sustitución, el transporte y otras funciones matemáticas se realizan en cada cuadra. Los algoritmos sólidos significan que realizar ingeniería inversa del cifrado o determinar qué funciones se realizaron en cada bloque, en qué orden, es prácticamente imposible.
Difusión y confusión
Los cifrados en bloque utilizan técnicas conocidas como confusión y difusión para cifrar texto plano en texto cifrado. La idea detrás de la confusión es hacer que la relación entre la clave de cifrado y el texto cifrado sea lo más compleja posible. Idealmente, todos los caracteres de la clave de cifrado deberían influir en todos los caracteres del texto cifrado. Por el contrario, la difusión extiende la influencia de cada carácter en el texto sin formato sobre varios caracteres en el texto cifrado, lo que hace que el cifrado sea menos susceptible a ataques estadísticos.
Pros y contras
El hecho de que los cifrados de flujo cifren y descifren datos bit a bit significa que son especialmente adecuados para aplicaciones de hardware en tiempo real, como aplicaciones de audio y vídeo. Los cifrados de flujo son más débiles y menos eficientes que los cifrados en bloque cuando se trata de aplicaciones de software y se usan con menos frecuencia en esa esfera. Los cifrados en bloque son más fáciles de implementar en software porque cifran datos en bloques de una longitud que el software ya utiliza. La clave de cifrado suele tener la misma longitud que el tamaño del bloque.