stringtranslate.com

Vector de inicialización

En criptografía , un vector de inicialización ( IV ) o variable inicial [1] es una entrada a una primitiva criptográfica que se utiliza para proporcionar el estado inicial. Por lo general, se requiere que la IV sea aleatoria o pseudoaleatoria , pero a veces una IV solo necesita ser impredecible o única. La aleatorización es crucial para que algunos esquemas de cifrado logren seguridad semántica, una propiedad mediante la cual el uso repetido del esquema bajo la misma clave no permite a un atacante inferir relaciones entre segmentos (potencialmente similares) del mensaje cifrado. Para los cifrados en bloque , el uso de un IV se describe por los modos de operación .

Algunas primitivas criptográficas requieren que el IV solo no se repita, y la aleatoriedad requerida se deriva internamente. En este caso, el IV se denomina comúnmente nonce (un número que se usa sólo una vez) y las primitivas (por ejemplo, CBC ) se consideran con estado en lugar de aleatorias . Esto se debe a que no es necesario reenviar explícitamente un IV a un destinatario, sino que puede derivarse de un estado común actualizado tanto en el lado del remitente como en el del receptor. (En la práctica, todavía se transmite un nonce corto junto con el mensaje para considerar la pérdida del mismo). Un ejemplo de esquemas de cifrado con estado es el modo de operación del contador, que tiene un número de secuencia para un nonce.

El tamaño del IV depende de la primitiva criptográfica utilizada; para los cifrados en bloque, generalmente es el tamaño del bloque del cifrado. En los esquemas de cifrado, la parte impredecible del IV tiene, en el mejor de los casos, el mismo tamaño que la clave para compensar los ataques de compensación de tiempo/memoria/datos. [2] [3] [4] [5] Cuando el IV se elige al azar, se debe tener en cuenta la probabilidad de colisiones debido al problema del cumpleaños . Los cifrados de flujo tradicionales, como RC4, no admiten un IV explícito como entrada, y se necesita una solución personalizada para incorporar un IV en la clave de cifrado o en el estado interno. Se sabe que algunos diseños realizados en la práctica son inseguros; el protocolo WEP es un ejemplo notable y es propenso a ataques IV relacionados.

Motivación

Cifrado inseguro de una imagen como resultado de la codificación en modo de libro de códigos electrónico .

Un cifrado de bloque es una de las primitivas más básicas de la criptografía y se utiliza con frecuencia para el cifrado de datos . Sin embargo, por sí solo, sólo se puede utilizar para codificar un bloque de datos de un tamaño predefinido, llamado tamaño de bloque . Por ejemplo, una única invocación del algoritmo AES transforma un bloque de texto plano de 128 bits en un bloque de texto cifrado de 128 bits de tamaño. La clave , que se proporciona como entrada al cifrado, define la asignación entre texto sin formato y texto cifrado. Si se van a cifrar datos de longitud arbitraria, una estrategia simple es dividir los datos en bloques, cada uno de los cuales coincide con el tamaño del bloque de cifrado, y cifrar cada bloque por separado usando la misma clave. Este método no es seguro ya que bloques de texto plano iguales se transforman en textos cifrados iguales y un tercero que observe los datos cifrados puede determinar fácilmente su contenido incluso sin conocer la clave de cifrado.

Para ocultar patrones en datos cifrados y al mismo tiempo evitar la reemisión de una nueva clave después de cada invocación de cifrado de bloque, se necesita un método para aleatorizar los datos de entrada. En 1980, el NIST publicó un documento estándar nacional denominado Estándar Federal de Procesamiento de Información (FIPS) PUB 81, que especificaba cuatro modos de operación llamados cifrado de bloques , cada uno de los cuales describía una solución diferente para cifrar un conjunto de bloques de entrada. El primer modo implementa la estrategia simple descrita anteriormente y se especificó como modo de libro de códigos electrónico (ECB). Por el contrario, cada uno de los otros modos describe un proceso en el que el texto cifrado de un paso de cifrado en bloque se mezcla con los datos del siguiente paso de cifrado. Para iniciar este proceso, se requiere mezclar un valor de entrada adicional con el primer bloque, y al que se hace referencia como vector de inicialización . Por ejemplo, el modo de encadenamiento de bloques de cifrado (CBC) requiere un valor impredecible, de tamaño igual al tamaño del bloque de cifrado, como entrada adicional. Este valor impredecible se agrega al primer bloque de texto sin formato antes del cifrado posterior. A su vez, el texto cifrado producido en el primer paso de cifrado se agrega al segundo bloque de texto sin formato, y así sucesivamente. El objetivo final de los esquemas de cifrado es proporcionar seguridad semántica : gracias a esta propiedad, es prácticamente imposible que un atacante obtenga conocimiento del texto cifrado observado. Se puede demostrar que cada uno de los tres modos adicionales especificados por el NIST son semánticamente seguros bajo los llamados ataques de texto plano elegido .

