Стандарты Хеш-функций. Основные определения и требования безопасности к функциям хеширования, страница 3

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

7. Дифференциальные атаки.

Дифференциальный криптоанализ [8] является мощным инструментом для анализа не только блочных шифров, но также и функций хеширования. При такой атаке исследует влияние разницы входных данных функций сжатия на соответствующие выходные разности. Коллизия возникает, если выходная разность равна нулю.

8. Аналитические слабости.

Большое число атак может быть основано при блокировании диффузии входных данных функции хеширования: это означает, что изменения не оказывают влияния или могут быть легко отменены на следующих шагах. Среди наиболее замечательных атак в этом классе - это атаки, развитые Доббертином (Dobbertin) на MDx-семейство [9,10]. Они объединяют обычные методы оптимизации с криптоаналитической техникой анализа. Другая особенность этих атак состоит в том, что изменения контролируются только в некоторых точках алгоритмов; в отличии от дифференциального криптоанализа, где анализу подвергаются все совместные дифференциалы некоторой степени.

Теоретические значения вычислительной стойкости функций хеширования представлены в таблице 1.

Таблица 1.

Вычислительная стойкость функций хеширования

Тип хеш-функции

Цель атаки

Идеальная стойкость

Однонаправленная хеш-функция

Нахождение первого прообраза

Нахождение второго прообраза

Коллизионно-стойкая функция хеширования

Нахождение любой коллизии

Описание и анализ функций хеширования, которые в настоящее время широко используются, представлен ниже.

3.2 Анализ существующих стандартов функций хеширования.

Основными характеристиками алгоритмов хеширования, по которым выполняется их сравнительная оценка в соответствии с рекомендациями проекта NESSIE являются:

·  уровень защищенности функций хеширования от общих атак;

·  быстродействие алгоритмов хеширования;

·  статистические свойства распределений хеш кодов.

Функции хеширования являются итерационными конструкциями, которые используют функции сжатия с установленным размером входных данных. Ниже представлены функции сжатия основанные на блочном шифре, на модулярной арифметике и заказные, разработанные специально для целей хеширования.

Функции хеширования, основанные на блочных шифрах

Практической мотивацией построения функций хеширования на основе использования n-разрядного блочного шифра является эффективная программная или аппаратная реализации блочного шифра, который применяется в системе защиты. Это обеспечивает большую функциональность криптоалгоритмов и снижение затрат на их разработку. ISO/IEC 10118-2 определяет две функций хеширования:

·  функции хеширования однократной длины;

·  функции хеширования двойной длины.

Цикловая функция является блочным шифром и характеризуется следующими основными параметрами:

·   - длиной входного блока данных;

·   – длиной ключа;

·   – длиной выходного блока.

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

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

В основе метода построения функций хеширования однократной длины лежат схемы Матиаса-Мейера - Озиса (Matyas-Mayer-Oseas), Дэвиса-Мейера (Davies - Meyer) и Миагуччи-Пренеля (Miyaguchi-Preneel). Общим для этих схем вычислений является то, что хешируемая строка данных  разбивается на -разрядные блоки . Последний блок, при необходимости, дополняется необходимым количеством символов. Вектор инициализации  определяется, как некоторая -разрядная константа.