Citat:
ako neko nekada nekako naiđe na neki drugi string koji ima isti MD5 digest kao i "avram" - d2c9a4ff7be5c09b55a429dd8fc96627, da li će i SHA1 digest tog stringa biti 266d35d8888b25c40374ab38c34637a9168be6b0 ili ne?
U principu NE (teoretski je moguce).
Citat:
Da li je sigurnije proveravati i MD5 i SHA1 digest od nekog stringa ili je to isto kao da proveravamo samo jedan od ova dva digesta?
Sigurnije je proveriti oba digesta.
Objasnjenje:
Hes algoritam je preslikavanje vise u jedan. To znaci da se beskonacan skup poruka preslikava u jednu hes vrednost.
Kada se naidje na poruku koja daje istu hes vrednost kao neka druga, ta pojava se naziva
kolizija.
Osobina dobre hes funkcije je da sto redje nailazi na kolizije. SHA 1 se smatra jacim hes algoritmom od MD5 posto je
160 bita dok je MD5 128 bita. Sama ta cinjenica pokazuje da SHA 1 redje nailazi na kolizije tj. da je ucestalost kolizija
kod SHA 1 manja. Stoga, vrlo tesko ce se desiti da se kolizija pogodi za oba slucaja izracunavanja hes vrednosti
(teoretski je moguce jer se radi o preslikavanju
beskonacnog skupa poruka).
Iako je izracunavanje SHA 1 i MD5 algoritamski veoma slicno, zbog kruznog pomeranja i XORovanja bitovi se totalno poremete :-)
Pozdrav,
Veselin