stringtranslate.com

Ataques de cifrado de flujo

Los cifrados de flujo , en los que los bits de texto simple se combinan con un flujo de bits de cifrado mediante una operación exclusiva o ( xor ), pueden ser muy seguros si se utilizan correctamente. [ cita requerida ] Sin embargo, son vulnerables a ataques si no se siguen ciertas precauciones:

Ataque de clave reutilizada

Los cifrados de flujo son vulnerables a ataques si se utiliza la misma clave dos veces (profundidad de dos) o más.

Digamos que enviamos mensajes A y B de la misma longitud, ambos cifrados con la misma clave, K. El cifrado de flujo produce una cadena de bits C(K) de la misma longitud que los mensajes. Las versiones cifradas de los mensajes son:

E(A) = A x o C
E(B) = B x o C

donde xor se realiza bit a bit.

Supongamos que un adversario ha interceptado E(A) y E(B) . Puede calcular fácilmente:

E(A) o E(B)

Sin embargo, xor es conmutativo y tiene la propiedad de que X xor X = 0 (autoinverso) entonces:

E(A) x o E(B) = (A x o C) x o (B x o C) = A x o B x o C x o C = A x o B

Si un mensaje es más largo que el otro, nuestro adversario simplemente trunca el mensaje más largo al tamaño del más corto y su ataque solo revelará esa parte del mensaje más largo. En otras palabras, si alguien intercepta dos mensajes cifrados con la misma clave, puede recuperar A xor B , que es una forma de cifrado de clave corriente . Incluso si no se conoce ninguno de los mensajes, siempre que ambos mensajes estén en un lenguaje natural, un cifrado de este tipo a menudo se puede descifrar con métodos de papel y lápiz. Durante la Segunda Guerra Mundial , el criptoanalista británico John Tiltman logró esto con el cifrado de Lorenz (apodado "Tunny"). Con una computadora personal promedio , estos cifrados generalmente se pueden descifrar en cuestión de minutos. Si se conoce un mensaje, la solución es trivial.

Otra situación en la que la recuperación es trivial es cuando las medidas de seguridad del flujo de tráfico hacen que cada estación envíe un flujo continuo de bits cifrados, y que se envíen caracteres nulos (por ejemplo, LTRS en Baudot ) cuando no hay tráfico real. Esto es común en las comunicaciones militares. En ese caso, y si el canal de transmisión no está completamente cargado, existe una buena probabilidad de que uno de los flujos de texto cifrado sea simplemente nulo. La NSA hace todo lo posible para evitar que las claves se utilicen dos veces. Los sistemas de cifrado de la década de 1960 a menudo incluían un lector de tarjetas perforadas para cargar las claves. El mecanismo cortaba automáticamente la tarjeta por la mitad cuando se retiraba, lo que impedía su reutilización. [1] : p. 6 

Una forma de evitar este problema es utilizar un vector de inicialización (IV), enviado sin cifrar, que se combina con una clave maestra secreta para crear una clave de un solo uso para el cifrado de flujo. Esto se hace en varios sistemas comunes que utilizan el popular cifrado de flujo RC4 , incluidos Wired Equivalent Privacy (WEP), Wi-Fi Protected Access (WPA) y Ciphersaber . Uno de los muchos problemas con WEP era que su IV era demasiado corto, 24 bits. Esto significaba que había una alta probabilidad de que el mismo IV se usara dos veces si se enviaban más de unos pocos miles de paquetes con la misma clave maestra (ver ataque de cumpleaños ), sometiendo los paquetes con IV duplicados al ataque de reutilización de clave. Este problema se solucionó en WPA cambiando la clave "maestra" con frecuencia.

Ataque de inversión de bits

Supongamos que un adversario conoce el contenido exacto de todo o parte de uno de nuestros mensajes. Como parte de un ataque de intermediario o de un ataque de repetición , puede alterar el contenido del mensaje sin conocer la clave, K. Digamos, por ejemplo, que sabe que una parte del mensaje, por ejemplo una transferencia electrónica de fondos, contiene la cadena ASCII "$1000.00" . Puede cambiarla por "$9500.00" mediante la operación XOR de esa parte del texto cifrado con la cadena: "$1000.00" xor "$9500.00" . Para ver cómo funciona esto, considere que el texto cifrado que enviamos es simplemente C(K) xor "$1000.00" . El nuevo mensaje que está creando el adversario es:

(C(K) x o "$1000,00") x o ("$1000,00" x o "$9500,00") = C(K) x o "$1000,00" x o "$1000,00" x o "$9500,00" = C(K) x o "$9500,00"

Recuerde que una cadena que se realiza mediante la operación XOR con ella misma produce todos los ceros y que una cadena de ceros que se realiza mediante la operación XOR con otra cadena deja esa cadena intacta. El resultado, C(K) xor "$9500.00", es lo que hubiera sido nuestro texto cifrado si $9500 fuera la cantidad correcta.

Los ataques de inversión de bits se pueden prevenir incluyendo un código de autenticación de mensajes para aumentar la probabilidad de que se detecte la manipulación.

Ataque del Elegido IV

Los cifrados de flujo combinan una clave secreta con un vector de inicialización acordado (IV) para producir una secuencia pseudoaleatoria que se vuelve a sincronizar de vez en cuando. [2] Un ataque de "IV elegido" se basa en encontrar IV particulares que, tomados en conjunto, probablemente revelen información sobre la clave secreta. Normalmente, se eligen varios pares de IV y luego se analizan estadísticamente las diferencias en los flujos de claves generados para determinar una correlación lineal o una relación booleana algebraica (véase también Criptoanálisis diferencial ). Si la elección de valores particulares del vector de inicialización expone un patrón no aleatorio en la secuencia generada, entonces este ataque calcula algunos bits y, por lo tanto, acorta la longitud efectiva de la clave. Un síntoma del ataque sería la resincronización frecuente. Los cifrados de flujo modernos incluyen pasos para mezclar adecuadamente la clave secreta con un vector de inicialización, generalmente realizando muchas rondas iniciales.

Referencias

  1. ^ Protección de las comunicaciones registradas: el TSEC/KW-26 Archivado el 10 de octubre de 2012 en Wayback Machine , Melville Klein, serie sobre la historia de la NSA
  2. ^ Englund, Hakan; Johansson, Thomas; Sonmez Turan, Meltem (2007). "Un marco para el análisis estadístico IV de cifrados de flujo". Progreso en criptología – INDOCRYPT 2007 (PDF) . Apuntes de clase en informática. Vol. 4859 (INDOCRYPT / volumen 4859 de la edición LNCS). Springer. págs. 268–281. doi :10.1007/978-3-540-77026-8_20. ISBN 978-3-540-77025-1. S2CID  18097959. Archivado desde el original (PDF) el 1 de octubre de 2018. Consultado el 1 de octubre de 2018 .

Enlaces externos