Издаването на еталонна реализация на криптографската хеш-функция BLAKE3 1.0

Състоя се пускането на референтна реализация на криптографската хеш-функция BLAKE3 1.0, забележителна с изключително високата си производителност при изчисляване на хеш и осигуряване на надеждност на ниво SHA-3. В тест за генериране на хеш за файл с размер 16 КБ, BLAKE3 с 256-битов ключ надминава SHA3-256 с 17 пъти, SHA-256 с 14 пъти, SHA-512 с 9 пъти, SHA-1 с 6 пъти, а BLAKE2b с 5 пъти. Значителната разлика остава и при обработката на много големи обеми данни, например, BLAKE3 е по-бърз от SHA-256 с 8 пъти при изчисляване на хеш за 1 ГБ случайни данни. Кодът на референтната реализация на BLAKE3 е наличен на езици C и Rust под двойна лицензия — обществено достояние (CC0) и Apache 2.0.

Издаването на еталонна реализация на криптографската хеш-функция BLAKE3 1.0

Хеш-функцията е предназначена за употреба, като проверка на целостта на файловете, автентикация на съобщения и генериране на данни за криптографски цифрови подписи. BLAKE3 не е предназначена за хеширане на пароли, тъй като е насочена към максимално бързо изчисление на хешове (за пароли се препоръчва да се използват бавни хеш-функции като yescrypt, bcrypt, scrypt или Argon2). Обсъжданата хеш-функция е нечувствителна към размера на хешираните данни и е защитена от атаки за подбор на колизии и намиране на преобразуване.

Алгоритъмът е разработен от известни специалисти в криптографията (Jack O’Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O’Hearn) и продължава развитието на алгоритъма BLAKE2, прилага механизма Bao за кодиране на дървета от блокови вериги. В отличие от BLAKE2 (BLAKE2b, BLAKE2s), в BLAKE3 е предложен единен алгоритъм за всички платформи, независим от разрядността и размера на хеша.

Увеличението на производителността бе постигнато чрез намаляване на броя на цикли от 10 на 7 и отделно хеширане на блоковете с парчета от 1 КБ. Според създателите, те са намерили убедително математическо доказателство, че 7 цикъла са достатъчни вместо 10, при запазване на същото ниво на надеждност (за илюстрация може да се даде пример с разбиването на плодове в миксер — след 7 секунди плодовете вече са напълно смесени, и допълнителните 3 секунди нямат да се отразят на консистенцията на сместа). Въпреки това, някои изследователи изразяват съмнение, като смятат, че дори ако в момента 7 цикъла са достатъчни за противодействие на всички известни атаки на хешове, допълнителните 3 цикъла могат да се окажат полезни в случай на откритие на нови атаки в бъдеще.

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

Особености на BLAKE3:

  • Висока производителност, BLAKE3 е значително по-бърз от MD5, SHA-1, SHA-2, SHA-3 и BLAKE2.
  • Сигурност, включително устойчивост на атаки с удължаване на съобщението, на които е подложен SHA-2;
  • Налични версии на Rust, оптимизирани за използване на инструкции SSE2, SSE4.1, AVX2, AVX-512 и NEON.
  • Осигурява паралелизация на изчисленията на произволен брой потоци и SIMD канали.
  • Възможност за инкрементално обновление и верифицирана обработка на потоци;
  • Използване в режими PRF, MAC, KDF, XOF и като обикновен хеш;
  • Единен алгоритъм за всички архитектури, бърз както в системи x86-64, така и на 32-битови ARM процесори.

Основните различия между BLAKE3 и BLAKE2:

  • Използване на бинарна дървовидна структура, която позволява неограничен паралелизъм при изчисляването на хеша.
  • Намаляване на броя на цикли от 10 на 7.
  • Три режима на работа: хеширане, хеширане с ключ (HMAC) и генериране на ключ (KDF).
  • Отсъствие на допълнителни разходи при хеширане с ключ, благодарение на използването на областта, която преди е била заета от блока на параметрите на ключа.
  • Вграден механизъм за работа под формата на функция с удължаема изходна стойност (XOF, Extendable Output Function), допускаща паралелизиране и позициониране (seek).

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

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster