De definitieve implementatie van het algoritme is gepubliceerd , dat een cryptografische hashfunctie biedt, ontworpen voor toepassingen zoals bestandintegriteitscontrole, berichtauthenticatie en het genereren van gegevens voor digitale handtekeningen. BLAKE3 is niet bedoeld voor het hashen van wachtwoorden (voor wachtwoorden moet je yescrypt, bcrypt, scrypt of Argon2 gebruiken), omdat het gericht is op het zo snel mogelijk berekenen van hashes met de garantie van geen botsingen, en bescherming tegen en is ongevoelig voor de grootte van de te hash-gegevens. De referentie-implementatie van BLAKE3 is beschikbaar onder een dubbele licentie - publieke domein (CC0) en Apache 2.0.
Een belangrijk kenmerk van de nieuwe hashfunctie is de zeer hoge rekenprestaties bij het behouden van de betrouwbaarheid op het niveau van SHA-3. Standaard heeft de resulterende hash in BLAKE3 een grootte van 32 bytes (256 bits), maar kan worden uitgebreid tot willekeurige waarden. In een test voor het genereren van een hash voor een bestand van 16 KB, overtreft BLAKE3 SHA3-256 met 15 keer, SHA-256 met 12 keer, SHA-512 met 8 keer, SHA-1 met 6 keer, en BLAKE2b met 4 keer. Dit aanzienlijke voordeel blijft ook bestaan bij het verwerken van zeer grote hoeveelheden gegevens, bijvoorbeeld, BLAKE3 bleek SHA-256 met 8 keer te overtreffen bij het berekenen van de hash voor 1 GB willekeurige gegevens.
Het algoritme is ontwikkeld door bekende cryptografiespecialisten (, , , ) en zet de ontwikkeling van het algoritme voort en past voor de codering van de blockchain-ketens de mechanisme . In tegenstelling tot BLAKE2 (BLAKE2b, BLAKE2s), biedt BLAKE3 voor alle platforms een enkele algoritme, die niet gebonden is aan de architectuur en de hash-grootte.
De prestatieverbeteringen zijn bereikt door het aantal rondes te verminderen van 10 naar 7 en het afzonderlijk hashen van blokken in stukjes van 1 KB. Volgens de makers hebben ze overtuigend , wat betekent dat je met 7 rondes in plaats van 10 kunt uitkomen zonder hetzelfde niveau van betrouwbaarheid te verliezen (ter illustratie kan men een voorbeeld geven van het mengen van fruit in een blender ā na 7 seconden is het fruit al volledig gemengd en zullen extra 3 seconden geen invloed hebben op de consistentie van het mengsel). Sommige onderzoekers uiten echter twijfels, omdat zij geloven dat, zelfs als 7 rondes momenteel voldoende zijn om alle bekende aanvallen op hashes tegen te gaan, extra 3 rondes nuttig kunnen zijn in het geval van nieuwe aanvallen in de toekomst.
Wat betreft de splitsing in blokken, wordt de BLAKE3-stroom in stukjes van 1 KB verdeeld en wordt elk stukje onafhankelijk gehashd. Op basis van de hashes van de stukjes wordt Dit gestructureerde proces maakt het mogelijk om het probleem van parallelle gegevensverwerking bij het berekenen van de hash op te lossen ā bijvoorbeeld kunnen 4-draad SIMD-instructies worden gebruikt voor het gelijktijdig berekenen van hashes van 4 blokken. Traditionele hashfuncties zoals SHA-* verwerken gegevens sequentieel.
Kenmerken van BLAKE3:
- Hoge prestaties;
- Veiligheid, inclusief weerstand tegen waar SHA-2 gevoelig voor is;
- Het waarborgen van parallelle berekeningen op een willekeurig aantal threads en SIMD-kanalen;
- Mogelijkheid voor incrementele updates en geverifieerde verwerking van stromen;
- Toepassing in de modi PRF, MAC, KDF, XOF en als gewone hash;
- ĆĆ©n enkele algoritme voor alle architecturen, snel op zowel x86-64-systemen als op 32-bits ARM-processoren.
Bron: opennet.ru
