Ho bisogno di inviare messaggi cifrati autenticati usando una singola password. Riusare la stessa chiave (derivata) per il codice a blocchi e l'HMAC non è una buona pratica, lo so.
La mia idea iniziale è quella di ricavare due chiavi diverse dalla password per applicare uno schema encrypt-then-MAC:
Chiave1 = PBKDF2 (passwd, SALT1, ITERATIONS1)
Chiave2 = PBKDF2 (passwd, SALT2, ITERATIONS2)
Sia M il testo in chiaro, il messaggio inviato è:
AES-CTR Key1 (M) || HMAC-SHA256 Key2 (AES-CTR Chiave1 (M))
Sono anche allegati SALT1, SALT2, ITERATIONS1, ITERATIONS2 e IV (contatore).
Trovi qualche vulnerabilità in questo schema?
Mi sembra bello, ma mi piacerebbe sapere la tua opinione.
So che AES in modalità CCM (contatore con CBC-MAC) è un'alternativa.