Liberasyon aplikasyon referans fonksyon kriptografik BLAKE3 1.0

Yo te pibliye yon aplikasyon referans nan fonksyon kriptografik hash BLAKE3 1.0, remakab pou pèfòmans kalkil trè wo li yo pandan y ap asire fyab nan nivo SHA-3. Nan tès jenerasyon hash pou yon fichye 16 KB, BLAKE3 ak yon kle 256-bit depase SHA3-256 pa 17 fwa, SHA-256 pa 14 fwa, SHA-512 pa 9 fwa, SHA-1 pa 6 fwa, ak BLAKE2b - 5 fwa. Yon diferans enpòtan rete lè w ap trete gwo kantite done, pou egzanp, BLAKE3 te vin 256 fwa pi vit pase SHA-8 lè w ap kalkile yon hash pou 1GB done o aza. Kòd aplikasyon referans BLAKE3 disponib nan vèsyon C ak Rust anba yon domèn piblik doub (CC0) ak lisans Apache 2.0.

Liberasyon aplikasyon referans fonksyon kriptografik BLAKE3 1.0

Fonksyon hash la fèt pou aplikasyon tankou tcheke entegrite dosye, otantifikasyon mesaj, ak jenere done pou siyati dijital kriptografik. BLAKE3 pa fèt pou hache modpas, paske li gen pou objaktif pou kalkile hache pi vit posib (pou modpas, li rekòmande pou itilize fonksyon yo hash dousman yescrypt, bcrypt, scrypt oswa Argon2). Fonksyon hash ki anba konsiderasyon pa sansib a gwosè done yo hache epi li pwoteje kont atak sou seleksyon kolizyon ak jwenn preimage.

Algorithm la te devlope pa ekspè kriptografi byen li te ye (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) epi li kontinye devlopman nan algorithm BLAKE2 la epi li sèvi ak mekanis nan Bao kode pye bwa chèn blòk la. . Kontrèman ak BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 ofri yon sèl algorithm pou tout platfòm, pa mare nan pwofondè a ti jan ak gwosè hash.

Ogmantasyon pèfòmans yo te reyalize nan diminye kantite jij soti nan 10 a 7 ak blòk hashing separeman nan 1 KB moso. Dapre kreyatè yo, yo te jwenn prèv konvenk matematik ke li posib pou ale nan 7 jij olye pou yo 10 pandan y ap kenbe menm nivo fyab (pou klè, nou ka bay yon egzanp ak melanje fwi nan yon mixer - apre 7 segonn. fwi a deja konplètman melanje, ak yon lòt 3 segonn pa pral afekte konsistans melanj). Sepandan, kèk chèchè eksprime dout, kwè ke menm si 7 jij yo kounye a ase pou kontrekare tout atak li te ye sou hashes, Lè sa a, 3 jij adisyonèl ka itil si yo idantifye nouvo atak nan lavni.

Kòm pou divize an blòk, nan BLAKE3 kouran an divize an 1 KB moso epi chak moso se hache poukont li. Ki baze sou hash yo nan moso yo, se yon sèl gwo hash ki fòme ki baze sou pye bwa a Merkle binè. Divizyon sa a pèmèt nou rezoud pwoblèm nan nan paralelize pwosesis done lè kalkile hashes - pou egzanp, ou ka itilize 4-threaded SIMD enstriksyon yo ansanm kalkile hashes nan 4 blòk. Fonksyon hash tradisyonèl SHA-* trete done sekans.

Karakteristik nan BLAKE3:

  • Segondè pèfòmans, BLAKE3 se siyifikativman pi vit pase MD5, SHA-1, SHA-2, SHA-3 ak BLAKE2.
  • Sekirite, ki gen ladan rezistans nan atak elongasyon mesaj SHA-2 sansib a;
  • Disponib nan Rust, optimisé pou SSE2, SSE4.1, AVX2, AVX-512, ak enstriksyon NEON.
  • Asire paralelizasyon kalkil sou nenpòt ki kantite fil ak chanèl SIMD.
  • Posibilite pou ajou ak verifye pwosesis kouran dlo yo;
  • Sèvi ak nan PRF, MAC, KDF, XOF mòd ak kòm yon hash regilye;
  • Yon sèl algorithm pou tout achitekti, rapid sou tou de sistèm x86-64 ak processeur ARM 32-bit.

Diferans prensipal yo ant BLAKE3 ak BLAKE2:

  • Sèvi ak yon estrikti pye bwa binè ki pèmèt paralèl san limit nan kalkil hash.
  • Diminye kantite jij soti nan 10 a 7.
  • Twa mòd operasyon: hachage, hachage ak yon kle (HMAC) ak jenerasyon kle (KDF).
  • Pa gen anlè anplis lè hachage ak yon kle akòz itilizasyon zòn nan te deja okipe pa blòk paramèt kle yo.
  • Mekanis fonksyònman entegre nan fòm yon fonksyon ak yon rezilta pwolonje (XOF, Fonksyon Sòti Extensible), ki pèmèt paralelizasyon ak pwezante (chache).

Sous: opennet.ru

Add nouvo kòmantè