Disponibile la funzione hash crittografico BLAKE3, che è 10 volte più veloce di SHA-2

L'implementazione finale dell'algoritmo è stata pubblicata BLAKE3, che offre una funzione hash crittografica progettata per applicazioni quali il controllo dell'integrità dei file, l'autenticazione dei messaggi e la generazione di dati per le firme digitali. BLAKE3 non è destinato all'hashing delle password (per le password è necessario utilizzare yescrypt, bcrypt, scrypt o Argon2), poiché mira a calcolare gli hash il più rapidamente possibile con la garanzia di assenza di collisioni, protezione contro trovare il prototipo e non sensibile alla dimensione dei dati sottoposti ad hashing. Implementazione di riferimento di BLAKE3 pubblicato Doppia licenza di dominio pubblico (CC0) e Apache 2.0.

La differenza fondamentale della nuova funzione hash è l'altissima prestazione dei calcoli hash pur mantenendo l'affidabilità al livello SHA-3. Per impostazione predefinita, la dimensione hash risultante in BLAKE3 è 32 byte (256 bit), ma può essere espansa a valori arbitrari. In un test di generazione dell'hash per un file da 16 KB, BLAKE3 supera SHA3-256 di 15 volte, SHA-256 di 12 volte, SHA-512 di 8 volte, SHA-1 di 6 volte e BLAKE2b di 4 volte. Rimane un divario significativo quando si elaborano quantità di dati molto grandi, come si è scoperto, ad esempio, BLAKE3 più veloce SHA-256 di 8 volte quando si calcola l'hash per 1 GB di dati casuali.

Disponibile la funzione hash crittografico BLAKE3, che è 10 volte più veloce di SHA-2

L'algoritmo è stato sviluppato da famosi esperti di crittografia (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) e continua a sviluppare l'algoritmo BLAKE2 e utilizza un meccanismo per codificare l'albero della catena di blocchi Bao. A differenza di BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 offre un unico algoritmo per tutte le piattaforme, non legato alla profondità di bit e alla dimensione dell'hash.

L'aumento delle prestazioni è stato ottenuto riducendo il numero di cicli da 10 a 7 e eseguendo l'hashing separatamente dei blocchi in pezzi da 1 KB. Secondo i creatori, hanno trovato un aspetto convincente prova, che puoi fare con 7 giri invece di 10 mantenendo lo stesso livello di affidabilità (per chiarezza puoi fare un esempio mescolando la frutta in un mixer - dopo 7 secondi la frutta è già completamente mescolata e altri 3 secondi serviranno non alterano la consistenza dell'impasto). Tuttavia, alcuni ricercatori esprimono dubbi, ritenendo che anche se attualmente 7 round sono sufficienti per resistere a tutti gli attacchi noti agli hash, altri 3 round potrebbero essere utili se in futuro verranno identificati nuovi attacchi.

Per quanto riguarda la divisione in blocchi, in BLAKE3 lo stream è diviso in pezzi da 1 KB e ogni pezzo viene sottoposto ad hashing in modo indipendente. Basato sugli hash dei pezzi sulla base albero binario Merkle si forma un grande hash. Questa divisione ci consente di risolvere il problema della parallelizzazione dell'elaborazione dei dati durante il calcolo di un hash: ad esempio, è possibile utilizzare istruzioni SIMD a 4 thread per calcolare contemporaneamente gli hash di 4 blocchi. Le tradizionali funzioni hash SHA-* elaborano i dati in sequenza.

Caratteristiche di BLAKE3:

  • Alte prestazioni;
  • Sicurezza, inclusa la resistenza a attacco di allungamento del messaggio, a cui SHA-2 è suscettibile;
  • Garantire la parallelizzazione dei calcoli su qualsiasi numero di thread e canali SIMD;
  • Possibilità di aggiornamento incrementale ed elaborazione verificata dei flussi;
  • Utilizzare in modalità PRF, MAC, KDF, XOF e come hash normale;
  • Un unico algoritmo per tutte le architetture, veloce sia su sistemi x86-64 che su processori ARM a 32 bit.

Fonte: opennet.ru

Aggiungi un commento