Представлена хеш-функция BLAKE2, претендующая на роль высокопроизводительной замены MD5 и SHA1

24 декабря 2012 года

Представлена (Архивная копия от 25 сентября 2020 на Wayback Machine) современная криптографическая хеш-функция BLAKE2, не уступающая по производительности MD5, потребляющая на 33% меньше памяти чем SHA-2/SHA-3 и лишённая известных проблем с безопасностью. BLAKE2 является переработанной версией хэш-функции BLAKE, вошедшей в число финалистов конкурса на разработку криптоалгоритмов для стандарта SHA-3. При проектировании BLAKE2 была поставлена задача обеспечения максимальной производительности программной реализации алгоритма с предоставлением высочайшего уровня безопасности.

В итоге, был подготовлен алгоритм значительно превосходящий по надёжности MD5, но близкий к нему по производительности, что делает его пригодным для использования в областях, где в силу своей производительности до сих пор доминируют MD5 и SHA1 - в облачных хранилищах, системах контроля версий, дистрибутивах программного обеспечения, системах выявления вторжений и средствах цифровой экспертизы (digital forensics).

Как и SHA-3 алгоритм BLAKE2 не чувствителен к размеру хэшируемых данных и защищён от всех свойственных SHA-1 и MD5 видов атак, связанных с возникновением коллизий в процессе хэширования. Надёжность алгоритма подтверждена многолетним аудитом, который проводился в процессе оценки претендентов на звание стандарта SHA-3. По словам разработчиков алгоритма, то, что институт NIST в конечном счёте выбрал алгоритм Keccak в качестве стандарта SHA-3 связано с тем, что была поставлена цель использования в SHA-3 алгоритма принципиально отличающегося от SHA-2 с целью наличия запасного варианта в случае выявления уязвимости в одном из алгоритмов. С точки зрения безопасности алгоритмы Keccak и BLAKE находятся на одном уровне, при этом для BLAKE был проведён даже более глубокий криптоанализ, чем для Keccak.

Для использования подготовлены две реализации BLAKE2:

  • BLAKE2b (или просто BLAKE2) - вариант, оптимизированный для 64-разрядных платформ и поддерживающий акселерацию через задействование инструкций NEON для ARM-систем и SSE2, SSSE3, SSE4.1, AVX и XOP для архитектур x86. Размер результирующего хэша может генерироваться в диапазоне от 1 до 64 байт. Доступны две модификации BLAKE2b, позволяющие существенно увеличить производительность за счёт распараллеливания на многоядерных или SIMD процессорах: BLAKE2bp - с поддержкой распараллеливания на 4 потока, и BLAKE2sp - с поддержкой распараллеливания на 8 потоков (используется OpenMP).
  • BLAKE2s - вариант для 8-, 16- и 32-разрядных платформ, позволяющий генерировать хэши размером от 1 до 32 байт.

Реализации доступны как в виде библиотек для различных языков программирования, так и в форме утилиты b2sum, позволяющей из командной строки хэшировать файлы с использованием методов BLAKE2b, BLAKE2s, BLAKE2bp и BLAKE2sp. При проведении теста на системе с процессором Intel Core i7-2630QM (Sandy Bridge 2GHz) была продемонстрирована производительность в 531 мебибайт в секунду (3.59 процессорных циклов на байт), при использовании процессора AMD FX-8150 (Bulldozer 3.6GHz) производительность составила 628 мебибайт в секунду (5.47 процессорных циклов на байт).

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Представлена хеш-функция BLAKE2, претендующая на роль высокопроизводительной замены MD5 и SHA1», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.