BLAKE3 1.0 Kriptografia Hash Erreferentziaren inplementazioa kaleratu da

BLAKE3 1.0 hash funtzio kriptografikoaren erreferentziazko inplementazioa kaleratu zen, hash kalkuluaren errendimendu oso altuagatik nabarmentzen dena, SHA-3 mailan fidagarritasuna bermatuz. 16 KB-ko fitxategi baterako hash sortzeko proban, 3 biteko gako batekin BLAKE256-k SHA3-256 17 aldiz gainditzen du, SHA-256 14 aldiz, SHA-512 9 aldiz, SHA-1 6 aldiz eta BLAKE2b - 5 aldiz. Hutsune nabarmena geratzen da datu kopuru oso handiak prozesatzen direnean, adibidez, BLAKE3 SHA-256 baino 8 aldiz azkarragoa izan da ausazko 1GB datuen hash bat kalkulatzean. BLAKE3 erreferentziako ezarpen-kodea C eta Rust bertsioetan eskuragarri dago domeinu publiko bikoitzean (CC0) eta Apache 2.0 lizentziapean.

BLAKE3 1.0 Kriptografia Hash Erreferentziaren inplementazioa kaleratu da

Hash funtzioa fitxategien osotasuna egiaztatzeko, mezuen autentifikaziorako eta sinadura digital kriptografikoetarako datuak sortzeko aplikazioetarako diseinatuta dago. BLAKE3 ez dago pasahitzak hash egiteko pentsatuta, hashak ahalik eta azkarren kalkulatzea du helburu (pasahitzetarako, gomendatzen da hash motela yescrypt, bcrypt, scrypt edo Argon2 funtzioak erabiltzea). Kontuan hartutako hash-funtzioa ez da hashed datuen tamainarekiko eta talkaren hautapenaren eta aurreirudien aurkikuntzaren erasoetatik babestuta dago.

Kriptografiako aditu ezagunek (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) garatu zuten algoritmoa eta BLAKE2 algoritmoaren garapenean jarraitzen du eta Bao mekanismoa erabiltzen du bloke-katearen zuhaitza kodetzeko. . BLAKE2 (BLAKE2b, BLAKE2s) ez bezala, BLAKE3-k algoritmo bakarra eskaintzen du plataforma guztietarako, bit-sakonerari eta hash tamainari lotuta ez dagoena.

Errendimendu handiagoa lortu da txanda kopurua 10etik 7ra murriztuz eta blokeak bereizita 1 KB zatitan hashing. Sortzaileen arabera, froga matematiko konbentzigarria aurkitu dute, 7 txandarekin 10 beharrean 7ekin aurrera egitea posible dela fidagarritasun maila bera mantenduz (argitasuna lortzeko, adibide bat jar dezakegu fruta nahastean nahastearekin - 3 segundoren buruan). fruta dagoeneko guztiz nahastuta dago, eta 7 segundo gehiagok ez du nahasketaren koherentzia eragingo). Hala ere, ikertzaile batzuek zalantzak azaltzen dituzte, eta uste dute gaur egun 3 erronda nahikoak badira hash-en aurkako eraso guztiei aurre egiteko, XNUMX txanda gehiago baliagarriak izan daitezkeela etorkizunean eraso berriak identifikatzen badira.

Blokeetan banatzeari dagokionez, BLAKE3-n korrontea 1 KB zatitan banatzen da eta pieza bakoitza hash independentea da. Piezen hashetan oinarrituta, hash handi bat sortzen da Merkle zuhaitz bitarran oinarrituta. Zatiketa honek datuen prozesamenduaren paralelismoaren arazoa konpontzeko aukera ematen digu hashak kalkulatzean - adibidez, 4 hariko SIMD instrukzioak erabil ditzakezu 4 blokeko hashak aldi berean kalkulatzeko. SHA-* hash funtzio tradizionalek datuak sekuentzialki prozesatzen dituzte.

BLAKE3-ren ezaugarriak:

  • Errendimendu handia, BLAKE3 MD5, SHA-1, SHA-2, SHA-3 eta BLAKE2 baino nabarmen azkarragoa da.
  • Segurtasuna, SHA-2 jasaten duten mezuen luzapen-erasoekiko erresistentzia barne;
  • Rust-en eskuragarri, SSE2, SSE4.1, AVX2, AVX-512 eta NEON argibideetarako optimizatuta.
  • Kalkuluen paralelismoa bermatzea edozein hari eta SIMD kanaletan.
  • Korronteen eguneraketa eta prozesamendu inkrementala egiteko aukera;
  • Erabili PRF, MAC, KDF, XOF moduetan eta hash arrunt gisa;
  • Algoritmo bakarra arkitektura guztietarako, azkarra bai x86-64 sistemetan bai 32 biteko ARM prozesadoreetan.

BLAKE3 eta BLAKE2 arteko desberdintasun nagusiak:

  • Hash kalkuluetan paralelismo mugagabea ahalbidetzen duen zuhaitz-egitura bitar baten erabilera.
  • Txanda kopurua 10etik 7ra murriztea.
  • Hiru funtzionamendu-modu: hashing, hashing gako batekin (HMAC) eta gakoak sortzea (KDF).
  • Ez dago gainkostura gehigarririk gako batekin hashingean gako-parametro blokeak aldez aurretik okupatutako eremuaren erabileragatik.
  • Eragiketa-mekanismo integratua, emaitza hedatua duen funtzio baten moduan (XOF, Extendable Output Function), paralelizazioa eta posizionamendua ahalbidetuz (bilatzea).

Iturria: opennet.ru

Gehitu iruzkin berria