Rilis implementasi referensi fungsi hash kriptografi BLAKE3 1.0

Implementasi referensi fungsi hash kriptografis BLAKE3 1.0 dirilis, misuwur amarga kinerja pitungan hash sing dhuwur banget nalika njamin linuwih ing tingkat SHA-3. Ing tes generasi hash kanggo file 16 KB, BLAKE3 kanthi tombol 256-bit ngluwihi SHA3-256 kaping 17, SHA-256 kaping 14, SHA-512 kaping 9, SHA-1 kaping 6, lan BLAKE2b - 5 kaping. Kesenjangan sing signifikan tetep nalika ngolah data sing akeh banget, contone, BLAKE3 dadi 256 kaping luwih cepet tinimbang SHA-8 nalika ngetung hash kanggo 1GB data acak. Kode implementasi referensi BLAKE3 kasedhiya ing versi C lan Rust ing domain umum dual (CC0) lan lisensi Apache 2.0.

Rilis implementasi referensi fungsi hash kriptografi BLAKE3 1.0

Fungsi hash dirancang kanggo aplikasi kayata mriksa integritas file, otentikasi pesen, lan ngasilake data kanggo tandha digital kriptografi. BLAKE3 ora dimaksudakΓ© kanggo hashing sandhi, minangka yakuwi kanggo ngetung hash minangka cepet sabisa (kanggo sandhi, dianjurake kanggo nggunakake fungsi hash alon yescrypt, bcrypt, scrypt utawa Argon2). Fungsi hash sing dianggep ora sensitif karo ukuran data sing digesek lan dilindhungi saka serangan ing pilihan tabrakan lan temuan pragambar.

Algoritma iki dikembangake dening ahli kriptografi sing kondhang (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) lan nerusake pangembangan algoritma BLAKE2 lan nggunakake mekanisme Bao kanggo ngode wit rantai blok. . Boten kados BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 nawakake algoritma siji kanggo kabeh platform, ora disambungake menyang ambane dicokot lan ukuran hash.

Peningkatan kinerja digayuh kanthi nyuda jumlah babak saka 10 dadi 7 lan blokir hashing kanthi kapisah ing potongan 1 KB. Miturut pangripta, dheweke nemokake bukti matematika sing yakin manawa bisa ditindakake kanthi 7 babak tinimbang 10 nalika njaga tingkat linuwih sing padha (kanggo gamblang, kita bisa menehi conto kanthi nyampur woh ing mixer - sawise 7 detik. woh wis rampung dicampur, lan tambahan 3 detik ora mengaruhi konsistensi campuran). Nanging, sawetara peneliti nyatakake keraguan, percaya yen sanajan 7 babak saiki cukup kanggo nglawan kabeh serangan sing dikenal ing hash, banjur tambahan 3 babak bisa uga migunani yen serangan anyar diidentifikasi ing mangsa ngarep.

Minangka kanggo dibagi dadi pamblokiran, ing BLAKE3 stream dipΓ©rang dadi 1 bΓͺsik KB lan saben Piece wis hashed independen. Adhedhasar hash saka potongan, siji hash gedhe dibentuk adhedhasar wit Merkle binar. Divisi iki ngidini kita ngatasi masalah paralelisasi pangolahan data nalika ngitung hash - contone, sampeyan bisa nggunakake instruksi SIMD 4-threaded kanggo ngetung hash 4 blok bebarengan. Fungsi hash SHA-* tradisional ngolah data kanthi urut.

Fitur BLAKE3:

  • Kinerja dhuwur, BLAKE3 luwih cepet tinimbang MD5, SHA-1, SHA-2, SHA-3 lan BLAKE2.
  • Keamanan, kalebu resistance kanggo serangan elongation pesen sing SHA-2 rentan;
  • Kasedhiya ing Rust, dioptimalake kanggo instruksi SSE2, SSE4.1, AVX2, AVX-512, lan NEON.
  • Mesthekake parallelization saka petungan ing nomer Utas lan saluran SIMD.
  • Kamungkinan nganyari tambahan lan pangolahan aliran sing diverifikasi;
  • Gunakake ing mode PRF, MAC, KDF, XOF lan minangka hash biasa;
  • Algoritma tunggal kanggo kabeh arsitektur, cepet ing sistem x86-64 lan prosesor ARM 32-bit.

Bedane utama antarane BLAKE3 lan BLAKE2:

  • Panganggone struktur wit binar sing ngidini paralelisme tanpa wates ing petungan hash.
  • Ngurangi jumlah babak saka 10 dadi 7.
  • Telung mode operasi: hashing, hashing with a key (HMAC) lan key generation (KDF).
  • Ora ana overhead tambahan nalika hashing nganggo tombol amarga panggunaan area sing sadurunge dikuwasani dening blok parameter kunci.
  • Mekanisme operasi sing dibangun ing wangun fungsi kanthi asil lengkap (XOF, Fungsi Output Extendable), ngidini paralelisasi lan posisi (golek).

Source: opennet.ru

Add a comment