На недавнем конкурсе NIST для стандарта SHA-3 победил алгоритм Keccak, который теперь и является официальным наследником SHA-2 и устаревших алгоритмов вроде MD5. Жюри сказало, что главным фактором выбора Keccak стало его максимальное архитектурное отличие от SHA-2, в котором используется традиционный дизайн Add-Rotate-XOR. Таким образом, у всех будет запасной вариант на тот случай, если в SHA-2 обнаружат какую-то уязвимость.

Одним из финалистов конкурса NIST был алгоритм BLAKE, который по всем остальным параметрам не уступает Keccak, кроме максимальной «непохожести на SHA-2). Разработчики криптографической хэш-функции BLAKE вчера представили новую версию своего алгоритма BLAKE2, основанную на шифре ChaCha/Salsa20 и специально оптимизированную для использования в качестве альтернативы MD5, то есть в облачных сервисах, программном обеспечении и т.д.

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

Хэш-функция BLAKE2 обладает такой же производительностью, что и MD5 на 64-битных платформах, при этом требует для работы как минимум на 33% меньше оперативной памяти, чем SHA-2 или SHA-3 на системах нижнего уровня. Разработчики утверждают, что оптимизация достигнута без ущерба для криптостойкости, математическое обоснование см. в документе PDF.

BLAKE2 выпущен в двух вариантах:

  • BLAKE2b (или просто BLAKE2), оптимизированный для 64-битных платформ;
  • BLAKE2s, оптимизированный для платформ от 8-ми до 32-бит.

На одном ядре процессора Intel Core i7-2630QM (Sandy Bridge на 2 ГГц) 64-битная версия BLAKE2 показывает производительность до 531 MiB в секунду (3,59 цикла на байт). На одном ядре AMD FX-8150 (Bulldozer на 3,6 ГГц) производительность составляет до 628 MiB в секунду (5,47 цикла на байт).

Сравнение скорости вычисления разных хэш-функций показано на диаграмме.

Разработчики BLAKE2 разработали утилиту b2sum для командной строки Unix-систем и надеются, что в будущем b2sum вытеснит стандартную утилиту md5sum.



Оставить мнение