Release av referensimplementeringen av den kryptografiska hashfunktionen BLAKE3 1.0

En referensimplementering av den kryptografiska hashfunktionen BLAKE3 1.0 slÀpptes, kÀnd för dess mycket höga hashberÀkningsprestanda samtidigt som den sÀkerstÀller tillförlitlighet pÄ SHA-3-nivÄ. I hashgenereringstestet för en 16 KB-fil övertrÀffar BLAKE3 med en 256-bitars nyckel SHA3-256 17 gÄnger, SHA-256 14 gÄnger, SHA-512 9 gÄnger, SHA-1 6 gÄnger och BLAKE2b - 5 gÄnger. En betydande lucka kvarstÄr vid bearbetning av mycket stora datamÀngder, till exempel visade sig BLAKE3 vara 256 gÄnger snabbare Àn SHA-8 vid berÀkning av en hash för 1 GB slumpmÀssig data. BLAKE3-referensimplementeringskoden Àr tillgÀnglig i C- och Rust-versioner under en dual public domain (CC0) och Apache 2.0-licens.

 Release av referensimplementeringen av den kryptografiska hashfunktionen BLAKE3 1.0

Hashfunktionen Àr designad för applikationer som kontroll av filintegritet, meddelandeautentisering och generering av data för kryptografiska digitala signaturer. BLAKE3 Àr inte avsett för att hasha lösenord, eftersom det syftar till att berÀkna hash sÄ snabbt som möjligt (för lösenord rekommenderas att anvÀnda de lÄngsamma hashfunktionerna yescrypt, bcrypt, scrypt eller Argon2). Den aktuella hashfunktionen Àr okÀnslig för storleken pÄ hashad data och Àr skyddad frÄn attacker mot kollisionsval och förbildssökning.

Algoritmen har utvecklats av vÀlkÀnda kryptografiexperter (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) och fortsÀtter utvecklingen av BLAKE2-algoritmen och anvÀnder Bao-mekanismen för att koda blockkedjetrÀdet . 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 rundor frĂ„n 10 till 7 och hasha block separat i 1 KB bitar. Enligt skaparna har de hittat övertygande matematiska bevis för att det Ă€r möjligt att klara sig med 7 omgĂ„ngar istĂ€llet för 10 samtidigt som man bibehĂ„ller samma nivĂ„ av tillförlitlighet (för tydlighetens skull kan vi ge ett exempel med att blanda frukt i en mixer - efter 7 sekunder frukten Ă€r redan helt blandad och ytterligare 3 sekunder 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 motverka 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Ä bitarnas hash bildas en stor hash baserat pÄ det binÀra Merkle-trÀdet. Denna uppdelning gör att vi kan lösa problemet med parallellisering av databehandling vid berÀkning av hash - till exempel kan du anvÀnda 4-trÄdiga SIMD-instruktioner för att samtidigt berÀkna hash om 4 block. Traditionella SHA-*-hashfunktioner behandlar data sekventiellt.

Funktioner hos BLAKE3:

  • Hög prestanda, BLAKE3 Ă€r betydligt snabbare Ă€n MD5, SHA-1, SHA-2, SHA-3 och BLAKE2.
  • SĂ€kerhet, inklusive motstĂ„nd mot attacker mot meddelandeförlĂ€ngning som SHA-2 Ă€r kĂ€nsligt för;
  • Finns i Rust, optimerad för instruktionerna SSE2, SSE4.1, AVX2, AVX-512 och NEON.
  • SĂ€kerstĂ€ll 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.

De viktigaste skillnaderna mellan BLAKE3 och BLAKE2:

  • AnvĂ€ndning av en binĂ€r trĂ€dstruktur som möjliggör obegrĂ€nsad parallellitet i hashberĂ€kningar.
  • Minska antalet omgĂ„ngar frĂ„n 10 till 7.
  • Tre driftslĂ€gen: hashning, hashning med nyckel (HMAC) och nyckelgenerering (KDF).
  • Ingen extra omkostnad vid hashning med en nyckel pĂ„ grund av anvĂ€ndningen av omrĂ„det som tidigare upptogs av nyckelparametrarnas block.
  • Inbyggd manövermekanism i form av en funktion med utökat resultat (XOF, Extendable Output Function), vilket möjliggör parallellisering och positionering (sök).

KĂ€lla: opennet.ru

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster