Kriptogrāfiskās jaucējfunkcijas BLAKE3 1.0 atsauces ieviešanas izlaišana

Tika izlaista kriptogrāfijas jaucējfunkcijas BLAKE3 1.0 atsauces ieviešana, kas ir ievērojama ar ļoti augsto jaucējkoda aprēķina veiktspēju, vienlaikus nodrošinot uzticamību SHA-3 līmenī. Jaukšanas ģenerēšanas testā 16 KB failam BLAKE3 ar 256 bitu atslēgu pārspēj SHA3-256 par 17 reizes, SHA-256 par 14 reizes, SHA-512 par 9 reizes, SHA-1 par 6 reizes un BLAKE2b - 5 reizes. Ievērojama plaisa paliek, apstrādājot ļoti lielu datu apjomu, piemēram, BLAKE3 izrādījās 256 reizes ātrāks par SHA-8, aprēķinot jaucēju 1 GB nejaušiem datiem. BLAKE3 atsauces ieviešanas kods ir pieejams C un Rust versijās saskaņā ar dubultā publiskā domēna (CC0) un Apache 2.0 licenci.

Kriptogrāfiskās jaucējfunkcijas BLAKE3 1.0 atsauces ieviešanas izlaišana

Jaukšanas funkcija ir paredzēta tādām lietojumprogrammām kā failu integritātes pārbaude, ziņojumu autentifikācija un datu ģenerēšana kriptogrāfiskiem ciparparakstiem. BLAKE3 nav paredzēts paroļu jaukšanai, jo tā mērķis ir pēc iespējas ātrāk aprēķināt jaucējus (parolēm ieteicams izmantot lēnās jaucējfunkcijas yescrypt, bcrypt, scrypt vai Argon2). Aplūkojamā jaukšanas funkcija ir nejutīga pret jaukto datu lielumu un ir aizsargāta pret uzbrukumiem sadursmes atlasei un priekšattēla atrašanai.

Algoritmu izstrādāja pazīstami kriptogrāfijas eksperti (Džeks O'Konors, Žans Filips Aumassons, Semjuels Nevss, Zooko Vilkokss-O'Hērns) un turpina BLAKE2 algoritma izstrādi un izmanto Bao mehānismu bloku ķēdes koka kodēšanai. . Atšķirībā no BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 piedāvā vienu algoritmu visām platformām, kas nav saistīts ar bitu dziļumu un jaucējvērtību.

Uzlabota veiktspēja tika panākta, samazinot kārtu skaitu no 10 uz 7 un jaukšanas blokus atsevišķi 1 KB gabalos. Pēc veidotāju teiktā, viņi ir atraduši pārliecinošu matemātisko pierādījumu, ka ir iespējams iztikt ar 7, nevis 10, saglabājot tādu pašu uzticamības līmeni (skaidrības labad varam minēt piemēru ar augļu sajaukšanu mikserī - pēc 7 sekundēm augļi jau ir pilnībā sajaukti, un papildu 3 sekundes neietekmēs maisījuma konsistenci). Tomēr daži pētnieki pauž šaubas, uzskatot, ka pat ja pašlaik pietiek ar 7 kārtām, lai cīnītos pret visiem zināmajiem uzbrukumiem hashiem, tad papildu 3 kārtas var būt noderīgas, ja nākotnē tiks atklāti jauni uzbrukumi.

Kas attiecas uz sadalīšanu blokos, BLAKE3 straume tiek sadalīta 1 KB gabalos un katrs fragments tiek sajaukts atsevišķi. Pamatojoties uz gabalu jaucējvērtībām, tiek izveidots viens liels hash, pamatojoties uz bināro Merkles koku. Šis sadalījums ļauj mums atrisināt datu apstrādes paralēlizēšanas problēmu, aprēķinot jaucējvārdus - piemēram, varat izmantot 4-vītņu SIMD instrukcijas, lai vienlaikus aprēķinātu 4 bloku jaucējus. Tradicionālās SHA-* jaucējfunkcijas apstrādā datus secīgi.

BLAKE3 iezīmes:

  • Augsta veiktspēja, BLAKE3 ir ievērojami ātrāks nekā MD5, SHA-1, SHA-2, SHA-3 un BLAKE2.
  • Drošība, tostarp izturība pret ziņojumu pagarināšanas uzbrukumiem, kuriem SHA-2 ir jutīgs;
  • Pieejams Rust, optimizēts SSE2, SSE4.1, AVX2, AVX-512 un NEON instrukcijām.
  • Aprēķinu paralelizācijas nodrošināšana jebkuram vītņu skaitam un SIMD kanāliem.
  • Iespēja pakāpeniski atjaunināt un pārbaudīt straumju apstrādi;
  • Izmantot PRF, MAC, KDF, XOF režīmos un kā parastu hash;
  • Viens algoritms visām arhitektūrām, ātrs gan x86-64 sistēmās, gan 32 bitu ARM procesoros.

Galvenās atšķirības starp BLAKE3 un BLAKE2:

  • Binārā koka struktūras izmantošana, kas pieļauj neierobežotu paralēlismu hash aprēķinos.
  • Kārtu skaita samazināšana no 10 uz 7.
  • Trīs darbības režīmi: jaukšana, jaukšana ar atslēgu (HMAC) un atslēgu ģenerēšana (KDF).
  • Jaukšanas laikā ar atslēgu nav papildu izmaksu, jo tiek izmantots laukums, ko iepriekš aizņēma atslēgu parametru bloks.
  • Iebūvēts darbības mehānisms funkcijas veidā ar paplašinātu rezultātu (XOF, Extendable Output Function), kas ļauj paralēli novietot un pozicionēt (meklēt).

Avots: opennet.ru

Pievieno komentāru