¿Cuál es la diferencia entre el cifrado de flujo y el cifrado de bloque?
El cifrado es un conjunto de reglas matemáticas, o algoritmo, utilizado para convertir un texto que se puede leer, o texto sin formato, en un texto que no se puede leer, o texto cifrado. La principal diferencia entre el cifrado de flujo y el de bloque es que el de flujo funciona con secuencias de texto, de un bit o un byte a la vez, mientras que un cifrado de bloque funciona con bloques de texto.
Cifrado de flujo
La idea básica del cifrado de flujo es dividir el texto en bloques pequeños, de un bit o un byte de largo, y codificar cada bloque dependiendo de muchos bloques anteriores. El cifrado de flujo utiliza una clave de codificación diferente, un valor que debe ser alimentado en el algoritmo, para cada bit o byte, para que este mismo produzca un texto cifrado diferente cada vez que se codifica. Algunos cifrados de flujo utilizan un generador de flujo de claves, que producen un flujo de bits al azar, o casi al azar. El cifrado lleva a cabo una operación Boolean, conocida cono una OR exclusiva, entre los bits en el flujo de claves y los bits en el texto sin formato para producir un texto cifrado.
Cifrado de bloque
La idea básica de un cifrado de bloque es dividir el texto en bloques relativamente largos, normalmente de 64 o 128 bits, y codificar cada bloque por separado. Se utiliza la misma clave de cifrado por cada bloque y es la clave de cifrado la que determina el orden en el que se llevan a cabo la sustitución, el transporte y otras funciones matemáticas en cada bloque. Los algoritmos fuertes significan que la ingeniería inversa del sistema de cifrado, o la determinación de qué funciones se llevaron a cabo en cada bloque, en qué orden, es virtualmente imposible.
Difusión y confusión
El cifrado de bloques utiliza técnicas conocidas como confusión y difusión para convertir el texto sin formato en un texto cifrado. La idea detrás de la confusión es hacer la relación entre la clave de cifrado y el texto sin formato lo más complejo posible. Idealmente, cada carácter de la clave de cifrado debe tener influencia en cada carácter del texto cifrado. En contraste, la difusión extiende la influencia de cada carácter en el texto sin formato sobre varios caracteres en el texto cifrado, haciendo que el cifrado sea menos susceptible a los ataques estadísticos.
Pros y contras
El hecho de que el cifrado de flujo cifre y descifre la información con un bit a la vez significa que son particularmente adaptables a las aplicaciones del hardware en tiempo real, tales como las de audio y video. El cifrado de flujo es más débil y menos eficaz que el de bloque cuando se trata de aplicaciones de software y son utilizadas con menos frecuencia en ese ámbito. El cifrado de bloque es más fácil de implementar en el software debido a que cifra la información en blues de longitud que el software ya utiliza. La clave de cifrado a menudo tiene la misma longitud que el tamaño del bloque.