Release van de referentie-implementatie van de cryptografische hashfunctie BLAKE3 1.0

De referentie-implementatie van de cryptografische hashfunctie BLAKE3 1.0 is uitgebracht, die opmerkelijke prestaties levert met een zeer hoge rekensnelheid van de hash, terwijl het ook betrouwbaarheid biedt op niveau van SHA-3. In een test voor het genereren van een hash voor een bestand van 16 KB, overschrijdt BLAKE3 met een 256-bits sleutel SHA3-256 met een factor van 17, SHA-256 met 14 keer, SHA-512 met 9 keer, SHA-1 met 6 keer, en BLAKE2b met 5 keer. Deze significante voorsprong blijft bestaan bij de verwerking van zeer grote hoeveelheden data; bijvoorbeeld, BLAKE3 is 8 keer sneller dan SHA-256 bij het berekenen van de hash voor 1 GB willekeurige data. De code van de referentie-implementatie van BLAKE3 is beschikbaar in C en Rust onder een dubbele licentie — publieke domein (CC0) en Apache 2.0.

Release van de referentie-implementatie van de cryptografische hashfunctie BLAKE3 1.0

De hashfunctie is ontworpen voor toepassingen zoals bestandintegriteitscontrole, berichtauthenticatie en het genereren van gegevens voor cryptografische digitale handtekeningen. BLAKE3 is niet bedoeld voor het hashen van wachtwoorden, omdat het gericht is op het maximale versnellen van het berekenen van hashes (voor wachtwoorden wordt aangeraden om langzame hashfuncties zoals yescrypt, bcrypt, scrypt of Argon2 te gebruiken). De beschouwde hashfunctie is ongevoelig voor de grootte van de te hashen gegevens en is beschermd tegen aanvalstechnieken zoals botsingsaanvallen en het vinden van pre-images.

Het algoritme is ontwikkeld door bekende cryptografie-experts (Jack O’Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O’Hearn) en bouwt voort op de ontwikkeling van het BLAKE2-algoritme en past het Bao-mechanisme toe voor het coderen van kettingstructuren. In tegenstelling tot BLAKE2 (BLAKE2b, BLAKE2s), biedt BLAKE3 een uniforme algoritme voor alle platforms, onafhankelijk van de bitwaarde en de grootte van de hash.

Prestatieverbeteringen zijn bereikt door het aantal rondes te verminderen van 10 naar 7 en door de blokkende hashing in stukjes van 1 KB uit te voeren. Volgens de makers hebben ze overtuigend wiskundig bewijs gevonden dat 7 rondes in plaats van 10 voldoende zijn om hetzelfde niveau van betrouwbaarheid te behouden (ter illustratie kan het voorbeeld van het mengen van fruit in een blender worden genoemd — na 7 seconden zijn de vruchten al volledig gemengd en zullen de extra 3 seconden geen invloed hebben op de consistentie van de mix). Desondanks uiten sommige onderzoekers twijfels en zijn van mening dat, zelfs als 7 rondes momenteel voldoende zijn om alle bekende aanvallen op hashes te weerstaan, de extra 3 rondes nuttig kunnen blijken bij het ontdekken van nieuwe aanvallen in de toekomst.

Wat betreft de blokverdeling, de BLAKE3-stroom wordt onderverdeeld in stukjes van 1 KB en elk stukje wordt onafhankelijk gehasht. Op basis van de hashes van de stukjes wordt een grote hash gevormd met behulp van een binaire Merkle-boom. Deze onderverdeling lost het probleem van het parallel verwerken van gegevens bij het berekenen van de hash op — bijvoorbeeld kunnen 4-draad SIMD-instructies worden gebruikt om hashes van 4 blokken gelijktijdig te berekenen. Traditionele hash-functies zoals SHA-* verwerken gegevens sequentieel.

Kenmerken van BLAKE3:

  • Hoge prestaties, BLAKE3 is aanzienlijk sneller dan MD5, SHA-1, SHA-2, SHA-3 en BLAKE2.
  • Veiligheid, inclusief weerstand tegen de lengteverlengingsaanval waar SHA-2 kwetsbaar voor is;
  • Beschikbare versies in de programmeertaal Rust, geoptimaliseerd voor het gebruik van SSE2, SSE4.1, AVX2, AVX-512 en NEON-instructies.
  • Bieden van parallelle rekenkracht over een onbeperkt 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.

Belangrijkste verschillen van BLAKE3 ten opzichte van BLAKE2:

  • Gebruik van een binaire boomstructuur die onbeperkte paralleliteit bij het berekenen van de hash mogelijk maakt.
  • Vermindering van het aantal rondes van 10 naar 7.
  • Drie werkmodi: hashing, hashing met een sleutel (HMAC) en sleutel generatie (KDF).
  • Geen onnodige overheadkosten bij hashing met een sleutel door gebruik te maken van het gebied dat voorheen door de sleutelparameters blok werd ingenomen.
  • Een ingebouwde werkmechanisme in de vorm van een functie met een verlengbaar resultaat (XOF, Extendable Output Function), die parallelisatie en positionering (seek) toelaat.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster