Modos de funcionamiento de un cifrado por bloques

Anuncios

En este capítulo, hablaremos de los diferentes modos de funcionamiento de un cifrado por bloques. Se trata de reglas de procedimiento para un cifrado por bloques genérico. Curiosamente, los diferentes modos dan lugar a que se consigan diferentes propiedades que se suman a la seguridad del cifrado por bloques subyacente.

Un cifrado por bloques procesa los bloques de datos de tamaño fijo. Normalmente, 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 de uno en uno.

Modo de Libro de Códigos Electrónicos (ECB)

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

Operación

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

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

El modo ECB es determinista, es decir, si el bloque de texto plano P1, P2,…, Pm se cifra 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 plano posibles. El cifrado consistiría entonces en buscar únicamente el texto plano requerido y seleccionar el texto cifrado correspondiente. Por lo tanto, la operación es análoga a la asignación de palabras clave en un libro de códigos, y de ahí que reciba 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 la realidad, cualquier dato de aplicación suele tener información parcial que se puede adivinar. Por ejemplo, se puede adivinar el rango del salario. Un texto cifrado de BCE puede permitir a un atacante adivinar el texto plano por ensayo y error si el mensaje del texto plano está dentro de lo predecible.

Por ejemplo, si se sabe que un texto cifrado del modo BCE encripta una cifra de salario, entonces un pequeño número de ensayos permitirá a un atacante recuperar la cifra. En general, no deseamos utilizar un cifrado determinista y, por lo 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 funcionamiento CBC proporciona dependencia de los mensajes para generar el texto cifrado y hace que el sistema no sea determinista.

Operación

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

  • Cargar 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.

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

  • Ingresar el bloque de texto cifrado en el registro superior y continuar la operación hasta que se procesen todos los bloques de texto plano.

  • Para el descifrado, los datos del IV se XORizan con el primer bloque de texto cifrado descifrado. El primer bloque de texto cifrado también se introduce en el registro sustituyendo al IV para descifrar el siguiente bloque de texto cifrado.

Análisis del modo CBC

En el modo CBC, el bloque de texto plano actual se añade al bloque de texto cifrado anterior, y luego el resultado se cifra con la clave. El descifrado es, por tanto, el proceso inverso, que consiste en descifrar el texto cifrado actual y, a continuación, añadir el bloque de texto cifrado anterior al resultado.

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

Cabe mencionar que el modo CBC constituye la base de un conocido mecanismo de autenticación del origen de los datos. Por lo tanto, tiene una ventaja para aquellas aplicaciones que requieren tanto el cifrado simétrico como la 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 con el fin de cifrar el siguiente bloque de texto plano.

Operación

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

  • Cargar el IV en el registro superior.

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

  • Tomar sólo ‘s’ número de bits más significativos (bits de la izquierda) de la salida del proceso de encriptación y XOR con ‘s’ bloque de mensaje de texto plano para generar el bloque de texto cifrado.

  • Introduce el bloque de texto cifrado en el registro superior desplazando los datos ya presentes hacia la izquierda y continúa la operación hasta que se hayan procesado todos los bloques de texto plano.

  • Esencialmente, el bloque de texto cifrado anterior se cifra con la clave y, a continuación, el resultado se XORiza con el bloque de texto plano actual.

  • Se siguen pasos similares para el descifrado. El IV predecidido se carga inicialmente al comienzo 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 dado depende no sólo de ese bloque de texto plano y de 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 únicamente el proceso de cifrado del cifrado por bloques. El algoritmo de descifrado del cifrado por bloques subyacente nunca se utiliza.

Aparentemente, el modo CFB está convirtiendo un cifrado por bloques en un tipo de cifrado de flujo. El algoritmo de cifrado se utiliza como un generador de flujo de claves para producir un flujo de claves que se coloca en el registro inferior. Este flujo de claves es entonces XORed con el texto plano como en el caso de cifrado de flujo.

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 al tiempo que 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 retroalimentación de salida (OFB)

Se trata de retroalimentar los sucesivos bloques de salida del cifrado de bloques subyacente. Estos bloques de retroalimentación proporcionan una cadena de bits para alimentar el algoritmo de encriptación que actúa como generador de flujo de claves como en el caso del modo CFB.

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

El funcionamiento se representa en la siguiente ilustración –

Modo Contador (CTR)

Puede considerarse como una versión basada en el contador del modo CFB sin la retroalimentación. En este modo, tanto el emisor como el receptor necesitan acceder a un contador fiable, 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 reto es que ambos lados deben mantener el contador sincronizado.

Operación

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

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

  • Encriptar el contenido del contador con la clave y colocar el resultado en el registro inferior.

  • Tomar el primer bloque de texto plano P1 y XOR éste al contenido del registro inferior. El resultado es C1. Envía C1 al receptor y actualiza 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 el último bloque de texto plano haya sido cifrado.

  • El descifrado es el proceso inverso. El bloque de texto cifrado se XOR con la salida del contenido cifrado del valor del contador. Tras el 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 los mensajes y, por tanto, un bloque de texto cifrado no depende de los bloques de texto plano anteriores.

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

La grave desventaja del modo CTR es que requiere un contador sincrónico en el emisor y el receptor. La pérdida de sincronización conduce a una recuperación incorrecta del texto plano.

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

Publicidad

Deja una respuesta

Tu dirección de correo electrónico no será publicada.