Cifrado de transmisión vs Cifrado de bloque | Cifrado de estado vs cifrado de bloque
En criptografía, los cifrados de flujo y los cifrados de bloque son dos algoritmos de cifrado / descifrado que pertenecen a la familia de cifrados de clave simétrica. Normalmente, un cifrado toma un texto plano como entrada y produce un texto cifrado como salida. Los cifrados de bloque cifran el bloque de bits de longitud fija mediante una transformación invariable. Los cifrados de flujo cifran flujos de bits con longitud variable y utilizan transformación variable en cada bit.
¿Qué es un Cifrado Stream??
Los cifrados de flujo pertenecen a la familia de cifrados de clave simétrica. Los cifrados de flujo combinan bits de texto sin formato con un flujo de bits de cifrado pseudoaleatorio con el uso de la operación XOR (exclusiva -o). Los cifrados de flujo cifran los dígitos de texto sin formato uno a la vez con diferentes transformaciones para los dígitos sucesivos. Debido a que el cifrado de cada dígito depende del estado actual del motor de cifrado, los cifrados de flujo también se conocen como cifrados de estado. Por lo general, los bits individuales / bits se utilizan como dígitos únicos. Para evitar problemas de seguridad, debe asegurarse de que el mismo estado de inicio no se use más de una vez. El cifrado de flujo más utilizado es RC4.
¿Qué es un cifrado de bloque??
Un cifrado de bloque es otro cifrado de clave simétrica. Los cifrados de bloques operan en bloques (grupos de bits) con longitud fija. Los cifrados de bloque utilizan una transformación fija (invariable) para todos los dígitos del bloque. Por ejemplo, cuando se proporciona un texto sin formato de bloque de x-bit (junto con una clave secreta) como entrada al motor de cifrado de bloque, produce el bloque de x-bit correspondiente de texto cifrado. La transformación real depende de la clave secreta. De manera similar, el algoritmo de descifrado recupera el bloque original de x-bit del texto simple usando el bloque de x-bit del texto cifrado y la clave secreta anterior como entrada. En caso de que el mensaje de entrada sea demasiado largo en comparación con el tamaño del bloque, se dividirá en bloques y estos bloques se cifrarán (individualmente) con la misma clave. Sin embargo, debido a que se usa la misma clave, cada secuencia repetida en el texto simple se convierte en la misma secuencia repetida en el texto cifrado, y esto podría causar problemas de seguridad. Los cifrados de bloque populares son DES (Estándar de cifrado de datos) y AES (Estándar de cifrado avanzado).
¿Cuál es la diferencia entre un cifrado de flujo y un cifrado de bloque??
Aunque tanto los cifrados de flujo como los cifrados de bloque pertenecen a la familia de cifrados simétricos, existen algunas diferencias clave. Los cifrados de bloque cifran bloques de bits de longitud fija, mientras que los cifrados de flujo combinan bits de texto sin formato con un flujo de bits de cifrado pseudoaleatorio utilizando la operación XOR. Aunque los cifrados de bloque utilizan la misma transformación, los cifrados de flujo utilizan transformaciones variables según el estado del motor. Los cifrados de flujo generalmente se ejecutan más rápido que los cifrados de bloque. En términos de complejidad del hardware, los cifrados de flujo son relativamente menos complejos. Los cifrados de flujo son la preferencia típica sobre los cifrados de bloque cuando el texto sin formato está disponible en cantidades variables (por ejemplo, una conexión wifi segura), ya que los cifrados de bloque no pueden operar directamente en bloques más cortos que el tamaño del bloque. Pero a veces, la diferencia entre los cifrados de flujo y los cifrados de bloque no es muy clara. La razón es que, cuando se utilizan ciertos modos de operación, se puede usar un cifrado de bloque para actuar como un cifrado de flujo al permitirle cifrar la unidad de datos más pequeña disponible.