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

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

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

Алгоритъмът е разработен от известни специалисти по криптография (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:

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

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

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