BLAKE3 криптограф хэш функц боломжтой бөгөөд энэ нь SHA-10-оос 2 дахин хурдан юм

Алгоритмын эцсийн хэрэгжилт нийтлэгдсэн БЛЭК3, файлын бүрэн бүтэн байдлыг шалгах, мессежийн баталгаажуулалт, тоон гарын үсгийн өгөгдөл үүсгэх зэрэг програмуудад зориулагдсан криптограф хэш функцийг санал болгодог. BLAKE3 нь нууц үгийг хэш болгоход зориулагдаагүй (нууц үгийн хувьд yescrypt, bcrypt, scrypt эсвэл Argon2 ашиглах шаардлагатай), учир нь энэ нь хэшийг аль болох хурдан тооцоолоход чиглэгдэж, мөргөлдөхгүй, хамгаалагдсан байдаг. прототипийг олох мөн хэшлэгдсэн өгөгдлийн хэмжээнд мэдрэмтгий биш. BLAKE3-ийн жишиг хэрэгжилт хэвлэгдсэн Public Domain (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 болсон илүү хурдан 256ГБ санамсаргүй өгөгдлийн хэшийг тооцоолохдоо SHA-8-г 1 дахин нэмэгдүүлнэ.

BLAKE3 криптограф хэш функц боломжтой бөгөөд энэ нь SHA-10-оос 2 дахин хурдан юм

Алгоритмыг алдартай криптографийн мэргэжилтнүүд боловсруулсан (Жак О'Коннор, Жан-Филипп Аумассон, Самуэль Невес, 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

сэтгэгдэл нэмэх