Хэш BLAKE3 онлайн
2020 год — на порядок быстрее BLAKE2 за счёт дерева хэширования и параллелизма. Считается прямо в браузере — текст никуда не отправляется.
Вычислить BLAKE3
Результат пересчитывается сам, пока вы печатаете. В режиме «По строкам» пустые строки тоже хэшируются — результат всегда совпадает по числу строк со входом. Нужна другая функция — на полной странице калькулятора их 32.
История BLAKE3
BLAKE3 вышел в 2020 году — авторы: Джек О'Коннор, Жан-Филипп Омассон (один из создателей BLAKE и BLAKE2), Самуэль Невес и Зуко Уилкокс-О'Хирн (создательница Zcash). Идея была не в том, чтобы придумать новую криптографию с нуля, а в том, чтобы взять уже проверенную G-функцию BLAKE2s и полностью переосмыслить структуру вокруг неё — так, чтобы задействовать то, чего не было в 2012 году: многоядерные процессоры и SIMD-инструкции.
Результат — алгоритм, который на многоядерном железе с большими файлами оказывается в разы, а на некоторых задачах и на порядок быстрее BLAKE2, при этом не уступая ему в криптографической стойкости.
Как устроен алгоритм
Главное отличие BLAKE3 от всех линейных конструкций (Меркла — Дамгора, HAIFA, губки) — он устроен как дерево. Входные данные режутся на куски по 1024 байта; каждый кусок независимо хэшируется сжатой функцией на основе G-функции BLAKE2s (7 раундов вместо 10 — за счёт древовидной, а не последовательной обработки такое сокращение не ослабляет стойкость). Результаты хэширования кусков становятся листьями бинарного дерева: соседние пары объединяются в родительский узел, пары родителей — в следующий уровень, и так до единственного корня.
Ключевое следствие древовидной структуры: куски, находящиеся в разных ветвях дерева, не зависят друг от друга и могут обрабатываться параллельно — на всех ядрах процессора и с SIMD-инструкциями одновременно, в отличие от строго последовательных MD5/SHA-2/BLAKE2, где каждый блок обязан ждать результата предыдущего. Дополнительно BLAKE3 поддерживает вывод произвольной длины (XOF — extendable-output function): можно «дочитывать» результат сколько угодно, не пересчитывая всё заново.
Характеристики
| Параметр | Значение |
|---|---|
| Длина хэша | 256 бит по умолчанию (64 hex-символа), вывод расширяемый (XOF) |
| Размер куска | 1024 байта, далее — бинарное дерево |
| Раундов на блок сжатия | 7 |
| Сжимающая функция | G-функция BLAKE2s (ARX) |
| Конструкция | Дерево Меркла + параллелизм |
| Опубликован | 2020 |
Где применяется
- Быстрая проверка целостности больших файлов и датасетов (в разы быстрее SHA-256 на многоядерном железе)
- Системы адресации контента (content-addressed storage), некоторые блокчейн-проекты
- Инструменты сборки и CI/CD, где важна скорость хэширования множества файлов
Криптостойкость
BLAKE3 не взломан — криптографическое ядро (G-функция) унаследовано напрямую от тщательно проверенного BLAKE2, а само древовидное построение проанализировано авторами как отдельная конструкция при выпуске. Практических атак не существует; это один из самых быстрых криптографически стойких хэшей на сегодняшний день.