Știrea că cercetătorii Google șiCWI Amsterdam au reușit să spargă algoritmul SHA1 a făcut valuri în comunitatea cripto. Se pare că aceștia au reușit să genereze o coliziune hash pentru două documente diferite care folosesc SHA1, ceea ce înseamnă că algoritml este compromis, după standarde criptografice.

Ce înseamnă asta mai pe românește și care sunt implicațiile pentru rețeaua bitcoin?

Coliziunea hash

Așa cum explicam într-un articol precedent, o funcție hash (SHA1 este un exemplu de funcție hash) este folosită pentru a lua date de orice dimensiune, pe care le procesează și le redă sub altă formulă – un digest hash – de lungime fixă.

Funcțiile hash se folosesc în procesare pentru a verifica dacă conținutul unor fișiere este identic. Atâta timp cât funcția hash este sigură, atunci cele două fișiere cu valoare hash identică sunt și ele identice.

Cu toate acestea, o coliziune hash apare atunci când două hash-uri de la fișiere diferite au exact aceeași valoare.

Ținând cont de legile matematice care guvernează funcțiile hash, este inevitabil ca o coliziune hash să apară pentru unele valori de date (pentru că datele pe care le introduci în funcția sha sunt practic infinite, în timp ce lungimea digestului este fixă).

Pentru o funcție hash sigură, probabilitatea este atât de mică încât, în practică, este imposibil să faci suficiente calcule pentru a o găsi.

Rezultatele echipei Google/CWI sunt importante pentru că au reușit să creeze o coliziune hash printr-o metodă de 100 000 de ori mai eficientă decât să încerce să ghicească fiecare valoare posibilă de date.

Această eficiență presupune că SHA1 este acum oficial spart.

Recompensa SHA1

Pe 23 februarie un utilizator a postat pe Reddit un anunț prin care atrăgea atenția că cineva a revendicat în cele din urmă recompensa pentru coliziunea SHA1.

Recompensa, care avea în vedere descoperirea vulnerabilităților în algoritm, a fost anunțată de criptograful Peter Todd pe Bitcoin Talk în septembrie 2013, dar până acum nu a fost revendicată.

Provocarea venea sub forma unui script scris de Todd, care permitea oricui să mute bitcoini din adresa de portofel a premiului către o altă adresă la alegere, dacă reușesc să trimită două mesaje care nu au aceeași valoare dar ale căror digest hash este identic. Pe lângă Todd, au mai donat și alți contributori fise la fond, adunând în total 25 de bitcoini.

Conform cercetătorului, momentul revendicării, la scurt timp după publicarea coliziunii, sugerează că ar fi vorba despre altcineva care a citit cercetarea echipei Google și s-a folosit de rezultate. Așadar, cel premiat nu a fost tocmai cel care a descoperit coliziunea.

Todd a spus că ”dacă erau chiar autorii descoperirii, ne-am fi așteptat ca premiul să fie revendicat înainte de publicarea anunțului. După cum s-au petrecut lucrurile, se pare că nu a fost cazul”

Ce înseamnă asta pentru bitcoin

Este important să spunem că metoda griptografică de la baza rețelei bitcoin, care se folosește de algoritmul SHA256, nu este afectată direct de descoperire. Coliziunea SHA1 ridică însă probleme comunității de dezvoltatori, pentru că versiunea GIT de control la sistem folosește SHA1 pentru a genera digesturi hash pentru înregistrări.

Consecința nu este că trebuie să nu mai folosim Git de acum, dar va fi important să studiem munca altor oameni, pentru că o persoană din afară ar putea să încerce să facă o înregistrare malițioasă.”

Vulnerabilitatea este că un atacator ar putea, teoretic, să creeze două versiuni diferite de cod pentru înregistrarecare să pară identice atunci când valorile hash sunt comparate – deși deocamdată, ținând cont de numărul mare de procesări de care este nevoie pentru a găsi o coliziune, este puțin probabil să se întâmple.

Pe lângă SHA1, Todd a făcut concursuri similare pentru RIPE MD160 și SHA256 – ambele necesare pentru integritatea standardului bitcoin. Dacă acestea două ar fi sparte, ar fi o calamitate pentru moneda bitcoin.

Dacă vrei să revendici acea recompensă, ai face bine să cheltui bitcoinii foarte repede”