ຟັງຊັນການເຂົ້າລະຫັດລັບ BLAKE3, ເຊິ່ງໄວກວ່າ SHA-10 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, ເຊິ່ງໄວກວ່າ SHA-10 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 ແລະໂປເຊດເຊີ ARM 32-bit.

ແຫຼ່ງຂໍ້ມູນ: opennet.ru

ເພີ່ມຄວາມຄິດເຫັນ