Опубликован: 19.01.2010 | Уровень: специалист | Доступ: свободно
Лекция 2:

Криптографические хэш-функции

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >
Аннотация: Эта лекция имеет несколько целей: изложить общие идеи криптографических хэш-функций, обсудить схему Меркеля-Дамгарда (Merkle-Damgard) как основу для итеративных хэш-функций, показать различие между двумя категориями хэш-функций: функцией сжатия, которая разработана на "пустом месте", и той, которая использует блочный шифр как функцию сжатия, обсудить структуру SHA-512 как пример криптографической хэш-функции с функцией сжатия, которая делает это "на пустом месте", обсудить структуру Whirlpool как пример криптографической хэш-функции с блочным шифром c функцией сжатия.
Ключевые слова: хэш-функция, дайджест сообщения, алгоритмы хэширования, SHA-512, криптографическая хэш-функция, Схема Меркеля-Дамгарда, Функция криптографического хэширования Whirlpool, Дайджест сообщения (MD), MD2, MD4, MD5, Алгоритм Безопасного хэширования (SHA), Стандарт Безопасного хэширования (SHS), SHA-1, SHA-224, SHA-256, SHA-384, дайджеста сообщения, число раундов, RIPEMD-160, HAVAL, Алгоритм хэширования переменной длины , Итеративная функция криптографического хэширования, односторонняя функция, Схема Рабина, функция предложения, криптографическая система, Схема Девиса-Мейера (Davies-Meyer), Схема Матиса-Мейера-Осеаса, схема Девиса-Мейера, Схема Миагучи-Пренеля, SHA, secure, hashing algorithm, Алгоритм Безопасного хэширования, Новые европейские Схемы Подписей, Целостности и Шифрования (NESSIE), Новые европейские схемы подписей, целостности и шифрования, блочный шифр, AES, длина, Дополнение, бит, размер сообщения, дайджест, ключ, операции, Шифр Whirlpool, матрица длин, SubBytes, 5A, ShiftColumns , MixRows, AddRoundKey, устойчивость к коллизиям, MD, RIPEMD

2.1. Введение

Рассмотренная в "С. Набор протоколов TCP/IP" криптографическая хэш-функция получает сообщение произвольной длины и создает дайджест сообщения фиксированной длины. Окончательная цель этой главы состоит в том, чтобы обсудить детали двух наиболее перспективных криптографических алгоритмов хэширования - SHA-512 и Whirlpool. Однако мы сначала должны обсудить некоторые общие идеи, которые могут быть применены к любой криптографической хэш-функции.

Итеративная хэш-функция

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

Схема Меркеля-Дамгарда (Merkle-Damgard)

Схема Меркеля-Дамгарда - итеративная хэш-функция, которая является функцией сжатия, устойчивой к коллизии. Это может быть доказано, но доказательство оставляем как упражнение. Схема показана на рис. 2.1.

Схема Меркеля-Дамгарда

Рис. 2.1. Схема Меркеля-Дамгарда

Схема использует следующие шаги:

  1. Длина сообщения и дополнение добавляются в конец сообщения, чтобы создать увеличенное сообщение, которое может быть равномерно разделено на n -битовые блоки; здесь n - размер блока, который будет обработан функцией сжатия.
  2. Сообщение тогда рассматривают как t блоков, размер каждого состоит из n бит. Мы обозначим каждый блок М1,..., Мt. Мы обозначаем дайджест, созданный при t итерациях, - H1, H2,...., Ht
  3. Перед стартом итерации дайджест H0 устанавливается на фиксированное значение, обычно называемое IV (начальное значение или начальный вектор).
  4. Функция сжатия при каждой итерации обрабатывает Hi-1 и М., создавая новый Hi. Другими словами, мы имеем Hi = .f (Hi-1, Мi), где f - функция сжатия.
  5. Ht - функция криптографического хэширования первоначального сообщения, то есть h(M).
    Если функция сжатия в схеме Меркеля-Дамгарда устойчива к коллизии, хэш-функция также устойчива к коллизии.

Две группы функций сжатия

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

Хэш-функции, сделанные на "пустом месте"

Множество функций криптографического хэширования использует функции сжатия, которые сделаны "на пустом месте". Эти функции сжатия специально созданы для целей, которым они служат.

Дайджест сообщения (MD)

Несколько алгоритмов хэширования были разработаны Роном Ривестом. Они известны в литературе как MD2, MD4 и MD5, где MD обозначает Дайджест Сообщения. Последняя версия, MD5, является усиленной версией MD4, которая делит сообщение на блоки по 512 битов и создает дайджест на 128 битов. Оказалось, что дайджест сообщения размером 128 битов - слишком маленький, чтобы быть устойчивым к атаке коллизии.

Алгоритм безопасного хэширования (SHA - Secure Hash Algorithm)

