Avaldatud on algoritmi lõplik teostus , pakkudes krüptograafilist hajutushash-funktsiooni, mis on mõeldud kasutamiseks, nagu failide terviklikkuse kontrollimine, sõnumite autentimine ja andmete genereerimine digiallkirjade jaoks. BLAKE3 ei ole mõeldud paroolide hajutamiseks (paroolide jaoks tuleks kasutada yescrypt-i, bcrypt-i, scrypt-i või Argon2), kuna see on suunatud maksimaalselt kiirete hashide arvutamisele, tagades kollisioonide puudumise, kaitse ja ei ole tundlik hajutatavate andmete suuruse suhtes. BLAKE3 tõeline teostus on saadaval kahel litsentsil — avalik domeen (CC0) ja Apache 2.0.
Uue hajutushash-funktsiooni peamine erinevus on väga kõrge hash-arvutamise jõudlus, säilitades samas usaldusväärsuse tasemel SHA-3. BLAKE3 lõpptulemuseks on vaike 32-baidine (256 bitine) hash, kuid seda saab laiendada suvaliste väärtusteni. 16 KB faili hash'i genereerimise testis ületab BLAKE3 SHA3-256 15 korda, SHA-256 12 korda, SHA-512 8 korda, SHA-1 6 korda ja BLAKE2b 4 korda. Oluline vahe püsib ka väga suurte andmemahtude töötlemisel, näiteks BLAKE3 on SHA-256 8 korda efektiivsem 1 GB juhuslike andmete hash'i arvutamisel.
Algoritmi on välja töötanud tuntud krüptograafia spetsialistid (, , , ) ja see jätkab algoritmi arendamist ja rakendab koodide genereerimisel mehanismi . Erinevalt BLAKE2 (BLAKE2b, BLAKE2s) tõukab BLAKE3 välja kõikidele platvormidele ühe algoritmi, mis ei ole seotud aritmeetika ja hash'i suurusega.
Jõudluse parandamine saavutati ringide arvu vähendamisega 10-lt 7-ni ja blokkide eraldi hashimisel tükkide kaupa 1 KB. Loojate kinnituste kohaselt leidsid nad veenva , et etteneb olla 7 vooru asemel 10, säilitades samas sama usaldusväärsuse (näiteks võib tuua näite puuviljade segamisest blenderis — bereits 7 sekundi pärast on puuviljad täielikult segatud ja lisatud 3 sekundit ei mõjuta segu konsistentsi). Samas väljendavad mõned teadlased kahtlusi, usudes, et isegi kui praegu on 7 vooru piisav, et taluda kõiki tuntud rünnakuid hash-funktsioonide vastu, võivad lisanduvad 3 vooru osutuda kasulikeks uute rünnakute avastamisel tulevikus.
Mis puutub plokkide jagamisse, siis BLAKE3 voog jaguneb 1 KB suurusteks tükkideks ja iga tükk hashitakse sõltumatult. Tükkide hasherite põhjal . Antud jagamine lahendab andmete töötlemise paralleelsetes arvutustes hash'i arvutamise käigus — näiteks saab kasutada 4-lõime SIMD-käske, et samaaegselt arvutada 4 ploki hashe. Traditsioonilised SHA-* hash-funktsioonid töötlevad andmeid järjestikku.
BLAKE3 omadused:
- Kõrge jõudlus;
- Turvalisus, sealhulgas vastupidavus , mille suhtes on SHA-2 vastuvõtlik;
- Arvutuste paralleelide pakkumine igasuguste lõime ja SIMD-kanalite jaoks;
- Võimalus inkrementaalseks uuendamiseks ja kinnitatud voogude töötlemiseks;
- Kasutamine režiimides PRF, MAC, KDF, XOF ja nagu tavaline hash;
- Üks lahendus kõigile arhitektuuridele, kiire nii x86-64 süsteemides kui ka 32-bitistes ARM-protsessorites.
Allikas: opennet.ru
