BLAKE3 kryptografisk hash-funktion tillgänglig, vilket är 10 gånger snabbare än SHA-2

Den slutliga implementeringen av algoritmen har publicerats BLAKE3, som erbjuder en kryptografisk hashfunktion utformad för applikationer som kontroll av filintegritet, meddelandeautentisering och generering av data för digitala signaturer. BLAKE3 är inte avsedd för att hasha lösenord (för lösenord måste du använda yescrypt, bcrypt, scrypt eller Argon2), eftersom det syftar till att beräkna hash så snabbt som möjligt med garanti för inga kollisioner, skydd mot hitta prototypen och inte känslig för storleken på hashade data. Referensimplementering av BLAKE3 publicerat Dubbellicensierad under Public Domain (CC0) och Apache 2.0.

Den viktigaste skillnaden med den nya hashfunktionen är den mycket höga prestandan för hashberäkningar samtidigt som tillförlitligheten bibehålls på SHA-3-nivån. Som standard är den resulterande hashstorleken i BLAKE3 32 byte (256 bitar), men den kan utökas till godtyckliga värden. I ett hashgenereringstest för en 16 KB-fil överträffar BLAKE3 SHA3-256 15 gånger, SHA-256 12 gånger, SHA-512 8 gånger, SHA-1 6 gånger och BLAKE2b 4 gånger. En betydande lucka kvarstår vid bearbetning av mycket stora datamängder, till exempel visade sig BLAKE3 vara snabbare SHA-256 med 8 gånger vid beräkning av hash för 1 GB slumpmässig data.

BLAKE3 kryptografisk hash-funktion tillgänglig, vilket är 10 gånger snabbare än SHA-2

Algoritmen utvecklades av kända kryptografiexperter (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) och fortsätter att utveckla algoritmen BLAKE2 och använder en mekanism för att koda blockkedjeträdet Sack. Till skillnad från BLAKE2 (BLAKE2b, BLAKE2s) erbjuder BLAKE3 en enda algoritm för alla plattformar, inte bunden till bitdjupet och hashstorleken.

Ökad prestanda uppnåddes genom att minska antalet omgångar från 10 till 7 och separat hasha block i 1 KB bitar. Enligt skaparna fann de en övertygande bevis, att du kan klara dig med 7 omgångar istället för 10 samtidigt som du bibehåller samma nivå av tillförlitlighet (för tydlighetens skull kan du ge ett exempel med att blanda frukt i en mixer - efter 7 sekunder är frukterna redan helt blandade och ytterligare 3 sekunder kommer att påverkar inte blandningens konsistens). Vissa forskare uttrycker dock tvivel och tror att även om 7 omgångar för närvarande räcker för att motstå alla kända attacker på hash, så kan ytterligare 3 omgångar vara användbara om nya attacker identifieras i framtiden.

När det gäller uppdelning i block, i BLAKE3 är strömmen uppdelad i 1 KB bitar och varje bit hashas oberoende av varandra. Baserat på hash av bitarna på basen binärt merkleträd en stor hash bildas. Denna uppdelning gör att vi kan lösa problemet med parallellisering av databehandling vid beräkning av en hash - till exempel kan du använda 4-trådade SIMD-instruktioner för att samtidigt beräkna hasharna för 4 block. Traditionella SHA-*-hashfunktioner behandlar data sekventiellt.

Funktioner hos BLAKE3:

  • Hög prestanda;
  • Säkerhet, inklusive motstånd mot meddelandeförlängningsattack, för vilken SHA-2 är känsligt;
  • Säkerställa parallellisering av beräkningar på valfritt antal trådar och SIMD-kanaler;
  • Möjlighet till inkrementell uppdatering och verifierad bearbetning av strömmar;
  • Använd i lägen PRF, MAC, KDF, XOF och som en vanlig hash;
  • En enda algoritm för alla arkitekturer, snabb på både x86-64-system och 32-bitars ARM-processorer.

Källa: opennet.ru

Lägg en kommentar