Propiedades

Las propiedades de un IV dependen del esquema criptográfico utilizado. Un requisito básico es la unicidad , lo que significa que no se puede reutilizar ningún IV bajo la misma clave. Para los cifrados en bloque, los valores de IV repetidos devuelven el esquema de cifrado al modo de libro de códigos electrónico: un IV igual y un texto sin formato igual dan como resultado un texto cifrado igual. En el cifrado de flujo, la unicidad del cifrado es de vital importancia ya que, de lo contrario, el texto sin formato puede recuperarse trivialmente.

Ejemplo: los cifrados de flujo cifran el texto sin formato P en texto cifrado C derivando un flujo de clavesK a partir de una clave dada y IV y calculando C como C = P xor K. Supongamos que un atacante ha observado dos mensajes C 1 y C 2, ambos cifrados con la misma clave e IV. Entonces el conocimiento de P 1 o P 2 revela el otro texto claro ya que
C 1 xor C 2 = ( P 1 xor K ) xor ( P 2 xor K ) = P 1 xor P 2 .

Muchos esquemas requieren que el IV sea impredecible para un adversario . Esto se logra seleccionando el IV al azar o pseudoaleatoriamente . En tales esquemas, la posibilidad de una duplicación IV es insignificante , pero se debe considerar el efecto del problema del cumpleaños . En cuanto al requisito de unicidad, un IV predecible puede permitir la recuperación de texto plano (parcial).

Ejemplo: considere un escenario en el que una parte legítima llamada Alice cifra mensajes utilizando el modo de encadenamiento de bloques de cifrado. Considere además que hay un adversario llamado Eve que puede observar estos cifrados y puede reenviar mensajes de texto sin formato a Alice para su cifrado (en otras palabras, Eve es capaz de realizar un ataque de texto sin formato elegido ). Ahora supongamos que Alice ha enviado un mensaje que consta de un vector de inicialización IV 1 y que comienza con un bloque de texto cifrado C Alice . Sea además P Alice el primer bloque de texto sin formato del mensaje de Alice, E la encriptación y P Eve la suposición de Eve para el primer bloque de texto sin formato. Ahora, si Eve puede determinar el vector de inicialización IV 2 del siguiente mensaje, podrá probar su suposición reenviando un mensaje de texto sin formato a Alice que comience con ( IV 2 xor IV 1 xor P Eve );Alicecifrará este bloque de texto sin formato en C Alice . Esto se debe a la siguiente simple observación:
C Alice = E ( IV 1 xor P Alice ) = E ( IV 2 xor ( IV 2 xor IV 1 xor P Alice )). [6]

Dependiendo de si el IV de un esquema criptográfico debe ser aleatorio o solo único, el esquema se denomina aleatorio o con estado . Mientras que los esquemas aleatorios siempre requieren que el IV elegido por un remitente se envíe a los receptores, los esquemas con estado permiten que el remitente y el receptor compartan un estado de IV común, que se actualiza de forma predefinida en ambos lados.

cifrados de bloque

El procesamiento de datos mediante cifrado en bloque suele describirse como un modo de operación. Los modos se definen principalmente para el cifrado y la autenticación , aunque existen diseños más nuevos que combinan ambas soluciones de seguridad en los llamados modos de cifrado autenticado . Mientras que los modos de cifrado y cifrado autenticado generalmente toman un IV que coincide con el tamaño del bloque de cifrado, los modos de autenticación comúnmente se implementan como algoritmos deterministas y el IV se establece en cero o algún otro valor fijo.

