Galima BLAKE3 kriptografinė maišos funkcija, kuri yra 10 kartų greitesnė nei SHA-2

Paskelbtas galutinis algoritmo įgyvendinimas BLAKE3, kuri siūlo kriptografinę maišos funkciją, skirtą tokioms programoms kaip failų vientisumo tikrinimas, pranešimų autentifikavimas ir duomenų generavimas skaitmeniniams parašams. BLAKE3 nėra skirtas slaptažodžiams maišyti (slaptažodžiams reikia naudoti yescrypt, bcrypt, scrypt arba Argon2), nes jis skirtas kuo greičiau apskaičiuoti maišą, garantuojant, kad nebus susidūrimų, apsauga nuo prototipo radimas ir nėra jautrūs maišos duomenų dydžiui. BLAKE3 įgyvendinimo nuoroda paskelbta Dviguba licencijuota pagal Public Domain (CC0) ir Apache 2.0.

Pagrindinis naujosios maišos funkcijos skirtumas yra labai didelis maišos skaičiavimų našumas, išlaikant patikimumą SHA-3 lygiu. Pagal numatytuosius nustatymus gautas maišos dydis BLAKE3 yra 32 baitai (256 bitai), tačiau jį galima išplėsti iki savavališkų reikšmių. Atliekant maišos generavimo testą 16 KB faile, BLAKE3 3 kartų lenkia SHA256-15, 256 kartų SHA-12, 512 kartus SHA-8, 1 kartus SHA-6 ir 2 kartus BLAKE4b. Didelė spraga išlieka apdorojant labai didelius duomenų kiekius, pavyzdžiui, pasirodė BLAKE3 greičiau SHA-256 8 kartus skaičiuojant 1 GB atsitiktinių duomenų maišą.

Galima BLAKE3 kriptografinė maišos funkcija, kuri yra 10 kartų greitesnė nei SHA-2

Algoritmą sukūrė garsūs kriptografijos ekspertai (Džekas O'Connoras, Jeanas-Philippe'as Aumassonas, Samuelis Nevesas, Zooko Wilcox-O'Hearn) ir toliau tobulina algoritmą BLAKE2 ir naudoja mechanizmą blokų grandinės medžiui koduoti Bao. Skirtingai nuo BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 siūlo vieną algoritmą visoms platformoms, nesusietą su bitų gyliu ir maišos dydžiu.

Padidintas našumas buvo pasiektas sumažinus raundų skaičių nuo 10 iki 7 ir atskirai maišant blokus į 1 KB gabalus. Pasak kūrėjų, jie rado įtikinamą įrodymas, kad jūs galite apsieiti su 7 raundais vietoj 10 išlaikant tą patį patikimumo lygį (aiškumo dėlei galite pateikti pavyzdį su vaisių maišymu mikseriu - po 7 sekundžių vaisiai jau visiškai susimaišę ir dar 3 sekundes bus neturi įtakos mišinio konsistencijai). Tačiau kai kurie tyrėjai išreiškia abejones, manydami, kad net jei šiuo metu pakanka 7 šovinių, kad atlaikytų visas žinomas maišos atakas, tada papildomi 3 šoviniai gali būti naudingi, jei ateityje bus nustatyta naujų atakų.

Kalbant apie padalijimą į blokus, BLAKE3 srautas yra padalintas į 1 KB dalis ir kiekviena dalis yra maišoma atskirai. Remiantis gabalų maišais ant pagrindo dvejetainis merkle medis susidaro viena didelė maiša. Šis padalijimas leidžia išspręsti duomenų apdorojimo lygiagretinimo problemą skaičiuojant maišą – pavyzdžiui, galite naudoti 4 gijų SIMD instrukcijas, kad vienu metu apskaičiuotumėte 4 blokų maišą. Tradicinės SHA-* maišos funkcijos duomenis apdoroja nuosekliai.

BLAKE3 savybės:

  • Didelis našumas;
  • Saugumas, įskaitant atsparumą žinutės pailgėjimo ataka, kuriam jautrus SHA-2;
  • Skaičiavimų lygiagretumo užtikrinimas bet kokiame gijų ir SIMD kanalų skaičiuje;
  • Galimybė laipsniškai atnaujinti ir patikrinti srautų apdorojimą;
  • Naudoti PRF, MAC, KDF, XOF režimais ir kaip įprasta maiša;
  • Vienas algoritmas visoms architektūroms, greitas tiek x86-64 sistemose, tiek 32 bitų ARM procesoriuose.

Šaltinis: opennet.ru

Добавить комментарий