Конкурс на алгоритм хеширования SHA-3

4. Долгов В. И. Подстановочные конструкции современных симметричных блочных шифров. / В. И. Долгов, Р. В. Олейников, И. В. Лисицкая, Р. В. Сергиенко, Е. В. Дроботько, Е. Д. Мельничук. - Харьков, Радиотехника, выпуск 6 (40), 2009 - С. 89 -93.

5. Preneel B. Final report of European project number IST-1999-12324, named New European Schemes for Signatures, Integrity, and Encryption. / B. Preneel, A. Biryukov, C. De Canni'erel, S. B. Ors, E. Oswald, B. Van Rompayl, - Berlin, Springer-Verlag, April 19, 2004 - Version 0.15 (beta) - pp. 836.

6. Nechvatal J. Report on the Developmentof the Advanced Encryption Standard (AES). / J. Nechvatal, E. Barker, L. Bassham, W. Burr, M. Dworkin, J. Foti, E. Roback, -Computer Security Division, Information Technology Laboratory, National Institute of Standards and Technology, Technology Administration, U.S. Department of Commerce, October 2, 2000 - pp. 116.

УДК 621.391

Евсеев С.П., к.т.н., доцент

КОНКУРС НА АЛГОРИТМ ХЕШИРОВАНИЯ SHA-3

Постановка проблемы в общем виде и анализ литературы. Рост вычислительных возможностей и использование электронных документов в банковских системах выдвигает новые требования по надежности и оперативности передаваемой и обрабатываемой информации. Отличием обрабатываемых данных в внутриплатежных банковских системах от компьютерных систем является обязательное использование в транзакциях электронной цифровой подписи (ЦП) - блока данных небольшого размера, полученного в результате криптографического преобразования сообщения произвольной длины с использованием личного секретного ключа отправителя [1]. ЦП обеспечивающая аутентичность сообщения и неоспоримость использования данного секретного ключа состоит из 2-х процедур: генерации ключей и формирования хеш-кода, при этом львиную долю при оценке производительности составляет алгоритм формирования хеш-кода. Исследования [1, 2] используемых в современных системах

защиты стандартов ЦП показали, что большинство наиболее распространённых алгоритмов формирования хеш-кодов устарели и не обеспечивают требуемой криптостойкости и производительности, в то время как новые алгоритмы требуют тщательного исследования и стандартизации [1, 2].

Целью статьи является анализ основных требований к проектированию алгоритмов-конкурсантов по формированию хеш-кода, отобранных во второй тур конкурса на американский стандарт 8НЛ-3.

Анализ требований конкурса ЗИЛ-З. Основные требования, выдвигаемые Национальным институтом стандартов и технологий США (N181) к алгоритмам-конкурсантам предполагают создание класса хэш-функций потенциально стойких к атакам, нацеленным на 8НЛ-2, а также сохранение или увеличение эффективности хеширования по сравнению с 8НЛ-2 [3].

Алгоритм-победитель конкурса 8НЛ-3 должен поддерживать размер выходного блока 224, 256, 384 и 512 битов. Использование дайджестов хеш-кодов длиною 160-бит не допускаются из-за возможности нахождения коллизий атаками грубой силы (полного перебора всех вариантов). При проведении конкурса сохраняются те же требования, что и к предыдущим хэш-функциям: максимальный размер входного значения, размер выходного значения, коллизионная стойкость, стойкость к нахождению прообраза и второго прообраза, потоковый режим вычисления "за один проход" [3].

Алгоритмы функций вычисления для разного размера блоков должны быть идентичны и иметь минимум отличий в реализации. Использования абсолютно разных наборов алгоритмов для получения четырёх фиксированных значений длины выхода не допускается [3].

Кроме этого, выдвигаются требования по усовершенствованию существующих алгоритмов работы хэш-функций: возможно включение опции рандомизированного хеширования, улучшенное распараллеливание, оптимальная работа на множестве современных платформ

[3].

Руководители конкурса допускают использование параметризации в алгоритмах-конкурсантах - изменение параметров числа раундов с учётом допустимых пределов "эффективности в обмен на безопасность". Хотя в стандарт такая возможность не будет включена.

В хэш-функции класса 8НЛ-3 могут быть встроены процедуры согласования для вычисления кодов аутентификации сообщений (НМЛС):

например, передача в качестве одного из входных параметров длины блока входного сообщения, если она заранее точно известна. Значение всех встроенных параметров и констант должны быть сконструированы таким образом, чтобы не дать возможности встраивания лазеек и отмычек со стороны разработчиков, для чего должны быть приведены соответствующие доказательства и процедуры проверки [3].

