Credo che in questo contesto yoroshiku possa essere reso come la speranza di una presenza lunga e produttiva su Security.StackExchange :-). Quindi, benvenuto!
Sei parzialmente corretto nella comprensione del problema di collisione; il rischio esiste, ma se l'algoritmo ha un output abbastanza "piatto", il rischio è essenzialmente lo stesso indipendentemente dal numero di round.
La "sicurezza" che viene incrementata incrementando il numero di round è la certezza che chiunque tenti di generare un numero elevato di hash (ad esempio per un attacco di forza bruta) richiederà una quantità di potenza di calcolo sufficientemente improbabile.
Diciamo che SHA-512 con 10.000 round costa dieci volte quello che SHA-512 costa 1000 round. Quindi, l'enumerazione degli hash round 10K per qualsiasi scopo richiederà dieci volte più tempo rispetto agli hash round 1K.
Di solito, nella maggior parte delle applicazioni lo "scenario happy day" coinvolge solo la chiamata one alla funzione hash (ad es. si sta eseguendo l'hashing della password fornita dall'utente). Pertanto, possiamo utilizzare un numero alto arrotondato e consentire comunque all'utente di sperimentare un ritardo trascurabile.
The way i see, you can both cause a collision with too long plain texts or with too many applications of the same hashing function
Sì, ma stai solo confrontando le chiamate con lo stesso numero di round . Diciamo che per esempio l'hash round di 10K di "foo" è abcdef, e l'hash round di 1K di "bar" è troppo abcdef. Questa è una specie di collisione.
Ma quando viene eseguito il sistema, non utilizzerà il risultato dell'hash ad ogni round; aspetterà fino a quando non avrà completato il round 10K prima di restituire l'hash. non saprà mai che è stata generata una "collisione" al round 1.000.