Даступная крыптаграфічная хэш-функцыя BLAKE3, якая ў 10 разоў хутчэй SHA-2

Апублікавана фінальная рэалізацыя алгарытму ПЛІНКА3, які прапануе крыптаграфічную хэш-функцыю, разлічаную на такія прымянення, як праверка цэласнасці файлаў, аўтэнтыфікацыя паведамленняў і фарміраванне дадзеных для лічбавых подпісаў. 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ГБ выпадковых дадзеных.

Даступная крыптаграфічная хэш-функцыя BLAKE3, якая ў 10 разоў хутчэй SHA-2

Алгарытм распрацаваны вядомымі спецыялістамі па крыптаграфіі (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) і працягвае развіццё алгарытму ПЛІНКА2 і прымяняе для кадавання дрэва ланцужкоў блокаў механізм Бао. У адрозненне ад 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

Дадаць каментар