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
с сокращенным количеством раундов. Пока же, к сожалению, в этой области
не наблюдается никакого прогресса.