A tọhapụrụ ntinye ntinye aka nke ọrụ hash cryptographic BLAKE3 1.0, nke ama ama maka ịrụ ọrụ mgbako hash dị elu ma na-achọpụta ntụkwasị obi na ọkwa SHA-3. N'ime ule hash ọgbọ maka faịlụ 16 KB, BLAKE3 nwere igodo 256-bit pụtara SHA3-256 site na ugboro 17, SHA-256 site na ugboro 14, SHA-512 site na ugboro 9, SHA-1 site na ugboro 6, na BLAKE2b - ugboro 5. Ọdịiche dị ịrịba ama na-adị mgbe a na-ahazi nnukwu data, dịka ọmụmaatụ, BLAKE3 tụgharịrị bụrụ ugboro 256 ngwa ngwa karịa SHA-8 mgbe ị na-agbakọ hash maka 1GB nke data random. Koodu mmejuputa iwu ntụaka BLAKE3 dị na ụdị C na Rust n'okpuru ngalaba ọha mmadụ abụọ (CC0) na ikike Apache 2.0.

Emebere ọrụ hash maka ngwa dị ka ịlele iguzosi ike n'ezi ihe faịlụ, nyocha ozi, na iwepụta data maka mbinye aka dijitalụ cryptographic. Ebubeghị BLAKE3 maka okwuntughe hashing, n'ihi na ọ na-achọ ịgbakọ hashes ngwa ngwa o kwere mee (maka okwuntughe, a na-atụ aro ka iji ọrụ hash nwayọ nwayọ, yescrypt, bcrypt, scrypt ma ọ bụ Argon2). Ọrụ hash a na-atụle enweghị mmetụta na nha data hashed ma chebe ya pụọ na mbuso agha na nhọrọ nkukota na nchọta ihe mbụ.
Emepụtara algọridim ahụ site n'aka ndị ọkachamara cryptography ama ama (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) wee na-aga n'ihu na mmepe nke BLAKE2 algọridim wee jiri usoro Bao tinye koodu nchichi osisi. . N'adịghị ka BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 na-enye otu algọridim maka nyiwe niile, ejikọtaghị ya na omimi bit na nha hash.
Enwetara arụmọrụ abawanyela site na ibelata ọnụ ọgụgụ okirikiri site na 10 ruo 7 na hashing blocks iche na 1 KB iberibe. Dị ka ndị na-emepụta si kwuo, ha achọtawo ihe àmà mgbakọ na mwepụ na-ekwenye ekwenye na ọ ga-ekwe omume ịnweta site na 7 agba karịa 10 mgbe ị na-ejigide otu ọkwa nke ntụkwasị obi (maka idoanya, anyị nwere ike inye ihe atụ na ịgwakọta mkpụrụ osisi na mixer - mgbe 7 sekọnd. A na-agwakọta mkpụrụ osisi ahụ kpamkpam, na 3 sekọnd ọzọ agaghị emetụta nchikota ngwakọta). Otú ọ dị, ụfọdụ ndị na-eme nchọpụta na-egosipụta obi abụọ, na-ekwere na ọ bụrụgodị na oge 7 zuru ezu ugbu a iji gbochie mwakpo niile a maara na hashes, mgbe ahụ ọzọ 3 agba nwere ike ịba uru ma ọ bụrụ na achọpụtara mwakpo ọhụrụ n'ọdịnihu.
Banyere ikewa n'ime ngọngọ, na BLAKE3, a na-ekewa iyi ahụ n'ime iberibe 1 KB na ibe ọ bụla na-agbapụ n'onwe ya. Dabere na hashes nke iberibe, a na-etolite otu nnukwu hash dabere na ọnụọgụ abụọ nke Merkle. Nkewa a na-enye anyị ohere idozi nsogbu nke ịmekọrịta data nhazi mgbe ị na-agbakọ hashes - dịka ọmụmaatụ, ịnwere ike iji ntuziaka SIMD 4-threaded iji gbakọọ hashes nke 4 blocks n'otu oge. Omenala SHA-* hash na-arụ ọrụ data n'usoro.
Njirimara nke BLAKE3:
- Ọrụ dị elu, BLAKE3 dị ngwa ngwa karịa MD5, SHA-1, SHA-2, SHA-3 na BLAKE2.
- Nchekwa, gụnyere iguzogide mwakpo elongation ozi nke SHA-2 nwere ike ịdaba;
- Dị na Rust, kachasị maka SSE2, SSE4.1, AVX2, AVX-512, na ntuziaka NEON.
- N'ịhụ na myirịta nke mgbako na ọnụọgụ eri ọ bụla na ọwa SIMD.
- Onwere ike nwelite nkwalite na nhazi nke iyi;
- Jiri na ụdị PRF, MAC, KDF, XOF yana dị ka hash oge niile;
- Otu algọridim maka ụlọ ọrụ niile, ngwa ngwa na sistemụ x86-64 yana ndị nrụpụta 32-bit ARM.
Isi ihe dị iche n'etiti BLAKE3 na BLAKE2:
- Iji nhazi osisi ọnụọgụ abụọ nke na-enye ohere na-enweghị njedebe na ngụkọ hash.
- Na-ebelata ọnụ ọgụgụ nke agba site na 10 ruo 7.
- Ụdị ọrụ atọ: hashing, hashing na igodo (HMAC) na ọgbọ igodo (KDF).
- Enweghị ego n'elu ọzọ mgbe ejiri igodo na-akụ ya n'ihi iji mpaghara nke igodo igodo ejiri na mbụ.
- Ejiri arụ ọrụ arụ ọrụ n'ụdị ọrụ nwere nsonaazụ gbatịrị agbatị (XOF, Extendable Extendable Extendable Extendable Extendable Extendable Extendable Extendable Extendable Extendable Extendable Extendable Extendable Extendable Extendable Extendable Extendable Extendition), na-enye ohere ka myirịta na ọnọdụ (ịchọ).
isi: opennet.ru
