Sărarea unei parole este folosită doar pentru a preveni atacurile curcubeu
Nu este în întregime corect; Pentru unul, ați putea distinge cu ușurință parole identice dacă nu există sare (sau alte date) folosite pentru a distinge între cazuri de utilizare sau într-adevăr utilizatori.
Utilizarea unui număr mare de runde este folosită doar pentru a preveni forțarea brutală a parolelor scurte
Ei bine, da. Un hash normal este deja unidirecțional și aveți nevoie de sare pentru scopurile menționate mai sus. Deci, singurul motiv pentru a utiliza numărul de iterații sau factorul de lucru este ca atacatorul să efectueze și multe runde ale primitivei de bază.
Desigur, dacă lipsește sarea, numărul de iterații ar îngreuna și construirea unei mese curcubeu.
Dar dacă o parolă este generată de computer și folosită doar într-un mod automat între 2 sisteme de la distanță, este sigur să o sărați, dar să nu o trimiți cu mai multe runde?
Asta nu este o parolă, este un secret. Dacă l-ați folosi corect, s-ar putea să nu aveți nevoie nici măcar de sare, deși va trebui să aveți în vedere că secretul rămâne același în protocolul pentru care îl utilizați (de exemplu, pentru criptare ați avea nevoie de un IV sau nonce pentru asigurați-vă că rezultatul nu este determinist).
Ar fi suficientă folosirea unei parole extra lungi generate aleatoriu (cum ar fi o parolă de 256 de biți) pentru a evita necesitatea mai multor runde?
Nu există o parolă de 256 de biți. Parolele constau din text, nu binare. 256 de biți aleatori sunt obișnuiți pentru chei precum cheile AES-256 sau cheile utilizate pentru HMAC-256.
O parolă ar putea avea 256 de biți de entropie, răspândiți mulți personaje. Dar o astfel de parolă nu putea fi amintită de un om pentru operațiuni normale.De exemplu, dacă ați folosi ASCII cu toate caracterele speciale posibile (fără spațiu), atunci veți avea nevoie de o parolă complet aleatorie de 39 de caractere ($\log_{92}(2^{256})$ în cazul în care doriți să verificați acest lucru).
Și da, pentru o cheie secretă nu ai avea nevoie de numărul de iterații sau PBKDF in primul loc. Dacă aveți nevoie de sare sau nu depinde de modul în care o veți folosi. Nu veți avea nevoie de el pentru o singură utilizare. Dacă aveți nevoie de un KDF, atunci puteți utiliza un KDF bazat pe chei, cum ar fi HKDF.