Проведенный анализ специфических требований к стойкости показал, что основным требованием является обеспечение теоретических пределов стойкости (в реальности они могут быть немного меньше) на размер выходного блока в п бит и составлять:

в конструкциях кодов аутентификации сообщений (НМЛС) и псевдослучайных функций (РЯБ) стойкость по числу запросов должна быть не менее 2 (п/2) бит против атак-различителей;

стойкость рандомизированного хеширования против атаки нахождения Н(М1, г1) = Н(М2, г2) - не менее п бит, при условии, что значение рандомизатора г1 не контролируется атакующим.

Стандартные и дополнительные параметры стойкости:

- стойкость к нахождению коллизий - не менее п/2 бит;

- стойкость к нахождению прообраза - п бит;

- стойкость к нахождению второго прообраза - п -к битов для любого сообщения, короче 2к битов;

- устойчивость к атакам на изменение длины сообщения;

- подмножество хеш-функций (например, полученное усечением числа битов выхода) размером т битов должно сохранять свойства п-битного множества в пересчёте на т, с учётом статистических (неотличимых от случайных) отклонений. Не должно существовать атаки на быстрое нахождение малостойких подмножеств хеш-функции из исходного множества п;

- устойчивость к новым типам атак, например, на основе мультиколлизий.

Анализ алгоритмов, принимавших участие в 1 раунде конкурса.

Национальным институтом стандартов и технологий США 31 октября 2008 года был проведен первый раунд конкурса 8НЛ-3, в таблице 1 приведены основные характеристики алгоритмов хеширования, представленные на конкурс.

Таблица 1 - Характеристики алгоритмов хеширования кандидатов 1 раунда конкурса

Название алгоритма Платформы Стойкость алгоритма Быстродействие

Abacus 8, 32, 64 Стойкий к нахождению прообразов Быстрый

ARIRANG 8, 32, 64 Стойкий ко всем видам атак Недостаточно быстрый

AURORA 64 Приемлемая Приемлемое

BLAKE 8, 32, 64 является достаточно стойким

Blender 8, 32, 64 Стойкий ко всем атакам Приемлемое

Blue Midnight Wish 8, 32, 64 неустойчив к псевдоатакам -коллизиям и 2м прообразам

BOOLE 16, 32, 64 Приемлемая Наиболее быстрая версия 64

Cheetah Ограниченное число платформ Недостаточно стойкий Недостаточно быстрый

CHI 32, 64 Оставляет желать лучшего Приемлемое

CRUNCH 8, 32, 64 Стойкость к коллизионным атакам и прообразам Быстрый

CubeHash 8, 32, 64

DCH 8, 32, 64 Быстрый

Dynamic SHA 32, 64 Стойкий ко всем видам атак

Dynamic SHA2 32, 64 Стойкий ко всем видам атак

ECHO 32, 64 Стойкий ко всем видам атак Приемлемое

ECOH 32, 64 Стойкий ко всем видам атак Приемлемое

EDON-R 32, 64 Быстрый

EnRUPT 32, 64 Слишком прост, чтобы быть стойким Среднее

ESSENCE 32, 64 Приемлемая Приемлемое

FSB 8, 32, 64 Стойкость к коллизионным атакам Быстрый

Fugue 32, 64

Gröstl Неустойчив к атакам "полусвободное начало" Недостаточно быстрый

Hamsi 32, 64 низкая алгебраическая степень в выводах функции сжатия

JH 8, 32, 64 Приемлемая стойкость Приемлемое

Keccak 32, 64 число раундов, необходимое для защиты от атак - 18 12,5 циклов на байт

Khichidi-1 32, 64 Стойкий ко всем видам атак Быстрый

Продолжение таблицы 1

Название алгоритма Платформы Стойкость алгоритма Быстродействие

LANE Ограниченное число платформ Приемлемая Оставляет желать лучшего

Lesamnta 64 Относительно стойкий Приемлемое

Luffa 8, 32, 64 Стойкость к нахождению прообразов Приемлемое

LUX Ограниченное число платформ Стойкий Приемлемое

MCSSHA-3 32, 64 Стойкий Приемлемое

MD6 Устойчив к дифференциальному криптоанализу

MeshHash 8, 32, 64 Нестойкий к мультиколлизионным атакам Приемлемое

NaSHA 8, 16, 32, 64 Приемлемая Приемлемое

SANDstorm 32, 64 Стойкий ко всем видам атак Максимальное

Sarmal 32, 64

Sgail 64 Приемлемая Низкое

Shabal 32, 64 Стойкий ко всем видам атак Один из самых быстрых

