¿Es AES vulnerable si los textos sin formato comparten un formato conocido?

2

El cifrado AES, si se realiza correctamente (modo seguro; IV aleatorios para cada texto; ...) se considera seguro. ¿Cambia esto si los textos sin formato tienen formatos conocidos?

Por ejemplo, digamos que ciframos cadenas JSON que se ajustan a un esquema público. Es decir, todas las cadenas de entrada comienzan de la misma manera, por ejemplo,

{
    resourceId: <number>,
    ...
}

¿Esto es un problema per se? ¿Se convierte en un problema si el prefijo compartido es largo, en particular más largo que un bloque AES?

Eso sería 16 bytes en el caso de Common Crypto, que no es mucho; ¡El ejemplo anterior tiene (al menos) 15 bytes de prefijo compartido incluso asumiendo la codificación ASCII!

    
pregunta Raphael 26.06.2017 - 11:15
fuente

1 respuesta

3

Cualquier método moderno de encriptación es seguro contra ataques de texto plano conocido e incluso ataques de texto simple elegido. Lo único que está expuesto por un texto cifrado es su longitud (aproximada). La noción matemática detrás de esto es indistiguable bajo ataques de texto sin formato elegido (IND-CPA para abreviar); lo que esto significa en pocas palabras es que si un adversario elige dos colores de igual longitud y recibe el cifrado de uno de ellos, el adversario no puede saber cuál fue el cifrado. Los dos colores planos pueden tener un prefijo común, pueden diferir en tan solo un bit. Los algoritmos criptográficos de la era de la computadora generalmente están diseñados para ser robustos en términos de los datos que pueden procesar; las entradas pueden ser cualquier conjunto de cadenas de bytes (hasta un límite de longitud muy grande).

Esto supone que el cifrado se realiza correctamente, en particular con un modo válido (como CTR o CBC, nunca EBC) y la selección IV correcta (aleatoria cada vez que se encripta un mensaje siempre está bien).

Tenga en cuenta que IND-CPA no es la historia completa. Algunos ataques pueden ser posibles cuando el adversario envía los textos cifrados elegidos (que pueden ser o no válidos) a la parte con la clave secreta. Un adversario puede obtener información al enviar variaciones de un texto cifrado (incluso si no saben a qué se desencripta), descifrarlos y observar las consecuencias (incluso si no tienen acceso a la salida desencriptada, pueden ser capaces de observar cuánto tiempo lleva, si provoca ciertos errores, etc.). Muchos sistemas basados en la criptografía en realidad requieren indistinguibilidad bajo ataques de texto cifrado con elección adaptativa (IND-CCA2). La protección contra ataques de texto cifrado elegidos requiere autenticación.

La mejor manera de autenticar los datos, que protege contra los ataques de texto cifrado seleccionados, es utilizar el modo de cifrado autenticado . Consulte ¿Por qué debo usar Authenticated ¿Cifrado en lugar de solo cifrado? para una explicación más detallada. Los más populares incluyen GCM , CCM , OCB y EAX , CWC . Cualquiera de estos cinco es tan seguro como se obtiene; vea Elección del modo de cifrado autenticado para mensajes completos para Otras consideraciones como el rendimiento. Si tiene que usar una biblioteca que no proporciona modos AEAD, puede combinar un MAC con CBC o CTR, pero hacerlo bien es complicado ; en 2017, creo que si su biblioteca no proporciona modos AEAD, debería obtener una biblioteca más actualizada.

    
respondido por el Gilles 26.06.2017 - 14:18
fuente

Lea otras preguntas en las etiquetas