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

Опубліковано фінальну реалізацію алгоритму ПЛІНКА3, що пропонує криптографічну хеш-функцію, розраховану на такі застосування, як перевірка цілісності файлів, автентифікація повідомлень та формування даних для цифрових підписів. 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, Зуко Вілкокс-О'Хірн) і продовжує розвиток алгоритму ПЛІНКА2 та застосовує для кодування дерева ланцюжків блоків механізм Бао. На відміну від 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

Додати коментар або відгук