BLAKE3 kriptografiese hash-funksie beskikbaar, wat 10 keer vinniger is as SHA-2

Die finale implementering van die algoritme is gepubliseer BLAKE3, wat 'n kriptografiese hash-funksie bied wat ontwerp is vir toepassings soos lêerintegriteitkontrolering, boodskapverifikasie en die generering van data vir digitale handtekeninge. BLAKE3 is nie bedoel om wagwoorde te hash nie (vir wagwoorde moet jy yescrypt, bcrypt, scrypt of Argon2 gebruik), aangesien dit daarop gemik is om hashes so vinnig as moontlik te bereken met 'n waarborg van geen botsings, beskerming teen die prototipe te vind en nie sensitief vir die grootte van die gehashte data nie. Verwysingsimplementering van BLAKE3 gepubliseer Dubbel gelisensieer onder Public Domain (CC0) en Apache 2.0.

Die belangrikste verskil van die nuwe hash-funksie is die baie hoë werkverrigting van hash-berekeninge terwyl betroubaarheid op die SHA-3-vlak gehandhaaf word. By verstek is die gevolglike hash-grootte in BLAKE3 32 grepe (256 bisse), maar dit kan uitgebrei word na arbitrêre waardes. In 'n hash-generasietoets vir 'n 16 KB-lêer presteer BLAKE3 3 keer beter as SHA256-15, SHA-256 12 keer, SHA-512 8 keer, SHA-1 6 keer en BLAKE2b 4 keer. 'n Beduidende gaping bly by die verwerking van baie groot hoeveelhede data, byvoorbeeld BLAKE3 het geblyk te wees vinniger SHA-256 met 8 keer wanneer hash vir 1 GB ewekansige data bereken word.

BLAKE3 kriptografiese hash-funksie beskikbaar, wat 10 keer vinniger is as SHA-2

Die algoritme is ontwikkel deur bekende kriptografie-kundiges (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) en gaan voort om die algoritme te ontwikkel BLAKE2 en gebruik 'n meganisme om die blokkettingboom te enkodeer Bao. Anders as BLAKE2 (BLAKE2b, BLAKE2s), bied BLAKE3 'n enkele algoritme vir alle platforms, nie gekoppel aan die bietjie diepte en hash-grootte nie.

Verhoogde prestasie is behaal deur die aantal rondtes van 10 tot 7 te verminder en blokke afsonderlik in 1 KB-stukke te hash. Volgens die skeppers het hulle 'n oortuigende gevind bewyse, dat jy met 7 rondtes in plaas van 10 kan klaarkom terwyl jy dieselfde vlak van betroubaarheid behou (vir duidelikheid kan jy 'n voorbeeld gee met die meng van vrugte in 'n menger - na 7 sekondes is die vrugte reeds heeltemal gemeng en 'n bykomende 3 sekondes sal beïnvloed nie die konsekwentheid van die mengsel nie). Sommige navorsers spreek egter twyfel uit en glo dat selfs al is tans 7 rondtes genoeg om alle bekende aanvalle op hashes te weerstaan, bykomende 3 rondes nuttig kan wees as nuwe aanvalle in die toekoms geïdentifiseer word.

Wat die verdeling in blokke betref, in BLAKE3 word die stroom in 1 KB-stukke verdeel en elke stuk word onafhanklik gehash. Gebaseer op hashes van die stukke op die basis binêre merkle boom een groot hash word gevorm. Hierdie verdeling stel ons in staat om die probleem van parallellisering van dataverwerking op te los wanneer 'n hash bereken word - jy kan byvoorbeeld 4-draad SIMD-instruksies gebruik om die hashes van 4 blokke gelyktydig te bereken. Tradisionele SHA-* hash-funksies verwerk data opeenvolgend.

Kenmerke van BLAKE3:

  • Hoë werkverrigting;
  • Veiligheid, insluitend weerstand teen boodskap verlenging aanval, waarvoor SHA-2 vatbaar is;
  • Verseker parallellisering van berekeninge op enige aantal drade en SIMD-kanale;
  • Moontlikheid van inkrementele opdatering en geverifieerde verwerking van strome;
  • Gebruik in PRF-, MAC-, KDF-, XOF-modusse en as 'n gereelde hash;
  • 'n Enkele algoritme vir alle argitekture, vinnig op beide x86-64-stelsels en 32-bis ARM-verwerkers.

Bron: opennet.ru

Voeg 'n opmerking