Налична криптографска хеш функция BLAKE3, която е 10 пъти по-бърза от SHA-2

Окончателната реализация на алгоритъма е публикувана БЛЕЙК 3, който предлага криптографска хеш функция, предназначена за приложения като проверка на целостта на файловете, удостоверяване на съобщения и генериране на данни за цифрови подписи. BLAKE3 не е предназначен за хеширане на пароли (за пароли трябва да използвате yescrypt, bcrypt, scrypt или Argon2), тъй като е насочен към изчисляване на хешовете възможно най-бързо с гаранция за липса на сблъсъци, защита срещу намиране на прототипа и не е чувствителен към размера на хешираните данни. Референтна реализация на BLAKE3 публикувано Двоен лиценз под Public Domain (CC0) и Apache 2.0.

Ключовата разлика на новата хеш функция е много високата производителност на хеш изчисленията, като същевременно се поддържа надеждност на ниво SHA-3. По подразбиране полученият хеш размер в BLAKE3 е 32 байта (256 бита), но може да бъде разширен до произволни стойности. В тест за генериране на хеш за файл от 16 KB BLAKE3 превъзхожда SHA3-256 с 15 пъти, SHA-256 с 12 пъти, SHA-512 с 8 пъти, SHA-1 с 6 пъти и BLAKE2b с 4 пъти. Остава значителна празнина при обработката на много големи количества данни, например BLAKE3 се оказа по-бързо SHA-256 с 8 пъти при изчисляване на хеш за 1 GB произволни данни.

Налична криптографска хеш функция BLAKE3, която е 10 пъти по-бърза от SHA-2

Алгоритъмът е разработен от известни експерти по криптография (Джак О'Конър, Жан-Филип Омасон, Самуел Невес, Zooko Wilcox-O'Hearn) и продължава да развива алгоритъма БЛЕЙК 2 и използва механизъм за кодиране на дървото на блоковата верига Торба. За разлика от BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 предлага единичен алгоритъм за всички платформи, който не е обвързан с битовата дълбочина и хеш размера.

Повишената производителност беше постигната чрез намаляване на броя на кръговете от 10 на 7 и отделно хеширане на блокове в 1 KB части. Според създателите, те намериха убедително доказателства, че можете да минете със 7 кръга вместо с 10, като запазите същото ниво на надеждност (за по-голяма яснота можете да дадете пример със смесване на плодове в миксер - след 7 секунди плодовете вече са напълно смесени и допълнителни 3 секунди ще не влияе на консистенцията на сместа). Някои изследователи обаче изразяват съмнения, вярвайки, че дори ако в момента 7 кръга са достатъчни, за да издържат на всички известни атаки срещу хешове, тогава допълнителни 3 кръга могат да бъдат полезни, ако в бъдеще бъдат идентифицирани нови атаки.

Що се отнася до разделянето на блокове, в BLAKE3 потокът е разделен на части от 1 KB и всяка част се хешира независимо. Въз основа на хешовете на парчетата на основата двоично дърво Меркъл образува се един голям хеш. Това разделение ни позволява да решим проблема с паралелизиране на обработката на данни при изчисляване на хеш - например, можете да използвате 4-нишкови SIMD инструкции за едновременно изчисляване на хешовете на 4 блока. Традиционните SHA-* хеш функции обработват данните последователно.

Характеристики на BLAKE3:

  • Висока производителност;
  • Безопасност, включително устойчивост на атака с удължаване на съобщението, към които SHA-2 е податлив;
  • Осигуряване на паралелизиране на изчисленията на произволен брой нишки и SIMD канали;
  • Възможност за постепенна актуализация и проверена обработка на потоци;
  • Използвайте в режими PRF, MAC, KDF, XOF и като обикновен хеш;
  • Един алгоритъм за всички архитектури, бърз както на x86-64 системи, така и на 32-битови ARM процесори.

Източник: opennet.ru

Добавяне на нов коментар