¿Es posible falsificar datos encriptados AES?

0

El requisito es que deseamos generar un montón de claves, y necesitamos una forma de validar si esta clave la generamos nosotros. Mi sugerencia es generar un UUID, hacer que un HMAC use una clave secreta en el UUID, entonces el resultado de UUID + HMAC debería ser la clave. El problema aquí es que UUID + HMAC es demasiado largo, por lo que podemos usar solo una parte de ellos como clave.

Mientras tanto, mi colega sugiere que otra forma es generar un UUID, hacer un AES en él, usar los datos cifrados como una clave, piensa que los datos cifrados no pueden ser falsificados, pero me temo que no es una forma segura . Como no hacemos ninguna otra validación aquí.

Entonces, la pregunta es: ¿es posible falsificar datos encriptados AES, que pueden ser descifrados por una clave secreta dada? Si no es posible falsificar datos encriptados AES, ¿cuál deberíamos usar? HMAC o AES?

Se debe considerar el rendimiento, ya que tenemos alrededor de mil millones de solicitudes para gestionar todos los días.

    
pregunta Xilang 15.08.2016 - 04:29
fuente

1 respuesta

1
  

Entonces la pregunta es: ¿es posible falsificar datos encriptados AES, que   ¿Se puede descifrar con una clave secreta dada?

Si no se agrega autenticación a los datos, entonces sí, fácilmente. Los cifrados de bloque son en realidad solo permutaciones de todos los posibles bloques de texto plano a todos los posibles bloques de texto cifrado. O, en otras palabras, cualquier bloque de datos de 128 bits es un texto cifrado válido para algunos texto sin formato, para cualquier clave de cifrado.

Sin embargo, si requerimos que los bloques de texto plano válidos tengan alguna estructura, como trivialmente requiere que los últimos 64 bits sean ceros, con los datos en los otros 64 bits, entonces solo 1/2 ^ 64 bloques de texto cifrado producirán una " Texto sin formato. Pero eso solo funciona para los mensajes de un bloque, y es más difícil de hacer con los mensajes de varios bloques, por lo que uno podría usar algo diseñado para la autenticación.

  

El requisito es que deseamos generar un montón de claves, y necesitamos una forma > para validar si esta clave es generada por nosotros.

Esto no suena como algo que requeriría cifrado (asegurándose de que terceros no puedan leerlo), sino autenticación (asegurándose de que terceros no puedan falsificarlo). Algunos códigos de autenticación de mensajes parecen estar en orden (ya sea HMAC con alguna función hash, CMAC si prefiere AES). Tenga en cuenta que no es necesario utilizar la etiqueta de autenticación completa producida por el MAC. En su lugar, puede truncarlo para intercambiar algo de seguridad por una longitud más corta.

    
respondido por el ilkkachu 21.08.2016 - 13:50
fuente

Lea otras preguntas en las etiquetas