A fost publicată implementarea finală a algoritmului , oferind o funcție de hash criptografică, destinată unor aplicații precum verificarea integrității fișierelor, autentificarea mesajelor și generarea de date pentru semnături digitale. BLAKE3 nu este destinată pentru hash-uri de parole (pentru parole, ar trebui utilizate yescrypt, bcrypt, scrypt sau Argon2), deoarece este concepută pentru a calcula rapid hash-uri cu garanția absenței coliziunilor, protejând de și fiind insensibilă la dimensiunea datelor hashuite. Implementarea de referință a BLAKE3 este dual licențiată – în domeniul public (CC0) și Apache 2.0.
Diferența cheie a noii funcții de hash este performanța foarte ridicată în calculul hash-ului, menținând fiabilitatea la nivelul SHA-3. În mod implicit, dimensiunea hash-ului rezultat în BLAKE3 este de 32 de octeți (256 de biți), dar poate fi extinsă la valori arbitrare. În testul de generare a hash-ului 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, iar BLAKE2b de 4 ori. O diferență semnificativă se păstrează și la procesarea unor volume foarte mari de date, de exemplu, BLAKE3 s-a dovedit SHA-256 de 8 ori în calculul hash-ului pentru 1 GB de date aleatorii.
Algoritmul a fost dezvoltat de specialiști renumiți în criptografie (, , , ) și continuă dezvoltarea algoritmului și aplică pentru codificarea arborelui lanțurilor de blocuri mecanismul . Spre deosebire de BLAKE2 (BLAKE2b, BLAKE2s), în BLAKE3 s-a propus un algoritm unitar pentru toate platformele, independent de arhitectura și dimensiunea hash-ului.
Îmbunătățirea performanței a fost realizată prin reducerea numărului de runde de la 10 la 7 și hashingul blocurilor în bucăți de 1 KB. Potrivit creatorilor, au găsit o dovadă convingătoare , se poate obține o performanță similară cu 7 runde în loc de 10, menținând același nivel de fiabilitate (pentru o imagine de ansamblu, se poate aduce exemplul amestecării fructelor într-un blender — după 7 secunde, fructele sunt deja complet amestecate și încă 3 secunde nu vor afecta consistența amestecului). Cu toate acestea, unii cercetători își exprimă îndoiala, considerând că, chiar dacă în prezent 7 runde sunt suficiente pentru a face față tuturor atacurilor cunoscute asupra hash-urilor, cele 3 runde suplimentare ar putea fi utile în cazul descoperirii unor noi atacuri în viitor.
Când vine vorba de împărțirea în blocuri, în BLAKE3 fluxul este împărțit în bucăți de 1 KB, iar fiecare bucată este hash-uită independent. Pe baza hash-urilor bucatelor se formează Această împărțire permite rezolvarea problemei paralelizării procesării datelor în timpul calculării hash-ului — de exemplu, se pot folosi instrucțiuni SIMD cu 4 fire pentru calcularea simultană a hash-urilor pentru 4 blocuri. Funcțiile hash tradiționale SHA-* procesează datele secvențial.
Caracteristicile BLAKE3:
- Performanță ridicată;
- Securitate, inclusiv rezistența la la care este vulnerabil SHA-2;
- Asigurarea paralelizării calculelor pe un număr nelimitat de fir și canale SIMD;
- Posibilitatea actualizării incrementale și procesarea verificată a fluxurilor;
- Utilizare în moduri PRF, MAC, KDF, XOF și ca hash obișnuit;
- Un algoritm unic pentru toate arhitecturile, rapid atât pe sistemele x86-64, cât și pe procesoarele ARM de 32 de biți.
Sursa: opennet.ro
