În primul rând, coliziunile hash criptografice nu sunt găsite prin căutare sau întâmplător. Ele sunt calculate deoarece - dintr-un motiv oarecare - algoritmul hash este rupt. Încă ar trebui să creați despre $2^{128}$ la urma urmei, pentru a găsi o coliziune, chiar dacă luați ziua de naștere legată - și amintiți-vă că ar trebui să efectuați și o comparație, deși există trucuri pentru a accelera acest lucru.
În schimb, echipa care efectuează analiza va găsi un punct slab și îl va exploata, necesitând uneori multe resurse. Aceasta înseamnă, de asemenea, că, dacă creați o coliziune, probabil că veți putea crea mai multe coliziuni folosind aceeași metodologie.
Dacă o cantitate relativ mică de stări interne este afectată, atunci aceasta Mai fi posibil să se repare hash - SHA-1 întărit, de exemplu, este protejat împotriva atacului SHAttered. Desigur, acum că SHA-1 se dovedește a fi slab, există o mulțime de motive pentru a migra spre, de ex. SHA-256 oricum și nu am văzut o absorbție în SHA-1 întărit nicăieri.
Chiar dacă aveți doar două intrări care generează aceeași valoare hash, este posibil să aveți probleme. Hashurile operează intern bloc cu bloc. Dacă este posibil să găsiți o coliziune, atunci blocurile următoare vor fi și ele vulnerabile. Cu alte cuvinte, dacă găsești $H'(B_1) = H'(B_2)$ atunci $H'(B_1 \| E) = H'(B_2 \| E)$ Unde $\|$ este concatenare. Rețineți că extensia $E$ poate conține orice date. Deci, în acest sens: dacă găsiți o coliziune pentru SHA-256, atunci ați găsit multe coliziuni de mesaje care încep cu un anumit bloc sau blocuri de date.
Pentru SHA-3 situația este puțin mai complexă (depinde dacă starea internă - adică capacitatea buretelui folosit - este identică înainte sau după operațiunea finală), dar practic ați avea totuși probleme.
Dacă acest tip de coliziuni sunt aplicabile protocolului dvs. este o altă întrebare. Schemele precum HMAC care se bazează pe o funcție hash nu sunt deloc afectate, deoarece nu necesită rezistență la coliziune din partea funcției hash configurată.