Necesito enviar mensajes cifrados autenticados usando una sola contraseña. Reutilizar la misma clave (derivada) para el cifrado de bloque y el HMAC no es una buena práctica, lo sé.
Mi idea inicial es derivar dos claves diferentes de la contraseña para aplicar un esquema de cifrado y luego MAC:
Key1 = PBKDF2 (passwd, SALT1, ITERATIONS1)
Key2 = PBKDF2 (passwd, SALT2, ITERATIONS2)
Deje que M sea el texto simple, el mensaje enviado es:
AES-CTR Key1 (M) || HMAC-SHA256 Key2 (AES-CTR Key1 (M))
SALT1, SALT2, ITERATIONS1, ITERATIONS2 y el IV (contador) también se adjuntan.
¿Encuentra alguna vulnerabilidad en este esquema?
Me parece bien, pero me gustaría saber tu opinión.
Sé que AES en modo CCM (contador con CBC-MAC) es una alternativa.