Quali approcci sono generalmente accettati per generare una chiave simmetrica protetta da password?
La mia intuizione è di generare e memorizzare una stringa casuale di lunghezza appropriata come chiave protetta da password, quindi HMAC con una password PBKDF2ed per ottenere la chiave simmetrica effettiva. Con questo approccio, il passaggio PBKDF2 è necessario o superfluo? Esiste un approccio migliore (ad esempio, XOR dei bit della chiave generata con i bit della chiave della password PBKDF2ed)?
Modifica: dopo aver reso questo post mi sono reso conto che ha più senso fare HMAC(key, password)
rispetto a HMAC(PBKDF2(password), key)
.
Aggiornamento: la risposta è PBKDF2(SHA256, password, key, iterations)
.