He intentado diseñar un formato de archivo simple, que me permite agrupar un montón de archivos cifrados.
La idea que tengo actualmente es incrustar no la clave de cifrado sino un hash truncado de la clave de cifrado en el mensaje.
Supongo que tanto el remitente como el receptor ya han obtenido la clave de cifrado simétrica, pero necesito un método de comunicación que me permita identificar la clave y he estado considerando simplemente enviar un hash seguro truncado de la clave en sí. No estoy seguro de si esto realmente compromete la integridad del cifrado.
Específicamente, estoy usando SHA-1 y AES-128, me preocupa que este enfoque reduzca efectivamente la seguridad a una cuestión de brutal forzando todas las claves de 128 bits que producen una colisión SHA-1 y que esto simplemente Es trivial de hacer, ya que hace que el cifrado AES sea completamente inútil.
Mientras trunco el hash SHA-1, sigo filtrando 16 bytes del hash SHA-1 que corresponde a la clave simétrica utilizada. Así que hay ambigüedad allí, pero probablemente no sea suficiente.
Realmente me gustaría poder identificar qué clave de cifrado se usó para cifrar el mensaje de una manera segura sin tener que introducir algún tipo de secuencia de identificación o contabilidad externa, pero quizás esté tratando de resolver lo imposible aquí.
Cualquier entrada sobre este asunto es muy apreciada.