Liberazione di l'implementazione di riferimentu di a funzione hash criptografica BLAKE3 1.0

Una implementazione di riferimentu di a funzione di hash criptografica BLAKE3 1.0 hè stata liberata, notevule per u so rendimentu di calculu di hash assai altu mentre assicurendu affidabilità à u livellu SHA-3. In a prova di generazione di hash per un schedariu di 16 KB, BLAKE3 cù una chjave di 256-bit supera SHA3-256 da 17 volte, SHA-256 da 14 volte, SHA-512 da 9 volte, SHA-1 da 6 volte, è BLAKE2b - 5 volte. Una lacuna significativa resta quandu si tratta di quantità assai grande di dati, per esempiu, BLAKE3 hè diventatu 256 volte più veloce di SHA-8 quandu calcula un hash per 1GB di dati aleatorii. U codice di implementazione di riferimentu BLAKE3 hè dispunibule in versioni C è Rust sottu un duminiu publicu duale (CC0) è una licenza Apache 2.0.

Liberazione di l'implementazione di riferimentu di a funzione hash criptografica BLAKE3 1.0

A funzione hash hè pensata per l'applicazioni cum'è a verificazione di l'integrità di i fugliali, l'autentificazione di u messagiu è a generazione di dati per e firme digitali criptografiche. BLAKE3 ùn hè micca pensatu per l'hashing password, postu chì hà u scopu di calculà l'hash u più prestu pussibule (per password, hè cunsigliatu di utilizà e funzioni di hash lento yescrypt, bcrypt, scrypt o Argon2). A funzione hash in cunsiderazione hè insensibile à a dimensione di e dati hashed è hè prutetta da attacchi à a selezzione di collisione è a ricerca di preimaghjini.

L'algoritmu hè statu sviluppatu da esperti di criptografia famosi (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) è cuntinueghja u sviluppu di l'algoritmu BLAKE2 è usa u mecanismu Bao per codificà l'arburu di a catena di bloccu. . A cuntrariu di BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 offre un unicu algoritmu per tutte e plataforme, micca ligatu à a prufundità di bit è a dimensione di l'hash.

A prestazione aumentata hè stata ottenuta riducendu u nùmeru di round da 10 à 7 è hashing blocchi separatamente in pezzi 1 KB. Sicondu i creatori, anu truvatu una prova matematica cunvincente chì hè pussibule di passà cù 7 round invece di 10, mantenendu u listessu livellu di affidabilità (per a chiarezza, pudemu dà un esempiu cù a mistura di frutti in un mixer - dopu à 7 seconde. u fruttu hè digià mischiatu cumplettamente, è 3 seconde supplementari ùn affettanu micca a cunsistenza di a mistura). Tuttavia, certi circadori esprimenu dubbi, credendu chì ancu s'è 7 rounds sò attualmente abbastanza per contru à tutti l'attacchi cunnisciuti à l'hash, allora 3 round addiziunali ponu esse utili se novi attacchi sò identificati in u futuru.

In quantu à dividisce in blocchi, in BLAKE3 u flussu hè divisu in pezzi 1 KB è ogni pezzu hè hashed indipindente. Basatu nantu à l'hash di i pezzi, un grande hash hè furmatu basatu annantu à l'arbulu Merkle binariu. Sta divisione ci permette di risolve u prublema di parallelizing processing di dati quandu calcule hashes - per esempiu, pudete aduprà struzzioni SIMD 4-threaded per calculà simultaneamente hashes di 4 blocchi. E funzioni tradiziunali SHA-* processanu e dati in sequenza.

Caratteristiche di BLAKE3:

  • Alte prestazioni, BLAKE3 hè significativamente più veloce di MD5, SHA-1, SHA-2, SHA-3 è BLAKE2.
  • Sicurezza, cumpresa a resistenza à l'attacchi di allungamentu di u messagiu à quale SHA-2 hè suscettibile;
  • Varianti Rust sò dispunibuli, ottimizzati per SSE2, SSE4.1, AVX2, AVX-512, è struzzioni NEON.
  • Assicurendu a parallelizazione di i calculi nantu à ogni numeru di fili è canali SIMD.
  • A pussibilità di l'aghjurnamentu incrementale è u prucessu verificatu di i flussi;
  • Aduprà in i modi PRF, MAC, KDF, XOF è cum'è un hash regular;
  • Un algoritmu unicu per tutte l'architetture, veloce sia in sistemi x86-64 sia in processori ARM 32-bit.

I principali diffirenzii trà BLAKE3 è BLAKE2:

  • Utilizazione di una struttura di l'arburu binariu chì permette un parallelismu illimitatu in i calculi di hash.
  • Reduce u numeru di round da 10 à 7.
  • Trè modi di funziunamentu: hashing, hashing cù una chjave (HMAC) è generazione di chjave (KDF).
  • Nisun overhead supplementu quandu hashing cù una chjave per via di l'usu di l'area occupata prima da u bloccu di parametri chjave.
  • Meccanisimu di funziunamentu integratu in a forma di una funzione cù un risultatu allargatu (XOF, Funzione di Output Extendable), chì permette a parallelizazione è u posizionamentu (cercà).

Source: opennet.ru

Add a comment