SHAMATA 8, 32, 64 Стойкий ко всем видам атак Среднее

SHAvite-3 32, 64 Нестойкий к нахождению псевдо-прообразов

SIMD 32, 64 Приемлемая Приемлемое

Skein 8, 32, 64 Защищен от атак - подбора удлинённых сообщений и псевдоколлизий Наиболее быстрая версия 64

Spectral Hash 8, 32, 64 Устойчив к нахождению прообразов, дифференциальным атакам Очень низкое

StreamHash 8, 32 Стойкий ко всем видам атак Приемлемое

SWIFFTX 32, 64 Устойчив к коллизионным атакам и нахождению прообразов Быстрый

Tangle 8, 32, 64 Приемлемая Быстрый

TIB3 32, 64 Устойчив к коллизионным атакам Сбалансировано со стойкостью

Twister 8, 32, 64 Полностью устойчив к мультиколлизионным атакам Быстрый

Vortex Ограниченное число платформ Приемлемая Оставляет желать лучшего

WaMM 32, 64 Устойчив к линейному криптоанализу Быстрый

Waterfall 32, 64 Устойчив к атакам прообразов, коллизионным атакам Приемлемое

Анализ таблицы 1 показывает, что основное внимание разработчиков алгоритмов-конкурсантов было направлено на выполнение основных требований по производительности и возможности оптимальной работы алгоритма при его реализации на множестве современных платформ. Вместе с тем, руководители конкурса при отборе алгоритмов-кандидатов во второй тур обратили внимание на стойкость данных алгоритмов к различным видам атак.

Анализ кандидатов, прошедших во 2 раунд. Во 2 раунд были отобраны алгоритмы хеширования, в которых не была затронута каким-либо образом безопасность. В некоторых случаях, представленный вариант был слишком медленным или требовал слишком много памяти, но N181 считает, что в некоторых случаях, настраиваемые параметры могут быть откорректированы, чтобы дать приемлемый уровень производительности без ущерба для безопасности [3].

Краткие характеристики кандидатов, отобранных на 2 тур, представлены в таблице 2.

Таблица 2 - Характеристики хеш алгоритмов-кандидатов на 2 тур конкурса 8НЛ-3

Название алгоритма Описание алгоритма Инновацион ные части

BLAKE Алгоритм сжатия, функция которого основана на использовании ключевой подстановки в конструкции Davies-Meyer. Ключевая подстановка основана на внутренней организации потокового шифра ChaCha. Получил свою нелинейность с наложением модульного сложения и операций XOR Ключевая подстановка

Blue Midnight WISH Ширококанальная конструкция хеш Merkle-Damgard с нетрадиционной функцией сжатия, где нелинейность получена наложением модульного суммирования и операций XOR. Конструкция функции сжатия, подстановок

CubeHash В основе лежит конструкция "sponge", а также фиксированная подстановка. Подстановка чрезвычайно проста и элегантна, использует только дополнения, XOR, и итерации в фиксированном блоке. Вся нелинейность в алгоритме хеширования получена наложением модульных дополнений и операций XOR Фиксированная подстановка

Продолжение таблицы 2

Название алгоритма Описание алгоритма Инновацион ные части

ECHO Ширококанальная конструкция, функция сжатия использует ключевую подстановку, счетчик и "salt" в качестве ключей, а сообщения и последовательные значения - в качестве вводов в подстановке. Подстановка использует 2048-битовое блоки AES - как S-бокс шифра AES. S-бокс и обеспечивает всю нелинейность в этом алгоритме хеширования. Ключевая подстановка

Fugue Вариант конструкции "sponge", функция сжатия основана на нелинейном регистре сдвига. Регистр сдвига включает усиленный вариант AES-функции; все другие операции линейны. Таким образом, вся нелинейность в этом алгоритме основана на S-боксе AES. Функция сжатия

Ого st l Ширококанальная конструкция хеш Merkle-Damgard. Его функция сжатия использует два S-бокса AES как блоки-подстановки. Вся нелинейность в алгоритме получена на основе S-бокса AES. Конструкция функции сжатия

Hamsi Конструкция хеш Merkle-Damgard. Функция сжатия создана на блоке-подстановке; сообщение расширено, используя код с обнаружением ошибок, чтобы заполнить половину входного блока до блока-подстановки с другой половиной, заполненной значением сцепления хеш. Вся нелинейность в алгоритме получена из одного S-бокса. Конструкция функции сжатия

