Modos de operación de cifrado en bloque

En este capítulo, discutiremos los diferentes modos de operación de un cifrado de bloques. Estas son reglas de procedimiento para un cifrado de bloque genérico. Curiosamente, los diferentes modos dan como resultado diferentes propiedades que se suman a la seguridad del cifrado de bloque subyacente.

Un cifrado de bloques procesa los bloques de datos de tamaño fijo. Por lo general, el tamaño de un mensaje es mayor que el tamaño del bloque. Por lo tanto, el mensaje largo se divide en una serie de bloques de mensajes secuenciales y el cifrado opera en estos bloques uno a la vez.

Modo Libro de códigos electrónico (ECB)

Este modo es la forma más sencilla de procesar una serie de bloques de mensajes enumerados secuencialmente.

Operación

  • El usuario toma el primer bloque de texto plano y lo encripta con la clave para producir el primer bloque de texto cifrado.

  • Luego toma el segundo bloque de texto sin formato y sigue el mismo proceso con la misma clave y así sucesivamente.

El modo ECB es deterministic, es decir, si los bloques de texto sin formato P1, P2,…, Pm se cifran dos veces con la misma clave, los bloques de texto cifrado de salida serán los mismos.

De hecho, para una clave dada técnicamente podemos crear un libro de códigos de textos cifrados para todos los bloques de texto sin formato posibles. El cifrado implicaría entonces buscar solo el texto sin formato requerido y seleccionar el texto cifrado correspondiente. Por lo tanto, la operación es análoga a la asignación de palabras de código en un libro de códigos y, por lo tanto, obtiene un nombre oficial: modo de operación de libro de códigos electrónico (ECB). Se ilustra de la siguiente manera:

Análisis del modo ECB

En realidad, los datos de cualquier aplicación suelen tener información parcial que se puede adivinar. Por ejemplo, se puede adivinar el rango de salario. Un texto cifrado de ECB puede permitir que un atacante adivine el texto sin formato mediante prueba y error si el mensaje de texto sin formato es predecible.

Por ejemplo, si se sabe que un texto cifrado del modo ECB encripta una cifra salarial, una pequeña cantidad de ensayos permitirá que un atacante recupere la cifra. En general, no deseamos utilizar un cifrado determinista y, por tanto, el modo ECB no debería utilizarse en la mayoría de las aplicaciones.

Modo de encadenamiento de bloques de cifrado (CBC)

El modo de operación CBC proporciona dependencia del mensaje para generar texto cifrado y hace que el sistema no sea determinista.

Operación

El funcionamiento del modo CBC se muestra en la siguiente ilustración. Los pasos son los siguientes:

  • Cargue el vector de inicialización (IV) de n bits en el registro superior.

  • XOR el bloque de texto plano de n bits con el valor de los datos en el registro superior.

  • Cifre el resultado de la operación XOR con el cifrado de bloque subyacente con la clave K.

  • Introduzca el bloque de texto cifrado en el registro superior y continúe la operación hasta que se procesen todos los bloques de texto sin formato.

  • Para el descifrado, los datos IV se XOR con el primer bloque de texto cifrado descifrado. El primer bloque de texto cifrado también se alimenta al registro que reemplaza IV para descifrar el siguiente bloque de texto cifrado.

Análisis del modo CBC

En el modo CBC, el bloque de texto sin formato actual se agrega al bloque de texto cifrado anterior y luego el resultado se cifra con la clave. El descifrado es, por tanto, el proceso inverso, que implica descifrar el texto cifrado actual y luego agregar el bloque de texto cifrado anterior al resultado.

La ventaja de CBC sobre ECB es que cambiar IV da como resultado un texto cifrado diferente para un mensaje idéntico. En el lado negativo, el error en la transmisión se propaga a unos pocos bloques más durante el descifrado debido al efecto de encadenamiento.

Vale la pena mencionar que el modo CBC constituye la base de un conocido mecanismo de autenticación del origen de datos. Por lo tanto, tiene una ventaja para aquellas aplicaciones que requieren cifrado simétrico y autenticación del origen de los datos.

Modo de retroalimentación de cifrado (CFB)

En este modo, cada bloque de texto cifrado se 'retroalimenta' en el proceso de cifrado para cifrar el siguiente bloque de texto sin formato.

Operación

