BLAKE3 1.0 kriptografik xesh-funktsiyasining mos yozuvlar ilovasining chiqarilishi

BLAKE3 1.0 kriptografik xesh-funktsiyasining mos yozuvlar ilovasi chiqarildi, bu SHA-3 darajasida ishonchlilikni ta'minlagan holda juda yuqori xeshni hisoblash samaradorligi bilan ajralib turadi. 16 KB fayl uchun xeshni yaratish testida 3 bitli kalitga ega BLAKE256 SHA3-256 dan 17 marta, SHA-256 dan 14 marta, SHA-512 dan 9 marta, SHA-1 dan 6 marta va BLAKE2b dan oshib ketadi. 5 marta. Juda katta hajmdagi ma'lumotlarni qayta ishlashda sezilarli bo'shliq qoladi, masalan, 3 Gb tasodifiy ma'lumotlar uchun xeshni hisoblashda BLAKE256 SHA-8 ga qaraganda 1 baravar tezroq bo'lib chiqdi. BLAKE3 ma'lumotnomasini amalga oshirish kodi C va Rust versiyalarida ikkita umumiy domen (CC0) va Apache 2.0 litsenziyasi ostida mavjud.

BLAKE3 1.0 kriptografik xesh-funktsiyasining mos yozuvlar ilovasining chiqarilishi

Xesh funksiyasi fayllar yaxlitligini tekshirish, xabar autentifikatsiyasi va kriptografik raqamli imzolar uchun maʼlumotlarni yaratish kabi ilovalar uchun moʻljallangan. BLAKE3 parollarni xeshlash uchun mo‘ljallanmagan, chunki u xeshlarni iloji boricha tezroq hisoblashni maqsad qilgan (parollar uchun yescrypt, bcrypt, scrypt yoki Argon2 sekin xesh funksiyalaridan foydalanish tavsiya etiladi). Ko'rib chiqilayotgan xesh funktsiyasi xeshlangan ma'lumotlarning o'lchamiga befarq bo'lib, to'qnashuvni tanlash va oldindan tasvirni topishga hujumlardan himoyalangan.

Algoritm taniqli kriptografiya mutaxassislari (Jek O'Konnor, Jan-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) tomonidan ishlab chiqilgan va BLAKE2 algoritmini ishlab chiqishni davom ettirmoqda va blok zanjiri daraxtini kodlash uchun Bao mexanizmidan foydalanadi. . BLAKE2 (BLAKE2b, BLAKE2s) dan farqli o'laroq, BLAKE3 barcha platformalar uchun bit chuqurligi va xesh hajmiga bog'liq bo'lmagan yagona algoritmni taklif qiladi.

Ko'tarilgan samaradorlikka turlar sonini 10 dan 7 gacha kamaytirish va 1 KB bo'laklarga alohida bloklarni xeshlash orqali erishildi. Yaratuvchilarning so‘zlariga ko‘ra, ular ishonchlilik darajasini bir xil darajada saqlagan holda 7 ta o‘rniga 10 ta aylanish bilan (aniqlik uchun mevani mikserda aralashtirish misolini keltirishimiz mumkin – 7 soniyadan so‘ng) ishonchli matematik dalil topdilar. meva allaqachon to'liq aralashtiriladi va qo'shimcha 3 soniya aralashmaning mustahkamligiga ta'sir qilmaydi). Biroq, ba'zi tadqiqotchilar shubhalarni izhor qiladilar, agar hozirda xeshlarga ma'lum bo'lgan barcha hujumlarga qarshi turish uchun 7 raund etarli bo'lsa ham, kelajakda yangi hujumlar aniqlansa, qo'shimcha 3 raund foydali bo'lishi mumkin.

Bloklarga bo'linishga kelsak, BLAKE3 da oqim 1 KB bo'laklarga bo'linadi va har bir qism mustaqil ravishda xeshlanadi. Parchalarning xeshlari asosida ikkilik Merkle daraxti asosida bitta katta xesh hosil bo'ladi. Ushbu bo'linish bizga xeshlarni hisoblashda ma'lumotlarni qayta ishlashni parallellashtirish muammosini hal qilish imkonini beradi - masalan, siz 4 ta blokli xeshlarni bir vaqtning o'zida hisoblash uchun 4 tishli SIMD ko'rsatmalaridan foydalanishingiz mumkin. An'anaviy SHA-* xesh funksiyalari ma'lumotlarni ketma-ket qayta ishlaydi.

BLAKE3 xususiyatlari:

  • Yuqori unumdorlik, BLAKE3 MD5, SHA-1, SHA-2, SHA-3 va BLAKE2 dan sezilarli darajada tezroq.
  • Xavfsizlik, shu jumladan SHA-2 sezgir bo'lgan xabarlarni uzaytirish hujumlariga qarshilik;
  • SSE2, SSE4.1, AVX2, AVX-512 va NEON koʻrsatmalari uchun optimallashtirilgan Rust-da mavjud.
  • Har qanday miqdordagi iplar va SIMD kanallari bo'yicha hisob-kitoblarni parallellashtirishni ta'minlash.
  • Oqimlarni bosqichma-bosqich yangilash va tasdiqlangan qayta ishlash imkoniyati;
  • PRF, MAC, KDF, XOF rejimlarida va oddiy xesh sifatida foydalaning;
  • X86-64 tizimlarida ham, 32-bitli ARM protsessorlarida ham tezkor barcha arxitekturalar uchun yagona algoritm.

BLAKE3 va BLAKE2 o'rtasidagi asosiy farqlar:

  • Xesh hisoblarida cheksiz parallellik imkonini beruvchi ikkilik daraxt strukturasidan foydalanish.
  • Turlar sonini 10 dan 7 gacha qisqartirish.
  • Uchta ish rejimi: xeshlash, kalit bilan xeshlash (HMAC) va kalit yaratish (KDF).
  • Ilgari asosiy parametrlar bloki egallagan maydondan foydalanish tufayli kalit bilan xeshlashda qo'shimcha xarajatlar yo'q.
  • Parallellashtirish va joylashishni aniqlash (izlash) imkonini beruvchi kengaytirilgan natija (XOF, Extendable Output Function) ko'rinishidagi o'rnatilgan operatsion mexanizm.

Manba: opennet.ru

a Izoh qo'shish