JH Использует новую конструкцию, несколько напоминающую конструкцию "sponge" для встраивания алгоритма хеш в блок-подстановку. Блок-подстановка -комбинация из двух 4-битовых S-бокса с рядом линейных операций смешивания и разрядных подстановок. Вся нелинейность в этом дизайне получена из S-боксов. Конструкция функции сжатия

Keccak Использует конструкцию "sponge" и блок-подстановку. Подстановка может быть реализована на основе 5-битовых S-блоков или на комбинации линейной и нелинейной операциях смешивания. Конструкция подстановки

Luffa Вариант конструкции "sponge", использующий линейную операцию смешивания и несколько 256-битовых блоков-подстановок вместо одной нелинейной подстановки. Блоки-подстановки комбинируют линейные операции смешивания с единственным 4-битовым S-боксом, и этот S-бокс обеспечивает всю нелинейность в алгоритме. Конструкция "sponge"

Окончание таблицы 2

Название алгоритма Описание алгоритма Инновацион ные части

Shabal Использует новый последовательный режим, как вариант ширококанальной конструкции хеш Merkle-Damgard. Его функция сжатия основана на конструкции регистра сдвига с обратной связью, которая комбинирует несколько вводов, эффективно обеспеченных последовательным режимом. Нелинейность получена наложением XOR, модульного суммирования, и поразрядных операций AND. Функция сжатия

SHAvite-3 Алгоритм хеш HAIFA. Функция сжатия - ключевая подстановка, используемая в конструкции Дэвис-Мейера. Ключевая подстановка - сбалансированная сеть Feistel (для 256-битового случая), или пара переплетенных сбалансированных сетей Feistel (для 512-битового случая), с F-функцией, созданной из AES-функции. Вся нелинейность в целой конструкции основана на S-боксе. Ключевая подстановка

SIMD Ширококанальная конструкция хеш Merkle-Damgard. Функция сжатия создана из ключевой подстановки, в варианте конструкции Дэвис-Мейера. Ключевая подстановка использует линейный код с доказуемыми свойствами распространения, как "ключевой список", и использует четыре несбалансированные сети Feistel, которые напоминают MD4 и MD5-функции. Нелинейность в этом алгоритме обеспечена наложением модульного суммирования, операций неэквивалентности и поразрядных нелинейных функций. Ключевая подстановка

Skein Вариант конструкции хеш Merkle-Damgard, основана на блочном шифре в режиме СВС. Функция сжатия используется в варианте конструкции Matyas-Meyer-Oseas. Безопасность конструкции основывается на стойкости БСШ "Threefish", созданного на основе большого количества простых раундов, и использует только три 64-битовых модульных операции суммирования, поразрядный XOR, и итерацию. Вся нелинейность в алгоритме хеш обеспечена наложением модульного суммирования и операций неэквивалентности. Блочный шифр ТИгееЙБИ в режиме СВС

Предварительное изучение алгоритмов-участников показало, что каждый из них позаимствовал некоторые принципы построения у алгоритма ЛЕ8 для обеспечения стойкости хеш-кодов.

Вывод. Таким образом, главным требованием к алгоритмам-конкурсантам руководители NIST выдвинули безопасность, что и явилось основным критерием отбора кандидатов во 2 раунд. Только 14 алгоритмов из 51 представленных смогли продемонстрировать необходимый уровень защиты от криптографических атак. К основным критериям отбора также относится производительность и возможность работы на большом числе платформ, что также позволило руководителям конкурса "отсеять" несколько кандидатов (алгоритмы Vortex, LUX и т.д.). По заявлению NIST алгоритмы, имеющие уровень производительности сопоставимый или лучше, чем в SHA-2, смогли пройти во 2 раунд. Перспективным направлением дальнейших исследований является анализ статистической стойкости алгоритмов-конкурсантов 2 раунда, их реализация на различных платформах с целью оценки производительности и адаптации их применения в банковских транзакциях документооборота внутриплатежных банковских систем.

Список литературы

1. Информационная технология. Криптографическая защита информации. Цифровая подпись, основанная на эллиптических кривых. Формирование и проверка. ДСТУ 4145 - 2002. - К.: Держстандарт Украни, 2002. —35 с.

2. NESSIE consortium, "NESSIE Security report." Deliverable report D20 -NESSIE, 2002. - NES/D0C/ENS/WP5/D20 [Electronic resource] - Access mode: http://www.cryptonessie.org/.

3. Status Report on the First Round of the SHA-3 Cryptographic Hash Algorithm Competitionhttp Andrew Regenscheid, Ray Perlner, Shu-jen Chang, John Kelsey, Mridul Nandi, Souradyuti Paul. [Електронний ресурс] - Режим доступу: www.nist.gov/index.html