Научная литература
booksshare.net -> Добавить материал -> Информатика -> Петров А.А. -> "Компьютерная безопасность. Криптографические методы защиты" -> 32

Компьютерная безопасность. Криптографические методы защиты - Петров А.А.

Петров А.А. Компьютерная безопасность. Криптографические методы защиты — M.: ДМК, 2000. — 448 c.
ISBN 5-89818-064-8
Скачать (прямая ссылка): comp_safety.pdf
Предыдущая << 1 .. 26 27 28 29 30 31 < 32 > 33 34 35 36 37 38 .. 181 >> Следующая

1.5. Хэш-функции
1.5.1. Общие сведения
Во всем многообразии проблем обеспечения информационной безопасности, решаемых при помощи криптографических методов и средств, задача обеспечения целостности и достоверности передаваемой информации представляется на сегодняшний день одной из самых острых. С учетом современных требований к информационно-телекоммуникационным системам эта задача все чаще и чаще превращается в серьезную проблему. Особенно актуальна она в финансовой сфере, поскольку для надежного функционирования платежной системы необходимым условием является сохранение всеми документами целостности и достоверности.
Как уже говорилось ранее, неотъемлемой частью электронно-цифровой подписи является использование так называемых хэш-функций. Кроме того, они находят широкое применение и для решения ряда других вопросов, связанных с обеспечением защиты потоков данных, например для хэширования паролей пользователей с целью дальнейшего их шифрования и хранения в базе данных. Данный метод применяется в ОС Windows NT (используется хэш-функция MD 4 совместно с DES).
Одной из самых важных характеристик хэш-функций, обусловивших их широкое внедрение в практику, оказалась способность получать из открытого текста большой длины (например, в хэш-функции SEIA максимальная длина открытого текста ограничена 264 битами) хэш-кода гораздо меньшей длины (в отечественном стандарте ГОСТ P 34.11-94 длина хэш-кода равна 256 битам, западные хэш-функции в основном имеют хэш-код
Хэш-функции
79
длиной 160-180 бит), что в некоторых случаях позволяет достаточно эффективно сократить сетевой трафик. Применение хэш-функций позволяет устранить избыточность открытого текста, что при дальнейшем криптографическом преобразовании хэш-кода открытого текста положительно сказывается на криптографических свойствах зашифрованного сообщения. Например, к хэш-коду открытого текста невозможно применить атаку методом протяжки вероятного слова.
Таким образом, хэш-функции являются необходимым элементом при применении ряда криптографических алгоритмов и протоколов. Под хэш-функциями понимаются функции, отображающие последовательность произвольной длины в значение фиксированной длины, называемой хэш-кодом или выжимкой.
1.5.2. ТИПЫ хэш-функций
Существует три типа построения хэш-функций:
• на основе какой-либо трудновычисляемой математической задачи;
• на основе алгоритмов блочного шифрования;
• разработанные с нуля.
Каждый из вышеперечисленных методов имеет свои достоинства и недостатки, однако наиболее распространенными на сегодняшний день оказались последние два. Это связано с тем, что при построении хэш-функций с нуля появляется возможность учитывать такое их свойство, как эффективная программная реализация. Широкое применение хэш-функций, построенных на основе алгоритмов блочного шифрования, является результатом тщательной проработки вопроса стойкости многих из существующих алгоритмов.
В данном разделе приведены два примера практической реализации хэш-функций (SHA, построенная с нуля, и ГОСТ P 34.11-94 на основе блочного алгоритма шифрования ГОСТ 28147-89). Вопросы криптографической стойкости хэш-функций рассмотрены в разделе 1.5.3.
Стандарт Security Hash Algorithm
Security Hash Algorithm (SHA) разработан в NIST совместно с NSA для использования со стандартом на цифровую подпись DSS. Этот алгоритм предназначен для работы с входными последовательностями длиной < 264 бит и имеет хэш-код длиной 160 бит. Принципиальную основу SHA составляет алгоритм MD 4, созданный Ривестом.
80
Общие сведения по классической криптографии
Работа алгоритма начинается с того, что входная последовательность делится на блоки по 512 бит. Перед тем как разбить ее, необходимо, чтобы длины полученных блоков в битовом выражении были равны 512 битам. Для этого к данной последовательности приписываются единица и необходимое количество нулей, чтобы ее длина стала на 64 бита меньше числа, кратного 512. Затем к последовательности приписывается 64-битное представление длины входной последовательности.
Далее инициализируются пять переменных по 32 бита:
А - 0x67452301 В - 0xtfcdab89 С - 0x98badcfe D = 0x10325476 E = 0xc3d2elf0
Основной цикл, совершаемый над одним 512-битным блоком, состоит из четырех подциклов, в каждом из которых используются по 20 операторов. Перед тем как начать преобразования, создаются копии перечисленных выше пяти переменных а, Ь, с, d и е.
Каждый оператор представляет собой набор нелинейных функций от трех переменных (В, С и D) и операций циклического сдвига и суммирования. Эти функции имеют следующий вид:
1 раунд I1(X, Y, Z) = (X Л Y) V (( "I X) Л Z)
2 раунд f2(X, Y, Z) = Х0 Ye Z
3 раунд I3(X, Y, Z) = (X Л Y) V (X Л Z) V (YaZ)
4 раунд f4(X, Y, Z) = X Ф Y © Z
Для каждого раунда определяется одна константа:
K1 - 0х5а827999 - 2^/4 K2 = 0x6ed9ebal = 3^/4
K3 = 0x8flbbcdc = 5^/4 K4 = 0xca62cld6 = 10^/4
Каждый обрабатываемый блок (512 бит) разбивается на 16 подблоков по 32 бита в каждом (M0 -г M15), затем к нему добавляется до 80 подблоков длиной 32 бита (W16 + W79) согласно следующему правилу:
Предыдущая << 1 .. 26 27 28 29 30 31 < 32 > 33 34 35 36 37 38 .. 181 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed