Funcția hash criptografică BLAKE3 disponibilă, care este de 10 ori mai rapidă decât SHA-2

Implementarea finală a algoritmului a fost publicată BLAKE3, care oferă o funcție hash criptografică concepută pentru aplicații precum verificarea integrității fișierelor, autentificarea mesajelor și generarea de date pentru semnăturile digitale. BLAKE3 nu este destinat hashing-ului parolelor (pentru parole trebuie să utilizați yescrypt, bcrypt, scrypt sau Argon2), deoarece are ca scop calcularea hashurilor cât mai rapid posibil, cu garanția că nu există coliziuni, protecție împotriva găsirea prototipului și nu este sensibil la dimensiunea datelor hashing. Implementarea de referință a BLAKE3 publicat Licență duală sub Public Domain (CC0) și Apache 2.0.

Diferența cheie a noii funcție hash este performanța foarte ridicată a calculelor hash, menținând în același timp fiabilitatea la nivelul SHA-3. În mod implicit, dimensiunea hash rezultată în BLAKE3 este de 32 de octeți (256 de biți), dar poate fi extinsă la valori arbitrare. Într-un test de generare hash pentru un fișier de 16 KB, BLAKE3 depășește SHA3-256 de 15 ori, SHA-256 de 12 ori, SHA-512 de 8 ori, SHA-1 de 6 ori și BLAKE2b de 4 ori. Un decalaj semnificativ rămâne atunci când se prelucrează cantități foarte mari de date, de exemplu, BLAKE3 s-a dovedit a fi mai rapid SHA-256 de 8 ori atunci când se calculează hash pentru 1 GB de date aleatorii.

Funcția hash criptografică BLAKE3 disponibilă, care este de 10 ori mai rapidă decât SHA-2

Algoritmul a fost dezvoltat de experți celebri în criptografie (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) și continuă să dezvolte algoritmul BLAKE2 și folosește un mecanism pentru a codifica arborele lanț de blocuri Bao. Spre deosebire de BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 oferă un singur algoritm pentru toate platformele, care nu este legat de adâncimea de biți și dimensiunea hash.

Performanță crescută a fost obținută prin reducerea numărului de runde de la 10 la 7 și blocuri de hashing separat în bucăți de 1 KB. Potrivit creatorilor, au găsit o convingătoare evidență, că te poți descurca cu 7 reprize în loc de 10, menținând în același timp același nivel de fiabilitate (pentru claritate, poți da un exemplu cu amestecarea fructelor într-un mixer - după 7 secunde fructele sunt deja complet amestecate și se vor adăuga încă 3 secunde). nu afectează consistența amestecului). Cu toate acestea, unii cercetători își exprimă îndoieli, considerând că, chiar dacă în prezent 7 runde sunt suficiente pentru a rezista tuturor atacurilor cunoscute asupra hashurilor, atunci alte 3 runde pot fi utile dacă în viitor sunt identificate noi atacuri.

În ceea ce privește împărțirea în blocuri, în BLAKE3 fluxul este împărțit în bucăți de 1 KB și fiecare bucată este hashing independent. Pe baza hashurilor pieselor de pe bază arbore merkle binar se formează un hash mare. Această diviziune ne permite să rezolvăm problema paralelizării procesării datelor atunci când calculăm un hash - de exemplu, puteți utiliza instrucțiuni SIMD cu 4 fire pentru a calcula simultan hashurile a 4 blocuri. Funcțiile hash tradiționale SHA-* procesează datele secvenţial.

Caracteristici ale BLAKE3:

  • De înaltă performanță;
  • Siguranța, inclusiv rezistența la atac de alungire a mesajului, la care SHA-2 este susceptibil;
  • Asigurarea paralelizării calculelor pe orice număr de fire și canale SIMD;
  • Posibilitatea de actualizare incrementală și procesare verificată a fluxurilor;
  • Utilizați în moduri PRF, MAC, KDF, XOF și ca hash obișnuit;
  • Un singur algoritm pentru toate arhitecturile, rapid atât pe sistemele x86-64, cât și pe procesoarele ARM pe 32 de biți.

Sursa: opennet.ru

Adauga un comentariu