El funcionamiento del modo CFB se muestra en la siguiente ilustración. Por ejemplo, en el sistema actual, un bloque de mensajes tiene un tamaño de bits donde 1 <s <n. El modo CFB requiere un vector de inicialización (IV) como bloque de entrada aleatorio inicial de n bits. El IV no tiene por qué ser secreto. Los pasos de operación son:

  • Cargue el IV en el registro superior.

  • Cifre el valor de los datos en el registro superior con el cifrado de bloque subyacente con la clave K.

  • Tome solo el número 's' de los bits más significativos (bits izquierdos) de la salida del proceso de cifrado y realice una XOR con el bloque de mensajes de texto plano de bits 's' para generar un bloque de texto cifrado.

  • Introduzca el bloque de texto cifrado en el registro superior desplazando los datos ya presentes a la izquierda y continúe la operación hasta que se procesen todos los bloques de texto sin formato.

  • Esencialmente, el bloque de texto cifrado anterior se cifra con la clave, y luego el resultado se aplica XOR al bloque de texto sin formato actual.

  • Se siguen pasos similares para el descifrado. El IV predeterminado se carga inicialmente al inicio del descifrado.

Análisis del modo CFB

El modo CFB difiere significativamente del modo ECB, el texto cifrado correspondiente a un bloque de texto plano determinado depende no solo de ese bloque de texto plano y la clave, sino también del bloque de texto cifrado anterior. En otras palabras, el bloque de texto cifrado depende del mensaje.

CFB tiene una característica muy extraña. En este modo, el usuario descifra el texto cifrado utilizando solo el proceso de cifrado del cifrado en bloque. El algoritmo de descifrado del cifrado de bloque subyacente nunca se utiliza.

Aparentemente, el modo CFB está convirtiendo un cifrado de bloque en un tipo de cifrado de flujo. El algoritmo de cifrado se utiliza como generador de flujo de claves para producir un flujo de claves que se coloca en el registro inferior. Esta secuencia de claves es luego XORed con el texto sin formato como en el caso del cifrado de secuencia.

Al convertir un cifrado de bloque en un cifrado de flujo, el modo CFB proporciona algunas de las propiedades ventajosas de un cifrado de flujo mientras conserva las propiedades ventajosas de un cifrado de bloque.

Por otro lado, el error de transmisión se propaga debido al cambio de bloques.

Modo de realimentación de salida (OFB)

Implica alimentar los sucesivos bloques de salida desde el cifrado de bloque subyacente de vuelta a él. Estos bloques de retroalimentación proporcionan una cadena de bits para alimentar el algoritmo de cifrado que actúa como generador de flujo de claves como en el caso del modo CFB.

El flujo de claves generado se XOR-ed con los bloques de texto sin formato. El modo OFB requiere un IV como bloque de entrada aleatorio inicial de n bits. El IV no tiene por qué ser secreto.

La operación se muestra en la siguiente ilustración:

Modo contador (CTR)

Puede considerarse como una versión basada en contador del modo CFB sin la retroalimentación. En este modo, tanto el remitente como el receptor necesitan acceder a un contador confiable, que calcula un nuevo valor compartido cada vez que se intercambia un bloque de texto cifrado. Este contador compartido no es necesariamente un valor secreto, pero el desafío es que ambas partes deben mantener el contador sincronizado.

Operación

Tanto el cifrado como el descifrado en modo CTR se muestran en la siguiente ilustración. Los pasos en operación son:

  • Cargar el valor del contador inicial en el registro superior es el mismo para el emisor y el receptor. Desempeña el mismo papel que el IV en modo CFB (y CBC).

  • Cifre el contenido del contador con la clave y coloque el resultado en el registro inferior.

  • Tome el primer bloque de texto plano P1 y XOR esto al contenido del registro inferior. El resultado de esto es C1. Envíe C1 al receptor y actualice el contador. La actualización del contador reemplaza la retroalimentación del texto cifrado en el modo CFB.

  • Continúe de esta manera hasta que se haya cifrado el último bloque de texto sin formato.

  • El descifrado es el proceso inverso. El bloque de texto cifrado se XOR con la salida del contenido cifrado del valor del contador. Después del descifrado de cada bloque de texto cifrado, el contador se actualiza como en el caso del cifrado.

Análisis del modo contador

No tiene dependencia de mensajes y, por lo tanto, un bloque de texto cifrado no depende de los bloques de texto sin formato anteriores.

Al igual que el modo CFB, el modo CTR no implica el proceso de descifrado del cifrado de bloque. Esto se debe a que el modo CTR realmente utiliza el cifrado de bloque para generar un flujo de claves, que se cifra mediante la función XOR. En otras palabras, el modo CTR también convierte un cifrado de bloque en un cifrado de flujo.

La seria desventaja del modo CTR es que requiere un contador síncrono en el emisor y el receptor. La pérdida de sincronización conduce a una recuperación incorrecta del texto sin formato.

Sin embargo, el modo CTR tiene casi todas las ventajas del modo CFB. Además, no propaga ningún error de transmisión.