Алгоритм безопасного хэширования (SHA) - стандарт, который был разработан национальным Институтом Стандартов и Технологии (NIST - National Institute of Standards and Technology) и издан как Федеральный Стандарт Обработки Информации (FIP 180). Он упоминается в литературе как Стандарт Безопасного хэширования ( SHS - Secure Hash Standard ). Стандарт главным образом базируется на MD5. В 1995 г. он был пересмотрен под названием FIP 180-1, который включает SHA-1. Позже он снова был пересмотрен под названием FIP 180-2, который определяет четыре новых версии: SHA-224, SHA-256, SHA-384 и SHA-512. табл. 2.1 дает список некоторых из характеристик этих версий.

Таблица 2.1. Характеристики алгоритмов безопасного хэширования (SHAs)
Характеристики SHA-1 SHA-224 SHA-256 SHA-384 SHA-512
Максимальный размер сообщения 264 - 1 264 - 1 264 - 1 2128 - 1 2128 - 1
Размер блока 512 512 512 1024 1024
Размер дайджеста сообщения 160 224 256 384 512
Число раундов 80 64 64 80 80
Размер слова 32 32 32 64 64

Все эти версии имеют одну и ту же структуру. SHA-512 будет рассмотрен подробно позже в этой лекции.

Другие Алгоритмы сохранения целостности (RIPMD - RACE Integrity Primitives Evaluation Message Digest).Группа алгоритмов криптографического хэширования( RIPMD ) имеет несколько версий. RIPEMD-160 - алгоритм хэширования с дайджестом сообщения на 160 битов. RIPEMD-160 использует ту же структуру, что и MD5, но применяет два варианта выполнения.

HAVAL - алгоритм хэширования переменной длины с дайджестом сообщения размера 128, 160, 192, 224 и 256. Размер блока - 1024 бита.

Хэш-функции, основанные на блочных шифрах

Итеративная функция криптографического хэширования может использовать блочный шифр с симметричными ключами как функцию сжатия. Основная идея такого подхода - есть несколько безопасных блочных шифров с симметричными ключами, таких как трехкратный DES или AES, которые могут использоваться для создания односторонней функции вместо того, чтобы создавать новую функцию сжатия. Блочный шифр в этом случае только выполняет шифрования. Были предложены несколько схем. Позже мы рассмотрим одну из наиболее перспективных - Whirlpool.

Схема Рабина. Итеративная хэш-функция, предложенная Рабиным, очень проста. Схема Рабина базируется на схеме Меркеля-Дамгарда. Функция сжатия заменяется любым алгоритмом шифрования. Блок сообщения используется как ключ; предварительно созданный дайджест используется как исходный текст. Зашифрованный текст - новый дайджест сообщения. Обратите внимание, что размер дайджеста - это размер блочного шифра данных в основной криптографической системе. Например, если DES используется как блочный шифр, размер дайджеста - только 64 бита. Хотя схема очень проста, она может быть раскрыта с помощью атаки "сведения к середине", рассмотренной в "Безопасность на прикладном уровне: PGP и S/MIME" , поскольку противник может применить алгоритм дешифрования криптографической системы. Рис. 2.2 показывает схему Рабина.

Схема Рабина

Рис. 2.2. Схема Рабина

Схема Девиса-Мейера (Davies-Mayer). В основном она повторяет схему Рабина, за исключением того, что использует прямую связь для защиты от атаки "сведения в середину".

Схема Девиса-Мейера

Рис. 2.3. Схема Девиса-Мейера

Схема Матиса-Мейера-Осеаса (Metyas-Mayer-Oseas). Это версия схемы Девиса-Мейера: блоки сообщения применяются как ключи криптосистемы. Схема может быть использована, если блоки данных и ключ шифрования имеют один и тот же размер. Например, AES хорошо подходит для этой цели.

Схема Матиса-Мейера-Осеаса

Рис. 2.4. Схема Матиса-Мейера-Осеаса

Схема Миагучи-Пренеля - расширенная версия схемы Матиса-Мейера-Осеаса. Чтобы сделать алгоритм более устойчивым к атаке, исходный текст, ключ шифра и зашифрованный текст складываются с помощью ИСКЛЮЧАЮЩЕГО ИЛИ и создают новый дайджест. Эта схема используется в Whirlpool для создания хэш-функции. На рис. 2.5 показана схема Миагучи-Пренеля.

Схема Миагучи-Пренеля

Рис. 2.5. Схема Миагучи-Пренеля
< Лекция 1 || Лекция 2: 123456 || Лекция 3 >
Евгений Виноградов
Евгений Виноградов
Экстернат
Илья Сидоркин
Илья Сидоркин
Как получить диплом?
Сергей Огородников
Сергей Огородников
Россия, Сыктывкар
Дмитрий Карпов
Дмитрий Карпов
Россия, Нижний Новгород