Modo de agrupación de criptografía (IV, II) (modo CBC)
? El modo CBC significa modo Cipher Block Chaining, de ahí el nombre porque los bloques de cifrado están conectados entre sí como una cadena.
? En el modo CBC, el paquete de texto sin formato primero se aplica mediante XOR con el paquete de texto cifrado anterior y luego se cifra.
¿Comparación del modelo del BCE y el modelo del CBC
? Cuando se envía el primer paquete de texto sin formato cifrado, dado que no existe un "paquete de texto cifrado anterior", es necesario preparar una secuencia de bits de un paquete con anticipación para reemplazar el "paquete de texto cifrado anterior". Esta secuencia de bits se denomina vector de inicialización, generalmente abreviado. como IV. Cada cifrado generará aleatoriamente una secuencia diferente de bits como vector de inicialización.
? Antes del cifrado, el paquete de texto sin formato debe someterse a una operación XOR con el "paquete de texto cifrado anterior", por lo que incluso si los valores de los paquetes de texto sin formato 1 y 2 son iguales, los valores de los paquetes de texto cifrado 1 y 2 no son necesariamente iguales. De esta forma, el modo CBC no tiene los defectos del modo ECB.
? En el modo CBC, no podemos cifrar solo paquetes de texto plano intermedios. Por ejemplo, si desea generar el grupo de texto cifrado 3, debe recopilar al menos los grupos de texto sin formato 1, 2 y 3.
? Supongamos que uno de los bloques de texto cifrado cifrados en modo CBC está dañado. En este caso, siempre que la longitud de los bloques de texto cifrado no esté numerada, como máximo dos bloques se verán afectados por la corrupción de datos durante el descifrado.
? Suponga que algunos bits en el grupo de texto cifrado se pierden en el modo CBC. Incluso si solo se pierde 1 bit en este momento, la longitud del grupo de texto cifrado cambiará y los grupos posteriores estarán desalineados, lo que resultará en todos los grupos de texto cifrado después de los bits perdidos. no poder ser descifrado.
? Supongamos que el atacante activo Mallory pretende manipular el texto plano descifrado modificando el texto cifrado. Si Mallory puede invertir cualquier bit en el vector de inicialización, el bit correspondiente en el paquete de texto plano también se invertirá. Esto se debe a que durante el proceso de descifrado en modo CBC, el primer bloque de texto sin formato se aplicará XOR con el vector de inicialización.
De esta manera, Mallory puede atacar el vector de inicialización, pero es muy difícil atacar la agrupación de texto cifrado de la misma manera.
? Un ataque de oráculo de relleno es un ataque que explota el relleno en un cifrado de bloque. En un cifrado de bloque, cuando la longitud del texto sin formato no es un múltiplo entero de la longitud del bloque, es necesario rellenar algunos datos en el último bloque para completar la longitud de un bloque. En un ataque de sugerencia de relleno, el atacante envía repetidamente un fragmento de texto cifrado, cambiando un poco los datos de relleno cada vez. Debido a que el receptor devuelve un mensaje de error cuando no puede descifrarlo correctamente, el atacante puede obtener información sobre el texto sin formato a través de este mensaje de error. Este modo de ataque no se limita al modo CBC, sino que se aplica a todos los modos que requieren relleno de paquetes de datos. El ataque caniche de 2014 que tuvo un gran impacto en SSL3.0 fue en realidad un ataque de relleno. Para defenderse de este ataque, es necesario autenticar el texto cifrado para garantizar que realmente fue generado por un remitente legítimo basándose en el contenido del texto sin formato formulado.
? El vector de inicialización debe utilizar números aleatorios impredecibles. Luego, en la versión del protocolo SSL/TSL1.0, el vector inicial no utiliza números aleatorios impredecibles, sino que utiliza el último paquete en el último cifrado en modo CBC. Para evitar que los atacantes ataquen esto, TSL1.1 y versiones posteriores cambiaron el requisito de que el vector de inicialización debe transmitirse explícitamente.
? SSL/TSL es uno de los protocolos de comunicación que garantiza la seguridad de Internet. Utiliza el modo CBC para garantizar la confidencialidad de la comunicación, como 3DES_EDE_CBC que usa Triple DES en modo CBC y AES_256_CBC que usa AES de 256 bits en modo CBC.
Un modo de cifrado de bloques CNOOC se llama modo CTS. En un cifrado de bloque, cuando la longitud del texto sin formato no es divisible por la longitud del bloque, es necesario rellenar el último bloque.
El modo CTS se usa para indicar qué datos del paquete de texto cifrado del último paquete se usan para completar la información y generalmente se usa en combinación con el modo ECB y el modo CBC. Existen varias variantes del modo CTS (CBC-CS1, CBC-CS2, CBC-CS3) según el orden en el que se envía el último paquete.
El contenido principal de esta serie proviene de Graphical Cryptography, tercera edición.
Solo soy un portador de conocimiento
Las ilustraciones del artículo son del trabajo original.