Gli hash MD5 e SHA-1 hanno punti deboli contro gli attacchi di collisione. SHA256 non fa ma emette 256 bit. Posso prendere tranquillamente il primo o l'ultimo 128 bit e usarlo come hash? So che sarà più debole (perché ha meno bit) ma funzionerà altrimenti?Va bene troncare un hash SHA256 a 128 bit?
In pratica, desidero utilizzarlo per identificare in modo univoco i file in un file system che potrebbe un giorno contenere un trilione di file. Sono a conoscenza del problema del compleanno e un hash a 128 bit dovrebbe produrre circa 1 su una trilione di possibilità su un trilione di file che ci sarebbero due file diversi con lo stesso hash. Posso vivere con quelle probabilità.
Quello con cui non posso convivere è se qualcuno possa facilmente, deliberatamente, inserire un nuovo file con lo stesso hash e gli stessi caratteri iniziali del file. Credo in MD5 e SHA1 questo è possibile.
Avevo pensato che il paradosso del compleanno avrebbe dato meno probabilità di quello, ma Wikipedia è d'accordo con te: http: //en.wikipedia.org/wiki/Birthday_paradox # Probability_table –
Domanda correlata: http://stackoverflow.com/questions/2256423/truncating-an-md5-hash-how-do-i-calculate-the-odds-of-a-collection-occuring – Shadok
Vedi anche: http://security.stackexchange.com/questions/18385/does-truncating-the-cryptographic-hash-make-it-impossible-to-crack – Luc