cifrados de flujo

En los cifrados de flujo, los IV se cargan en el estado secreto interno con clave del cifrado, después de lo cual se ejecutan varias rondas de cifrado antes de liberar el primer bit de salida. Por razones de rendimiento, los diseñadores de cifrados de flujo intentan mantener ese número de rondas lo más pequeño posible, pero debido a que determinar el número mínimo seguro de rondas para los cifrados de flujo no es una tarea trivial, y considerando otras cuestiones como la pérdida de entropía , única para cada La construcción de cifrado, los IV relacionados y otros ataques relacionados con IV son un problema de seguridad conocido para los cifrados de flujo, lo que hace que la carga de IV en cifrados de flujo sea una preocupación seria y un tema de investigación continua.

WEP IV

El algoritmo de cifrado 802.11 llamado WEP (abreviatura de Wired Equivalent Privacy ) utilizaba un IV corto de 24 bits, lo que permitía reutilizar IV con la misma clave, lo que hacía que se pudiera descifrar fácilmente. [7] La ​​inyección de paquetes permitió descifrar WEP en tan solo unos segundos. En última instancia, esto llevó a la obsolescencia de WEP.

SSL 2.0IV

En el modo de encadenamiento de bloques de cifrado (modo CBC), el IV no necesita ser secreto, pero debe ser impredecible (en particular, para cualquier texto sin formato determinado, no debe ser posible predecir el IV que se asociará al texto sin formato antes de la generación del IV.) en el momento del cifrado. Además, para el modo de retroalimentación de salida (modo OFB), el IV debe ser único. [8] En particular, la práctica común (anteriormente) de reutilizar el último bloque de texto cifrado de un mensaje como IV para el siguiente mensaje es insegura (por ejemplo, este método fue utilizado por SSL 2.0). Si un atacante conoce el IV (o el bloque de texto cifrado anterior) antes de especificar el siguiente texto sin formato, puede verificar sus conjeturas sobre el texto sin formato de algún bloque que se cifró con la misma clave anteriormente. Esto se conoce como ataque TLS CBC IV, también llamado ataque BEAST . [9]

Ver también

Referencias

  1. ^ ISO/IEC 10116:2006 Tecnología de la información - Técnicas de seguridad - Modos de funcionamiento para un cifrado de bloques de n bits
  2. ^ Alex Biryukov (2005). "Algunas reflexiones sobre las compensaciones entre tiempo, memoria y datos". Archivo de impresión electrónica de la IACR .
  3. ^ Jin Hong; Palash Sarkar (2005). "Redescubrimiento de las compensaciones de la memoria del tiempo". Archivo de impresión electrónica de la IACR .
  4. ^ Biryukov, Alex; Mukhopadhyay, Sourav; Sarkar, Palash (2005). "Compensaciones mejoradas entre tiempo y memoria con múltiples datos". En Preneel, Bart; Tavares, Stafford E. (eds.). Áreas seleccionadas en criptografía, 12º taller internacional, SAC 2005, Kingston, ON, Canadá, 11 y 12 de agosto de 2005, artículos seleccionados revisados . Apuntes de conferencias sobre informática. vol. 3897. Saltador. págs. 110-127. doi : 10.1007/11693383_8 .
  5. ^ Christophe De Cannière; José Lano; Bart Preneel (2005). Comentarios sobre el redescubrimiento del algoritmo de compensación de tiempo/memoria/datos (PDF) (Reporte técnico). Proyecto de cifrado de flujo ECRYPT. 40.
  6. ^ CWE-329: No utilizar un IV aleatorio con el modo CBC
  7. ^ Borisov, Nikita ; Goldberg, Ian ; Wagner, David . "Interceptación de comunicaciones móviles: la inseguridad de 802.11" (PDF) . Consultado el 12 de septiembre de 2006 .
  8. ^ Morris Dworkin (2001), Recomendación del NIST para modos de operación de cifrado en bloque; Capítulos 6.2 y 6.4 (PDF)
  9. ^ B. Moeller (20 de mayo de 2004), Seguridad de CBC Ciphersuites en SSL/TLS: problemas y contramedidas

Lectura adicional