¿Seguridad de AES contra un ataque de texto simple conocido si no se usa IV?

3

Comprendo la declaración de que "AES no es actualmente vulnerable a un ataque de texto simple conocido" pero asumo que hay un usuario implícito en esa declaración que debe leerse "cuando se usa de manera apropiada el modo AES no es actualmente vulnerable a un ataque de texto plano conocido ".

Nota: actualmente no hacemos esto y solo estoy tratando de construir un argumento (si es válido) para mostrar por qué continuaremos sin hacer esto ...

Si tenemos una base de datos que almacena cadenas cortas (menos de 256 bits). Cada entrada de texto sin formato debe tener el mismo cifrado: esto excluye el uso de nonces o IVs y cualquier encadenamiento que use varios bloques distintos de los dos necesarios para almacenar la cadena.

Suponemos que un atacante puede determinar el texto sin formato original para cualquier texto de cifrado dado (por razones a las que no voy a entrar, pero parece una buena práctica).

En este caso, donde hemos eliminado algunas de las entradas adicionales y solo nos queda la clave, el texto en claro conocido y el texto con cifrado conocido: ¿por qué AES sigue siendo seguro? ¿Qué es lo que me falta para entender que significa que el algoritmo no se puede revertir?

EDITAR: la respuesta de John Deters deja muy claro que si el sistema está disponible para el atacante, puede "pescar" los pares de cifrado de texto sin formato. Pero voy a suponer que notaremos dicha actividad (es decir, el uso de los registros del sistema y esto no puede ser subvertido, puede ser una suposición insegura pero por el momento me siento cómodo ya que quiero concentrarme en áreas fuera de mi control) .

Entonces, reformularía la pregunta: supongamos que hemos entregado / perdido algunos de los valores de cifrado a una parte externa que no tiene acceso al sistema en sí. Suponga que el tercero puede adivinar uno o más de los valores de texto sin formato y asociarlos con sus cifrados.

¿Están (y si es así, por qué) el resto de los cifrados todavía están seguros? ¿Por qué no se puede calcular la clave y descifrar el resto de los cifrados? ¿Es necesario determinar toda la clave?

    
pregunta user2195559 29.09.2016 - 15:13
fuente

1 respuesta

5

Ha descrito un sistema de libro de códigos electrónicos (ECB), que es inherentemente vulnerable independientemente del cifrado Algoritmo utilizado para cifrar los datos. Con un sistema ECB, a un atacante no le importa qué algoritmo criptográfico se use, simplemente pasa el texto simple al sistema, luego compara los resultados del texto cifrado con el resto de los datos ya cifrados, buscando una coincidencia. Es irrelevante si el sistema cifra los datos con AES, DES, usa un hash SHA-256, o incluso usa el texto plano como una clave para buscar un número aleatorio de una base de datos.

Por el contrario, eso significa que este tipo de ataque no revela prácticamente ninguna información sobre el cifrado utilizado. Por lo tanto, no está revelando ninguna información que pueda utilizarse para recuperar la clave.

EDITAR:

Según sus comentarios a continuación, está interesado en lo que se llama " Ataque de texto cifrado adaptado ", que es donde el atacante puede obtener el texto sin formato para cualquier mensaje de cifrado deseado, y usarlo para intentar recuperar información sobre la clave, y luego solicitar información adicional basada en lo que se aprendió de las iteraciones anteriores. Este es el "más poderoso" de la familia de ataques a algoritmos criptográficos. Los algoritmos de cifrado están diseñados específicamente para resistir los tipos exactos de ataque que estás describiendo.

Tener una prueba matemática de que un algoritmo es seguro contra esto es pasar una "prueba de indistinguibilidad". Dados dos mensajes de texto cifrado y un mensaje de texto simple, y el conocimiento de que el texto simple se cifró para crear uno de los dos mensajes, el atacante no debe poder hacer nada mejor que hacer una conjetura 50/50 sobre qué mensaje cifrado está asociado con el texto simple. . A pesar de más de 20 años de intensa investigación por legiones de criptógrafos y matemáticos muy respetados, nadie ha demostrado la capacidad de atacar AES-256 (o incluso AES-128) de esta manera.

Muchos sistemas criptográficos que usan AES se han roto, por supuesto, pero se deben a otros factores: debilidad en los diseños de protocolo (el ataque de POODLE, el ataque de BESTIA, etc.); debilidades en las implementaciones de protocolo (los ataques del corazón, ataques de sincronización de caché, etc.) y debilidades en las implementaciones que conducen a ataques de canal lateral (los ataques de sincronización de Bouncy Castle, análisis de poder diferencial, etc.)

La fuerza de AES (y la mayoría de los cifrados en bloque) proviene de alternar el texto sin formato a través de "rondas" de cifrado. Cada ronda es donde los bits de texto sin formato se mezclan de forma diferente según los bits de la clave. Estos datos codificados se devuelven al algoritmo de cifrado una y otra vez. Después de 10, 12 o 16 rondas de aleatorización, la salida codificada se considera encriptada hasta el punto en que cada bit individual es indistinguible de los datos aleatorios.

Una forma diferente de pensar es mirar un tablero de ajedrez después de jugar un juego. ¿El estado final le dice exactamente cada movimiento que se utilizó para llegar allí? Para un principiante, no, pero un experto en ajedrez probablemente podría resolverlo. Así que tomas ese tablero de ajedrez mezclado, dejas todas las piezas aún en él, agregas más piezas y juegas otro juego por encima del anterior; Mezclando todas las piezas una y otra vez, y repite 9 veces más. Incluso un gran maestro de ajedrez no puede desenrollar el estado final del tablero después de todos esos juegos mezclados.

Se ha realizado mucha investigación utilizando ataques de "rondas reducidas" en el algoritmo, donde debilitan deliberadamente AES reduciendo el número de bucles hasta el punto en el que pueden identificar los bits de la clave. Por ejemplo, AES-128 normalmente itera durante 10 rondas, pero en lugar de eso, puede iterar solo 8 veces, y luego aprender lo suficiente sobre la clave para poder superar la prueba de indistinguibilidad. Pero nadie ha podido desenrollar el algoritmo completo de tal manera que hayan aprendido algo acerca de las claves.

    
respondido por el John Deters 29.09.2016 - 15:44
fuente

Lea otras preguntas en las etiquetas