В. Р. Гинзбург Перевод с английского



Pdf көрінісі
бет56/203
Дата26.09.2024
өлшемі2,74 Mb.
#145829
1   ...   52   53   54   55   56   57   58   59   ...   203
Байланысты:
практическая криптография


Глава 6. Функции хэширования
для достижения 128-битового уровня безопасности, что в точности совпадает
со сниженным уровнем безопасности “исправленной” версии SHA-256. Такое
совпадение неслучайно. В обоих случаях разрыв между размером крипто-
графического значения и заявленным уровнем безопасности вызван наличи-
ем атак на основе коллизий. Поскольку мы полагаем, что атаки на основе
коллизий существуют всегда, различие между размерами результатов функ-
ций хэширования и уровнями безопасности прекрасно укладывается в нашу
концепцию.
Приведем более формальное определение нашего исправления.
Определение 7
Пусть
h
— итеративная функция хэширования. Тогда
функция хэширования
h
d
определяется выражением
h
d
:=
h
(
h
(
m
))
и име-
ет заявленный уровень безопасности, равный
min(
k, n/
2)
, где
k
— уровень
безопасности функции
h
, а
n
— размер результата функции хэширования.
В большинстве случаев мы будем применять данную конструкцию к функ-
циям семейства SHA. Для любой функции хэширования SHA-
X
, где
X
рав-
няется 1, 256, 384 или 512, мы определим SHA
d

X
как функцию, которая
отображает
m
на SHA

X
(
SHA

X
(
m
))
. В частности, SHA
d

256
— это
всего лишь функция
m
7→
SHA

256(
SHA

256(
m
))
.
Однако все эти конструкции слишком новы, а потому еще не заслужили
доверия. К счастью, можно показать, что наша исправленная функция хэ-
ширования
h
d
обладает, как минимум, такой же стойкостью к атакам, что
и исходная функция
h
7
. Аналогичный подход повторного хэширования ис-
пользуется в алгоритме HMAC для защиты от атак с удлинением сообщения.
И функция
h
DBL
, и функция
h
d
позволяют избежать проблемы удлинения
сообщения, которая представляет наибольшую угрозу для реальных систем.
Вопрос о том, действительно ли функция
h
DBL
обеспечивает
n
-битовый уро-
вень безопасности, пока остается открытым. Мы предпочитаем доверять обе-
им функциям на
n/
2
-битовом уровне безопасности, поэтому на практике ре-
комендовали бы использовать более эффективную функцию
h
d
.
6.5
Какую функцию хэширования выбрать
Альтернатив не так уж много. Мы бы рекомендовали выбрать одну из
функций семейства SHA
d
. Вопрос состоит лишь в том, какой размер хэш-
кода и соответственно какая производительность нужны вашей системе.
7
Здесь мы вновь немного схитрили. Повторное хэширование сокращает множество зна-
чений функции, и осуществлять атаки, в основе которых лежит парадокс задачи о днях
рождения, становится немного проще. Данный эффект, однако, имеет очень небольшое
влияние и хорошо укладывается в рамки приближений, используемых нами во всех дру-
гих случаях.


6.6. Работа на будущее
117
Как уже отмечалось, криптографическое сообщество провело совсем мало
работы по изучению функций хэширования. В отличие от блочных шифров,
которые часто подвергались различающим атакам, на функции хэширования
в большинстве случаев осуществлялись атаки на основе коллизий. Таким об-
разом, еще никто не анализировал функции хэширования с практической
точки зрения на предмет соответствия нашему определению безопасности.
К счастью, фортуна улыбнулась нам, и функция
h
d
уже позволяет использо-
вать сниженный,
n/
2
-битный уровень безопасности, так что это не проблема.
Семейство функций SHA разрабатывалось специально с учетом атак на осно-
ве коллизий, поэтому они должны обеспечивать, как минимум, такой уровень
безопасности.
Приведенные аргументы, очевидно, свидетельствуют не в пользу функ-
ции SHA
d
-1, поскольку ее 80-битового уровня безопасности явно недостаточ-
но для долговременного применения. У нас остаются SHA
d
-256 и SHA
d
-512.
(Использовать SHA
d
-384 нет смысла, потому что, проделав такой же объем
работы, вы можете получить и SHA
d
-512.)
Поскольку желательный уровень безопасности наших систем — 128 бит,
выбор в качестве функции хэширования SHA
d
-256 очевиден. Для обеспечения
более высоких уровней безопасности следует использовать SHA
d
-512. Не ду-
майте, однако, что действительно сможете достигнуть такого уровня безопас-
ности — для этого вам понадобился бы хороший блочный шифр с ключами,
размер которых превышает 256 бит. И разумеется, падение производительно-
сти, вызванное применением функции SHA
d
-512, делает ее неприемлемой для
многих систем. В подобных случаях вам придется ограничиться 128-битовым
уровнем безопасности и функцией SHA
d
-256.
6.6
Работа на будущее
Над функциями хэширования еще нужно работать и работать. В целом
нам кажется, что навыки открытого криптографического сообщества отно-
сительно разработки и взлома функций хэширования находятся примерно
на том же уровне, на котором находились наши навыки работы с блочными
шифрами в середине 80-х годов прошлого века. Нам предстоит узнать еще
очень многое о том, как создавать и взламывать функции хэширования. Хо-
рошим началом могло бы стать осуществление атак на версии функций SHA
с сокращенным количеством раундов. Пока же, к сожалению, в этой области
не наблюдается никакого прогресса.



Достарыңызбен бөлісу:
1   ...   52   53   54   55   56   57   58   59   ...   203




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет