Научная литература
booksshare.net -> Добавить материал -> Криптография -> Венбо Мао -> "Современная криптография" -> 136

Современная криптография - Венбо Мао

Венбо Мао Современная криптография. Под редакцией Клюшиной Д.А. — М. : Издательский дом Вильямс, 2005. — 768 c.
ISBN 5-8459-0847-7
Скачать (прямая ссылка): sovremennaya_kriptografiya.djvu
Предыдущая << 1 .. 130 131 132 133 134 135 < 136 > 137 138 139 140 141 142 .. 311 >> Следующая

тп = Цена_1, Описание_товара, г
и
т' = Цена_2, Описаниетовара, г,
где Цена_1 ф Цена_2 и Описаниетовара представляют собой фиксированные части сообщений, а коллизия возникает между случайными числами г Ф г'. Поиск! коллизий между этими сообщениями так же сложен, как и поиск коллизий между случайными сообщениями, удовлетворяющими условиям (10.3.1), поскольку, как легко видеть, функции
h'(x) =f /1(Цена_1, Описаниетовара, х)
и
h"(x) = /1(Цена_2, Описаниетовара, х)
являются случайными.
Глава 10. Методы защиты целостности данных
353
Очевидно, что, если функции хэширования не являются абсолютно случайными, количество вычислений сократится.
Итак, размер пространства значений криптографической функции хэширования должен быть меньше. В современной криптографии широко используются функции хэширования SHA-1 [217] и RIPEMD-160 [53]. В обеих функциях выполняется условие \h\ — 160. Их стойкость к атаке на основе парадокса "дней рождения" оценивается величиной 280. Эта стойкость сравнима со стойкостью алгоритма блочного шифрования с 80-битовым ключом. Более ранняя популярная хэш-функция MD5 [243] использовала длину строки \h\ = 128, согласованную с алгоритмом DES, в котором ключ состоит из 56 бит и длина блока равна 64 бит.
С появлением алгоритмов AES-128, AES-192 и AES-256 (с ключами, состоящими из 128, 192 и 256 бит соответственно (раздел 7.7)), организации по стандартизации (например, ISO/IES [151]) приступили к стандартизации функций хэширования с подходящей длиной строки \h\ € {256,384,512}.
10.3.2 Коды аутентификации сообщений, использующие функции хэширования с ключом
Криптографические функции хэширования представляют собой естественное средство для защиты целостности данных. В сценарии с распределенными ключами на вход хэш-функции поступает ключ. Остальная часть входной информации состоит из сообщения, подлежащего аутентификации. Таким образом, чтобы аутентифицировать сообщение М, отправитель вычисляет значение
MAC = h(k || М),
где к — секретный ключ, распределенный между отправителем и получателем, а символ || обозначает операцию конкатенации битовых строк.
Основываясь на свойствах функции хэширования, перечисленных в разделе 10.3.1, можно предположить, что для создания правильного кода MAC с помощью хэш-функции, получающей в качестве аргументов ключ к и сообщение М, пользователь должен обладать правильным ключом и правильным сообщением. Получатель, владеющий общим с отправителем ключом, должен заново вычислить код MAC на основе полученного сообщения М и проверить, соответствует ли он полученному коду MAC. Если эти коды совпадают, значит, сообщение поступило от законного отправителя.
Поскольку такие коды MAC вычисляются с помощью функции хэширования, они стали называться кодами НМАС (hash message authentication code). Довольно часто коды НМАС вычисляются по формуле
НМАС = h(k || М || к),
354
Часть III. Основные методы криптографии]
го-
т.е. ключ присоединяется к сообщению М в качестве префикса и суффикса [288]. Это не позволяет противнику использовать циклическую структуру некоторых функций хэширования. Если сообщение не защищено ключом с обоих концов, такая структура некоторых функций хэширования позволяет противнику, даже не знающему ключа, модифицировать сообщение с помощью произвольного префикса или суффикса.
10.3.3 Коды аутентификации сообщений, использующие алгоритм блочного шифрования
Как правило, функции хэширования с ключом образуются с помощью алгорит мов блочного шифрования в режиме сцепления блоков зашифрованного текст Функция хэширования с ключом, построенная таким образом, называется функцией MAC.
Пусть ?fc(m) — алгоритм блочного шифрования сообщения т с ключом к. Для] того чтобы аутентифицировать сообщение М, отправитель сначала разбивает его на блоки:
М - тп\тп2 ¦ - - гп?,
где размер каждого блока гщ(г — 1,2,..., ?) равен размеру входных данных алгс| ритма блочного шифрования. Если размер последнего блока ттц не равен размеру полного блока, он дополняется случайной величиной. Пусть Со = IV — случайный вектор инициализации. Отправитель применяет алгоритм блочного шифрования в режиме сцепления блоков зашифрованного текста:
Ci — ?i{rm ф d-i), г = 1,2,..., L
Теперь пару (IV, Ci) можно применять в качестве кода аутентификации сообщений, который присоединяется к сообщению М перед отправкой.
Очевидно, что вычисление кода аутентификации сообщений в режиме сцепления блоков зашифрованного текста СВС-МАС предусматривает необратимое сжатие данных (по существу, код СВС-МАС представляет собой "конспект сообщения"). По этой причине преобразование СВС-МАС является однонаправленным. Более того, свойство перемешивания соответствующего алгоритма блочного шифрования придает этому преобразованию характер хэширования (т.е. распределяет код MAC по всему пространству кодов так же равномерно, как исходный алгоритм блочного шифрования распределяет сообщение по всему пространству зашифрованных текстов). Итак, можно предполагать, что для создания корректного кода СВС-МАС пользователь действительно должен владеть ключом к соответствующего алгоритма блочного шифрования. Получатель, разделяющий ключ к с отправителем, должен заново вычислить код MAC на основе полученного сообщения и проверить, совпадает ли он с полученным вариантом. Если совпадает! сообщение было послано законным отправителем.
Предыдущая << 1 .. 130 131 132 133 134 135 < 136 > 137 138 139 140 141 142 .. 311 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed