S'ha publicat la implementació de referència de hash criptogràfic BLAKE3 1.0

Es va llançar una implementació de referència de la funció hash criptogràfica BLAKE3 1.0, destacada pel seu alt rendiment de càlcul de hash alhora que garanteix la fiabilitat a nivell SHA-3. A la prova de generació hash per a un fitxer de 16 KB, BLAKE3 amb una clau de 256 bits supera SHA3-256 per 17 vegades, SHA-256 per 14 vegades, SHA-512 per 9 vegades, SHA-1 per 6 vegades i BLAKE2b - 5 vegades. Hi ha un buit important quan es processen quantitats molt grans de dades, per exemple, BLAKE3 va resultar ser 256 vegades més ràpid que SHA-8 quan es calculava un hash per a 1 GB de dades aleatòries. El codi d'implementació de referència BLAKE3 està disponible a les versions C i Rust sota una llicència de domini públic dual (CC0) i Apache 2.0.

S'ha publicat la implementació de referència de hash criptogràfic BLAKE3 1.0

La funció hash està dissenyada per a aplicacions com la comprovació de la integritat dels fitxers, l'autenticació de missatges i la generació de dades per a signatures digitals criptogràfiques. BLAKE3 no està pensat per a hash contrasenyes, ja que té com a objectiu calcular hash el més ràpid possible (per a contrasenyes, es recomana utilitzar les funcions de hash lents yescrypt, bcrypt, scrypt o Argon2). La funció hash que s'està considerant és insensible a la mida de les dades hash i està protegida dels atacs a la selecció de col·lisions i a la recerca de preimatge.

L'algoritme va ser desenvolupat per coneguts experts en criptografia (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) i continua el desenvolupament de l'algorisme BLAKE2 i utilitza el mecanisme Bao per codificar l'arbre de cadena de blocs. . A diferència de BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 ofereix un únic algorisme per a totes les plataformes, no lligat a la profunditat de bits i la mida del hash.

Es va aconseguir un augment del rendiment reduint el nombre de rondes de 10 a 7 i els blocs hash per separat en peces d'1 KB. Segons els creadors, han trobat una prova matemàtica convincent que és possible sortir amb 7 rondes en lloc de 10 mantenint el mateix nivell de fiabilitat (per a més claredat, podem posar un exemple amb la barreja de fruita en una batedora, després de 7 segons). la fruita ja està completament barrejada i 3 segons addicionals no afectaran la consistència de la barreja). Tanmateix, alguns investigadors expressen dubtes, i creuen que, fins i tot si actualment 7 rondes són suficients per contrarestar tots els atacs coneguts a hash, llavors 3 rondes addicionals poden ser útils si s'identifiquen nous atacs en el futur.

Pel que fa a la divisió en blocs, a BLAKE3 el flux es divideix en peces d'1 KB i cada peça té un resum independent. A partir dels hash de les peces, es forma un gran hash basat en l'arbre binari de Merkle. Aquesta divisió ens permet resoldre el problema de la paral·lelització del processament de dades en calcular hash; per exemple, podeu utilitzar instruccions SIMD de 4 fils per calcular simultàniament hash de 4 blocs. Les funcions hash tradicionals SHA-* processen les dades de manera seqüencial.

Característiques de BLAKE3:

  • D'alt rendiment, BLAKE3 és significativament més ràpid que MD5, SHA-1, SHA-2, SHA-3 i BLAKE2.
  • Seguretat, inclosa la resistència als atacs d'allargament del missatge als quals SHA-2 és susceptible;
  • Disponible en Rust, optimitzat per a instruccions SSE2, SSE4.1, AVX2, AVX-512 i NEON.
  • Assegurant la paral·lelització dels càlculs en qualsevol nombre de fils i canals SIMD.
  • Possibilitat d'actualització incremental i processament verificat de fluxos;
  • Ús en els modes PRF, MAC, KDF, XOF i com a hash normal;
  • Un únic algorisme per a totes les arquitectures, ràpid tant en sistemes x86-64 com en processadors ARM de 32 bits.

Les principals diferències entre BLAKE3 i BLAKE2:

  • Ús d'una estructura d'arbre binari que permet un paral·lelisme il·limitat en els càlculs hash.
  • Reducció del nombre de rondes de 10 a 7.
  • Tres modes de funcionament: hashing, hashing amb una clau (HMAC) i generació de claus (KDF).
  • No hi ha cap sobrecàrrega addicional quan hash amb una clau a causa de l'ús de l'àrea que abans ocupava el bloc de paràmetres de la clau.
  • Mecanisme de funcionament integrat en forma de funció amb un resultat estès (XOF, Extendable Output Function), que permet la paral·lelització i el posicionament (seek).

Font: opennet.ru

Afegeix comentari