- •Свойства, назначение и основы построения хеш-функций.
- •Обобщенная схема хэш – функции
- •Пример хэширования
- •Гипотеза о существовании односторонних функций.
- •Свойства односторонних хэш-функций.
- •Длины однонаправленных хэш-функций
- •Методы криптоанализа хэш-функций
- •Коллизии и реверс
- •Методы построения криптографических хэш-функций
- •Назначение криптографических хэш-функций
- •Построение хеш-функций на основе блочных шифров.
- •Схемы, в которых длина хэш-значения равна длине блока
- •Обобщенная хэш-функция, у которой длина хэш-значения равна длине блока
- •Четыре безопасных хэш-функции, у которых длина хэш-значения равна длине блока
- •Модификация схемы Davies-Меуеr
- •Модификация схемы Davies-Meyer.
- •Тандемная (Таndеm) и одновременная (Abreast) схемы Davies-Meyer.
- •Тандемная схема Davies-Meyer.
- •Самостоятельные хэш – алгоритмы. Краткое описание наиболее распространенных алгоритмов
- •Алгоритм md2
- •Алгоритм мd3
- •Алгоритм md4
- •Алгоритм md5
- •Описание мd5
- •Отличия md5 от md4
- •Полный пример md5
- •Криптоанализ Snefru
- •Выбор хэш-функции
- •Эвристические принципы, сформулированные Ривестом
- •Основные требования к алгоритму с точки зрения пользователя
Схемы, в которых длина хэш-значения равна длине блока
Вот общая схема:
Н0 = IH где IH - случайное начальное значение
Hi = ЕА(В) С
где А, В и С могут быть либо Мi , Hi-1_ь (Мi Hi-1), либо константы (возможно равные 0). H0 - это некоторое случайное начальное число IH. Сообщение разбивается на части в соответствии с размером блока, Мi , обрабатываемые отдельно. Кроме того, используется вариант МD-усиления, возможно та же процедура дополнения, что и в МD5 и SНА.
Обобщенная хэш-функция, у которой длина хэш-значения равна длине блока
Три различные переменные могут принимать одно из четырех возможных значений, поэтому всего существует 64 варианта схем этого типа. Они все были изучены Бартом Пренелом.
Пятнадцать из них тривиально слабы, так как результат не зависит от одного из входов. Тридцать семь небезопасны по более тонким причинам. В 17-й перечислены оставшиеся 12 безопасных схем: первые четыре безопасны против всех вскрытий, а последние 8 безопасны против всех типов вскрытий, кроме вскрытия с фиксированной точкой, о котором в реальных условиях не стоит беспокоиться.
Четыре безопасных хэш-функции, у которых длина хэш-значения равна длине блока
Третья схема предлагалась в качестве стандарта ISO. Пятая схема была предложена Карлом Майером, но в литературе обычно называется Davies Mayer. Десятая схема была предложена в качестве режима хэш-функции для LOKI.
Скорость хэширования первой, второй, третьей, четвертой, пятой и одиннадцатой схем равна 1 - длина ключа равна длине блока. Скорость хэширования других схем составляет k/п, где k -длина ключа. Это означает, что если длина ключа короче длины блока, то блок сообщения должен быть по длине равен ключу. Не рекомендуется, чтобы блок сообщения был длиннее ключа, даже если длина ключа алгоритма шифрования больше, чем длина блока.
Если блочный алгоритм подобно DES обладает свойством комплиментарности и слабыми ключами, для всех 12 схем существует возможность дополнительного вскрытия. Оно не слишком опасно и в действительности не стоит об этом беспокоиться. Однако вы можете обезопасить себя от такого вскрытия, зафиксировав значение второго и третьего битов ключа, равное "01" или "10". Конечно же это уменьшит длину k: с 56 битов до 54 битов (для DES) и уменьшит скорость хэширования .
Было показано, что следующие схемы, описанные в литературе, небезопасны. Эта схема была взломана: Hi = EMi (Hi-1)
Дэвис и Прайс предложили вариант, в котором все сообщение циклически обрабатывается алгоритмом дважды. Вскрытие Копперсмита взламывает такую схему даже при небольшой вычислительной мощности. Была показана небезопасность еще одной схемы.
Модификация схемы Davies-Меуеr
Лай и Массей модифицировали метод Davies-Меуег, чтобы можно было использовать шифр IDЕА использует 64-битовый блок и 128-битовый ключ . Вот предложенная ими схема:
Э
та
функция хэширует сообщение 64-битовыми
блоками и выдает 64-битовое значение.
Более простое вскрытие этой схемы, чем
метод грубой силы, неизвестно .
Мi
Модификация схемы Davies-Meyer.
Эта хэш-функция выдает хэш-значение, в два раза большее длины блока алгоритма шифрования: при 64-битовом алгоритме получается 128-битовое хэш-значение .
При 64-битовом блочном алгоритме схема выдает два 64-битовых хэш-значения , Gi , и Hi , объединение которых и дает 128-битовое хэш-значение. У большинства блочных алгоритмов длина блока равна 64 битам. Два соседних блока, Li и Ri , размер каждого равен размеру блока, хэшируются вместе.
G0 = IG, где IG - случайное начальное значение
Но = IH, , где IH - другое случайное начальное значение
Лай приводит вскрытие этой схемы, которое в некоторых случаях делает вскрытие методом дня рождения тривиальным. Пренел и Копперсмит также успешно взломали эту схему. Не используйте ее.
К сожалению эта схема тоже небезопасна. Оказывается, что хэш-функция удвоенной длины со скоростью хэширования, равной 1, не может быть безопаснее, чем Davies-Meyer.
