Înțeleg că MD5 este încă rezistent la atacurile preimagine în general caz, dar că un atacator poate lansa încă un al doilea atac înainte de imagine dacă un dosar nevinovat este suficient de „ghinionist” pentru a fi un candidat viabil la coliziune.
- Care sunt șansele unui fișier uniform aleatoriu de lungime 512n$ bits fiind un candidat pentru un atac de coliziune MD5?
- Este posibil să detectăm candidatura actuală la atac de ultimă generație de la doar $H(m)$, sau ar trebui să am acces la $m$ a spune?
Am fost inspirat de această întrebare când am citit-o Github menține SHA-1 să funcționeze în serviciile de producție destinate publicului în ciuda existenței demonstrate a atacurilor de coliziune:
Recentul atac folosește tehnici speciale pentru a exploata punctele slabe ale algoritmului SHA-1 care găsesc o coliziune în mult mai puțin [decat $2^{160}$] timp. Aceste tehnici lasă un model în octeți care poate fi detectat atunci când se calculează SHA-1 a oricărei jumătăți a unei perechi de ciocnire.
GitHub.com efectuează acum această detectare pentru fiecare SHA-1 pe care îl calculează și anulează operația dacă există dovezi că obiectul este jumătate dintr-o pereche care se ciocnește. Acest lucru îi împiedică pe atacatori să folosească GitHub pentru a convinge un proiect să accepte jumătatea „inocentă” a coliziunii lor, precum și să îi împiedice să găzduiască jumătatea rău intenționată.
Posibilitatea unor rezultate false pozitive poate fi neglijată deoarece probabilitatea este mai mică decât $2^{-90}$.
„Când se calculează” sugerează (pe lângă analiza mea de amatori a Codul) acea $m$ este necesare pentru a detecta atacul SHAttered, dar nu sunt clar dacă coliziunile MD5 au aceleași cerințe de detectare sau dacă ar putea fi prezis numai din rezumat.