BLAKE3 cryptografische hashfunctie beschikbaar, die 10 keer sneller is dan SHA-2

De definitieve implementatie van het algoritme is gepubliceerd BLAKE3, dat een cryptografische hashfunctie biedt die is ontworpen voor toepassingen zoals het controleren van de bestandsintegriteit, berichtauthenticatie en het genereren van gegevens voor digitale handtekeningen. BLAKE3 is niet bedoeld voor het hashen van wachtwoorden (voor wachtwoorden moet u yescrypt, bcrypt, scrypt of Argon2 gebruiken), omdat het erop gericht is om hashes zo snel mogelijk te berekenen met de garantie dat er geen botsingen plaatsvinden, bescherming tegen het vinden van het prototype en niet gevoelig voor de grootte van de gehashte gegevens. Referentie-implementatie van BLAKE3 gepubliceerd Dubbele licentie onder Public Domain (CC0) en Apache 2.0.

Het belangrijkste verschil met de nieuwe hashfunctie is de zeer hoge prestatie van hashberekeningen, terwijl de betrouwbaarheid op het SHA-3-niveau behouden blijft. Standaard is de resulterende hashgrootte in BLAKE3 32 bytes (256 bits), maar deze kan worden uitgebreid tot willekeurige waarden. In een hash-generatietest voor een bestand van 16 KB presteert BLAKE3 3 keer beter dan SHA256-15, 256 keer SHA-12, 512 keer SHA-8, 1 keer SHA-6 en 2 keer beter dan BLAKE4b. Er blijft een aanzienlijke kloof bestaan ​​bij het verwerken van zeer grote hoeveelheden gegevens, zo bleek BLAKE3 быстрее SHA-256 met 8 keer bij het berekenen van hash voor 1 GB aan willekeurige gegevens.

BLAKE3 cryptografische hashfunctie beschikbaar, die 10 keer sneller is dan SHA-2

Het algoritme is ontwikkeld door beroemde cryptografie-experts (Jack O'Connor, Jean-Philippe Aumasson, Samuël Neves, Zooko Wilcox-O'Hearn) en blijft het algoritme ontwikkelen BLAKE2 en gebruikt een mechanisme om de blokketenboom te coderen Bao. In tegenstelling tot BLAKE2 (BLAKE2b, BLAKE2s) biedt BLAKE3 één enkel algoritme voor alle platforms, niet gebonden aan de bitdiepte en hashgrootte.

Er werden betere prestaties bereikt door het aantal rondes terug te brengen van 10 naar 7 en blokken afzonderlijk te hashen in stukjes van 1 KB. Volgens de makers vonden ze het overtuigend bewijsmateriaal, dat je kunt rondkomen met 7 rondes in plaats van 10 terwijl je hetzelfde betrouwbaarheidsniveau behoudt (voor de duidelijkheid kun je een voorbeeld geven door fruit in een mixer te mengen - na 7 seconden zijn de vruchten al volledig gemengd en nog eens 3 seconden heeft geen invloed op de consistentie van het mengsel). Sommige onderzoekers uiten echter hun twijfels, omdat ze van mening zijn dat zelfs als momenteel zeven rondes voldoende zijn om alle bekende aanvallen op hashes te weerstaan, drie extra rondes nuttig kunnen zijn als er in de toekomst nieuwe aanvallen worden geïdentificeerd.

Wat betreft het verdelen in blokken: in BLAKE3 wordt de stream verdeeld in stukken van 1 KB en wordt elk stuk afzonderlijk gehasht. Gebaseerd op hashes van de stukken op de basis binaire merkle-boom er ontstaat één grote hasj. Met deze indeling kunnen we het probleem van de parallellisatie van gegevensverwerking bij het berekenen van een hash oplossen. U kunt bijvoorbeeld SIMD-instructies met 4 threads gebruiken om tegelijkertijd de hashes van 4 blokken te berekenen. Traditionele SHA-*-hashfuncties verwerken gegevens opeenvolgend.

Kenmerken van BLAKE3:

  • Hoge performantie;
  • Veiligheid, inclusief weerstand tegen berichtverlengingsaanval, waarvoor SHA-2 gevoelig is;
  • Zorgen voor parallellisatie van berekeningen op een willekeurig aantal threads en SIMD-kanalen;
  • Mogelijkheid tot incrementele updates en geverifieerde verwerking van streams;
  • Gebruik in PRF-, MAC-, KDF-, XOF-modi en als gewone hash;
  • Eén enkel algoritme voor alle architecturen, snel op zowel x86-64-systemen als 32-bits ARM-processors.

Bron: opennet.ru

Voeg een reactie