Открыть сервис

BLAKE2

BLAKE2 — это семейство криптографических хеш-функций, созданное как более быстрая и безопасная альтернатива широко распространённым алгоритмам MD5, SHA-1 и SHA-2. Разработанная в 2012 году группой криптографов под руководством Жана-Филиппа Омассона (Jean-Philippe Aumasson), Самуэля Невеса (Samuel Neves), Зуко Уилкокса-О’Хирна (Zooko Wilcox-O’Hearn) и Кристиана Винтерхальтера (Christian Winnerlein), функция BLAKE2 основана на финалисте конкурса SHA-3 — алгоритме BLAKE, но оптимизирована для высокой производительности на современных процессорах без снижения криптостойкости. BLAKE2 не является стандартом, утверждённым государственными органами (в отличие от SHA-3 или SHA-2), но широко применяется в программном обеспечении, криптовалютах и протоколах благодаря своей скорости и надёжности.

История и предпосылки создания

К середине 2000-х годов стало очевидно, что алгоритмы семейства SHA-1 и MD5 имеют серьёзные уязвимости. К 2005 году были найдены коллизии для SHA-1, а MD5 был полностью скомпрометирован. Национальный институт стандартов и технологий США (NIST) объявил конкурс на новый стандарт хеширования SHA-3, который завершился в 2012 году победой алгоритма Keccak. Однако одним из пяти финалистов конкурса был алгоритм BLAKE, созданный той же командой, что позже разработала BLAKE2. Несмотря на то, что BLAKE не победил, он получил признание за свою криптографическую надёжность и элегантную конструкцию.

После завершения конкурса разработчики BLAKE решили создать его практическую модификацию, ориентированную на повседневное использование. Основной целью было устранение недостатков оригинального BLAKE, который был относительно медленным на некоторых платформах из-за необходимости выполнять большое количество раундов. В результате в 2012 году была представлена спецификация BLAKE2. В отличие от BLAKE, новая функция предлагала меньшее количество раундов (10 вместо 14 для 32-битной версии и 12 вместо 16 для 64-битной), что значительно ускорило вычисления без потери безопасности.

Архитектура и принцип работы

BLAKE2, как и его предшественник, основана на конструкции «губка» (sponge construction) в сочетании с HAIFA-структурой (HAsh Iterative FrAmework). Однако внутренняя логика использует так называемую «сжимающую функцию» (compression function), которая обрабатывает блоки данных фиксированного размера. Основным строительным блоком является функция G, которая применяется к 128-битным словам состояния и использует операции сложения, XOR и циклического сдвига. Эта функция не имеет обратимых свойств, что затрудняет нахождение коллизий.

Ключевое отличие BLAKE2 от SHA-2 заключается в использовании «шифрования с ключом» (keyed hashing) и режима «деревьев» (tree hashing) без дополнительных накладных расходов. Алгоритм может работать как обычная хеш-функция, так и как MAC (Message Authentication Code) — для этого в начальное состояние загружается секретный ключ. Это делает BLAKE2 удобной для построения протоколов аутентификации.

Параметры и варианты

BLAKE2 имеет два основных варианта, различающихся разрядностью:

Кроме того, существует специализированный вариант BLAKE2sp и BLAKE2bp — параллельные версии, которые используют многопоточность для ускорения хеширования больших объёмов данных на многоядерных процессорах. Они разбивают входные данные на части, обрабатываемые независимо, а затем объединяют результаты.

Сравнение с другими хеш-функциями

BLAKE2 значительно превосходит по скорости SHA-2 (SHA-256, SHA-512) и SHA-3 на большинстве современных процессоров. По данным разработчиков, BLAKE2b на 64-битных системах работает в 1,5–2 раза быстрее SHA-512 и в 3–4 раза быстрее SHA-3 (Keccak). На 32-битных платформах BLAKE2s также опережает SHA-256 примерно в 2 раза. При этом криптостойкость BLAKE2 считается эквивалентной SHA-2: для BLAKE2s (256 бит) — 128 бит безопасности, для BLAKE2b (512 бит) — 256 бит безопасности.

В отличие от MD5 и SHA-1, для BLAKE2 не было найдено практических коллизий, несмотря на активные исследования. Алгоритм устойчив к известным типам атак, включая атаки на расширение длины (length extension attack), которые уязвимы для MD5, SHA-1 и SHA-2. BLAKE2 по своей конструкции не подвержена этой атаке, так как использует внутренний счётчик и режим «конечного ключа» (finalization).

Применение

BLAKE2 получила широкое распространение в различных областях информационных технологий:

Криптоанализ и безопасность

На момент 2024 года BLAKE2 не имеет известных эффективных атак, позволяющих найти коллизию или обратное значение быстрее, чем полным перебором. Исследования показывают, что даже для уменьшенного числа раундов (например, 5 раундов для BLAKE2s вместо 10) атаки не приводят к практическим результатам. Разработчики специально выбрали консервативное количество раундов, чтобы обеспечить запас прочности.

Однако в 2021 году группа исследователей под руководством Дмитрия Ховратовича (Dmitry Khovratovich) опубликовала работу, в которой была показана теоретическая атака на BLAKE2b с уменьшенным до 7 раундов числом итераций. Полнораундовая версия (12 раундов для BLAKE2b) остаётся неуязвимой. Это подтверждает, что BLAKE2 сохраняет высокий уровень безопасности.

Интересные факты

Критика и ограничения

Несмотря на преимущества, BLAKE2 не лишена недостатков. Основной критикой является отсутствие официальной сертификации со стороны NIST или других государственных органов, что ограничивает её использование в некоторых государственных и военных системах, где требуется соответствие стандартам (например, ГОСТ Р или FIPS). Кроме того, BLAKE2 не поддерживает режим работы с ключом для аутентификации так же просто, как HMAC (хотя может использоваться как MAC сама по себе). Некоторые специалисты отмечают, что BLAKE2 менее изучена с точки зрения криптоанализа, чем SHA-2, хотя за более чем десять лет исследований серьёзных уязвимостей не обнаружено.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →