Nella documentazione ufficiale dello standard PKCS5 V2.0, possiamo leggere "Il sale può essere visto come un indice in un ampio set di chiavi derivate dalla password e non deve essere tenuto segreto."
La parte "non deve essere tenuta segreta" è interessante.
Poiché il sale viene utilizzato per aggiungere una vasta gamma di possibilità di password (o per creare due chiavi diverse se due utenti hanno la stessa password), qual è lo scopo di lasciare il sale insicuro?
Capisco che in genere un utente malintenzionato non abbia accesso al sale, quindi complicherà il suo lavoro per trovare la password corretta. Ma se un attaccante conosce il sale, dov'è la "magia"? Conoscere il sale è come eseguire un attacco di dizionario tradizionale (se escludiamo il conteggio delle iterazioni)!
C'è qualcosa che non capisco? So che conoscere il sale non infrange la sicurezza, ma dire che "non deve essere tenuto segreto" mi sembra strano.