¿Por qué es necesario minimizar la redundancia en el texto cifrado de un cifrado de flujo?

0

Estoy completamente confundido acerca de esto. Entiendo por qué querría minimizar la redundancia si está utilizando un cifrado de sustitución, pero ¿por qué es necesario cuando se utiliza un cifrado de flujo como RC4? Dado que el atacante no tiene la clave, ¿cómo sacarán conclusiones acerca del contenido del texto plano en función de las frecuencias relativas de los bytes en el texto cifrado? Por ejemplo, se encontró que RC4 tiene una debilidad en que cero bytes son más frecuentes. Pero un byte cero puede corresponder potencialmente a cualquier byte en el texto plano, ya que estás XOR en cada byte del texto plano con un valor diferente. Entonces, ¿cómo sería explotado? Espero que esta pregunta tenga sentido.

    
pregunta Legend of Overfiend 06.03.2017 - 18:44
fuente

3 respuestas

3

El principal problema con el error que está describiendo es que 0 aparece con más frecuencia en ciertos bits del flujo de salida. El ataque más común es que un atacante puede hacer que una víctima cree millones de conexiones a un servidor, mientras observa el tráfico de la red.

Para dar un ejemplo, cambiemos 'bit' a 'byte', aumente las posibilidades y veamos qué sucede.

Digamos:

  • Tengo una cookie secreta con el valor 'a';
  • Tengo algunos códigos de secuencia de kick-ass que generan bytes aleatorios;
  • un atacante puede obligarme a realizar millones de conexiones a un servidor;
  • en cada solicitud, el primer carácter de mi texto sin formato es mi cookie ('a') seguida de algún otro texto sin formato;
  • el cifrado es un xor de texto plano con los bytes generados a partir del flujo (como con RC4);
  • ese atacante puede monitorear el tráfico de mi red.

Con cada nueva conexión que establezco al servidor, se genera una nueva secuencia aleatoria. Esto significa que mi cookie ('a') será xorada con un byte aleatorio cada vez. Debido a que esto sucede de manera uniforme y aleatoria, nuestro atacante no puede deducir información acerca de la cookie, ya que la probabilidad de 'a' x cualquier carácter es 1/256.

Ahora introduzcamos una falla en nuestro cifrado de flujo. Para el primer byte, tiene una tendencia a generar 'b' con un 10% de probabilidad, y tiene un 90% de probabilidad de generar cualquier otro carácter. Ahora, si el atacante me hace crear 10 conexiones al servidor, existe una probabilidad de 1/10 de que 'b' xor 'a' aparezca como el primer byte del texto cifrado, en lugar del 1/256 anterior. Entonces, después de 100 conexiones, 'b' xor 'a' debería haber aparecido unas 10 veces, etc. etc.

Tenga en cuenta que también hay otros tipos de ataques en RC4. El resumen de los ataques en Wikipedia es realmente muy bueno:

enlace

    
respondido por el Graa 05.07.2017 - 12:53
fuente
1

La razón principal para eliminar la redundancia de la secuencia de texto simple es que el texto claro se puede comprimir, pero el texto cypher no. Si está buscando reducir el tamaño de los datos, esa es su única opción.

Una razón de seguridad para eliminar la redundancia sería si está usando un bloque de cifrado en el modo Libro de códigos electrónicos . Los datos redundantes son visibles como bloques de texto cifrado duplicados. Sin embargo, el mejor enfoque es no utilizar el BCE, ya que es inherentemente vulnerable.

Criptográficamente, la redundancia entre mensajes ha llevado a "cunas". Si el criptoanalista ve mensajes que sospecha que todos comienzan con "Buenos días, Sr. Phelps", puede usar eso para ayudar a descifrar los mensajes. Así es como se utilizaron los Bombes de Turing para interrumpir el tráfico de Enigma alemán en la Segunda Guerra Mundial.

Sin embargo, la eliminación de la redundancia en un solo mensaje (al comprimir el texto claro) ha dado lugar a algunos ataques novedosos. El hazaña de seguridad CRIME usó diferencias en los tamaños de compresión para recuperar bytes de texto plano.

    
respondido por el John Deters 06.03.2017 - 19:13
fuente
0

Creo que es necesario diferenciar entre los pads de tiempo, donde la redundancia realmente no importa porque nunca se puede detectar, y los cifrados de flujo convencionales donde la redundancia en el texto plano puede conducir a patrones detectables en el texto cifrado si el cifrado de flujo tiene debilidades

Un ejemplo muy simple sería un cifrado de flujo que tiene un período muy corto (más corto que el texto sin cifrar para cifrar). Luego, las redundancias en el texto simple se mostrarían en el texto cifrado.

Las redundancias en el texto cifrado a menudo te dicen algo sobre el texto plano, o al menos algo sobre su estructura y qué parte del mismo estás viendo.

    
respondido por el Pascal 06.03.2017 - 21:45
fuente

Lea otras preguntas en las etiquetas