Апублікавана фінальная рэалізацыя алгарытму , які прапануе крыптаграфічную хэш-функцыю, разлічаную на такія прымянення, як праверка цэласнасці файлаў, аўтэнтыфікацыя паведамленняў і фарміраванне дадзеных для лічбавых подпісаў. BLAKE3 не прызначана для хэшавання пароляў (для пароляў трэба выкарыстоўваць yescrypt, bcrypt, scrypt ці Argon2), бо нацэлена на максімальна хуткае вылічэнне хэшаў з гарантыяй адсутнасці калізій, абаронай ад і не адчувальнасцю да памеру хэшаваных дадзеных. Эталонная рэалізацыя BLAKE3 пад падвойны ліцэнзіяй – грамадскі здабытак (CC0) і Apache 2.0.
Ключавым адрозненнем новай хэш-функцыі з'яўляецца вельмі высокая прадукцыйнасць вылічэнні хэша пры захаванні надзейнасці на ўзроўні SHA-3. Па змаўчанні памер выніковага хэша ў BLAKE3 складае 32 байта (256 біт), але ён можа быць пашыраны да адвольных значэнняў. У цесцю на генерацыю хэша для файла, памерам 16 КБ, BLAKE3 апярэджвае SHA3-256 у 15 разоў, SHA-256 – у 12 разоў, SHA-512 – у 8 разоў, SHA-1 – у 6 разоў, а BLAKE2b – у 4 разы. Значны адрыў захоўваецца і пры апрацоўцы вельмі вялікіх аб'ёмаў дадзеных, напрыклад, BLAKE3 аказаўся SHA-256 у 8 разоў пры вылічэнні хеша для 1ГБ выпадковых дадзеных.
Алгарытм распрацаваны вядомымі спецыялістамі па крыптаграфіі (, , , ) і працягвае развіццё алгарытму і прымяняе для кадавання дрэва ланцужкоў блокаў механізм . У адрозненне ад BLAKE2 (BLAKE2b, BLAKE2s), у BLAKE3 для ўсіх платформаў прапанаваны адзіны алгарытм, не прывязаны да разраднасці і памеру хэша.
Падвышэнні прадукцыйнасці атрымалася дамагчыся дзякуючы скарачэнню ліку раўндаў з 10 да 7 і паасобнаму хэшаванню блокаў кавалачкамі па 1 Кб. Па заяве стваральнікаў, яны знайшлі пераканаўчае , Што можна абыйсціся 7 раўндамі замест 10 пры захаванні таго ж ўзроўню надзейнасці (для нагляднасці можна прывесці прыклад з мяшаннем садавіны ў міксеры - праз 7 секунд садавіна ўжо цалкам перамяшаныя і дадатковыя 3 секунды не адаб'юцца на кансістэнцыі сумесі). Пры гэтым некаторыя даследнікі выказваюць сумнеў, мяркуючы, што нават калі ў цяперашні час 7 раўндаў досыць для супрацьстаянняў усім вядомым нападам на хэшы, то дадатковыя 3 раўнда могуць апынуцца карысныя ў выпадку выяўлення новых нападаў у будучыні.
Што пампуецца падзелы на блокі, то ў BLAKE3 струмень разбіваецца на кавалачкі па 1 Кб і кожны кавалачак хэшуецца незалежна. На аснове хэшаў кавалачкаў на базе фармуецца адзін вялікі хэш. Указаны падзел дазваляе вырашыць праблему з распаралельваннем апрацоўкі дадзеных пры вылічэнні хэша — напрыклад, можна выкарыстоўваць 4-струменевыя SIMD-інструкцыі для адначасовага вылічэнні хэшаў 4 блокаў. Традыцыйныя хэш-функцыі SHA-* апрацоўваюць дадзеныя паслядоўна.
Асаблівасці BLAKE3:
- Высокая прадукцыйнасць;
- Бяспека, у тым ліку ўстойлівасць да , якой схільны SHA-2;
- Забеспячэнне распаралельвання вылічэнняў на любы лік струменяў і SIMD-каналаў;
- Магчымасць інкрыментальнага абнаўлення і верыфікаванай апрацоўкі патокаў;
- Ужыванне ў рэжымах PRF, MAC, KDF, XOF і як звычайны хэш;
- Адзіны алгарытм для ўсіх архітэктур, хуткі як на сістэмах x86-64, так і на 32-разрадных працэсарах ARM.
Крыніца: opennet.ru
