Научная литература
booksshare.net -> Добавить материал -> Криптография -> Алферов А.П. -> "Основы криптографии Учебное пособие" -> 92

Основы криптографии Учебное пособие - Алферов А.П.

Алферов А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии Учебное пособие — М.: Гелиос АРВ, 2002. — 480 c.
ISBN 5-85438-025-0
Скачать (прямая ссылка): osnovikriptografii2005.djvu
Предыдущая << 1 .. 86 87 88 89 90 91 < 92 > 93 94 95 96 97 98 .. 126 >> Следующая

В заключение отметим, что существуют ключевые хэш-функции, не использующие какую-либо основу типа блочного шифрования или вычисления бесключевой хэш-функции, а разработанные независимо с учетом эффективной реализации на современных ЭВМ. Примером служит ключевая хэш-функция, используемая в алгоритме MAA (.Message Authenticator Algorithm), утвержденном стандартом ISO 8731-2.

§ 13.3. Бесключевые функции хэширования

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

1) однонаправленность,

2) устойчивость к коллизиям,

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

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

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

Для построения примера хэш-функции, удовлетворяющей свойству 1), рассмотрим функцию, заданную формулой

354
Хэш-функции

gk(x) = Ek(x)®x 9 где Ek — алгоритм блочного шифрования. Такая функция является однонаправленной по обоим аргументам. Поэтому на ее основе можно построить хэш-функцию по правилу (1), определив одношаговую сжимающую функцию одной из следующих формул:

f(x,H) = Ен(х)@х

или

/(X9H) = Ex(H)QH.

Первая из этих функций лежит в основе российского стандарта хэш-функции, а вторая — в основе американского стандарта SHA.

Справедливо следующее

Утверждение 1. Если функция хэширования h построена на основе одношаговой сжимающей функции/ по правшу (1), то из устойчивости к коллизиям функции / следует устойчивость к коллизиям функции h.

Действительно, если у функции h имеется коллизия, то на некотором шаге і должна существовать коллизия у функции / (при определении коллизий функцию /(х]9х2) следует рассматривать как функцию от одного переменного, полученного конкатенацией переменных X19X2 в один входной вектор).

Укажем взаимозависимость между свойствами 1) и 2).

Утверждение 2. Если хэш-функция устойчива к коллизиям, то она устойчива к нахождению второго прообраза.

Действительно, если для заданной пары сообщение-свертка можно подобрать второй прообраз, то полученная пара сообщений будет составлять коллизию.

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

В качестве примера несжимающей функции приведем функцию h(x) = х, которая, очевидно, является устойчивой

355
І лава U

к коллизиям и к нахождению второго прообраза, но не является однонаправленной.

В качестве примера сжимающей хэш-функции рассмотрим функцию Л, определенную условиями

h(x) = (I, X) , если битовая длина х равна я, h(x) = (0,g(x)), если битовая длина х больше п,

где g(x) — сжимающая я-битовая функция, устойчивая к коллизиям. Функция h также является устойчивой к коллизиям и к нахождению второго прообраза, но, очевидно, не является однонаправленной.

Утверждение 4. Пусть h : X —» F — хэш-функция и IXI > 21Y |. Тогда если существует эффективный алгоритм обращения функции h, то существует вероятностный алгоритм нахождения коллизии функции h с вероятностью успеха,, большей 1/2.

Доказательство. Будем случайно и равновероятно выбирать сообщение jc, вычислять у = h(x), x' = h~x(y) и сравнивать х с JCf. Покажем, что данный алгоритм имеет вероятность успеха р > 1 / 2 . Под успехом мы понимаем построение х', отличного от X.

Пусть X = Xx U... U Xm — разбиение X на классы, состоящие из сообщений с одинаковыми значениями хэш-функции. Ясно, что т < \Y\. Легко заметить, что выполняются следующие соотношения:

!*! W 2 •

> - ' >

Утверждение доказано.

356
Хэш-функции

Заметим, что трудоемкость подбора прообраза для однонаправленной функции или трудоемкость поиска второго прообраза оцениваются величиной о(2W). В то же время трудоемкость поиска коллизии оценивается величиной o{ln/2), так как в данной ситуации применима атака, основанная на парадоксе “дней рождений”.

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

Пусть Ek — алгоритм блочного шифрования, п — размер блока, / — размер ключа и G — некоторое отображение, ставящее в соответствие вектору длины п вектор длины /. Рассмотрим следующие одношаговые сжимающие функции, построенные на основе алгоритма ?*:

а) /(*> Н) = Ex (H) ® H (Дэвис — Мейер);

б) /(*,Н) = Е0(Н)(х)® х (Матиас — Мейер — Осеас);

в) f(x,Н) = Ев{Н)(х) ® х © H (Миагучи — Принель).

Значением любой из хэш-функций, построенных по правилу (1) из приведенных одношаговых сжимающих функций, является вектор длины п, равной размеру блока. В случае если эта величина оказывается недостаточной, ее можно увеличить, заменив одношаговую функцию/на функцию/! с удвоенной размерностью значений. Это можно сделать, например, путем двукратного применения функции / с последующим перемешиванием полублоков согласно формуле:
Предыдущая << 1 .. 86 87 88 89 90 91 < 92 > 93 94 95 96 97 98 .. 126 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed