Публикувана финалната реализация на алгоритъма , предлагащ криптографска хеш-функция, проектирана за приложения като проверка на целостта на файлове, удостоверяване на съобщения и генериране на данни за цифрови подписи. 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
