Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие для заочников.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
573.95 Кб
Скачать

5.1. Криптографические хеш-функции

Все вышеописанные хеш-функции довольно легко обратимы и поэтому используются только для обнаружения непреднамеренных искажений данных. В технологиях защиты данных от злонамеренных искажений с середины 1990-х годов широко используются сложные хеш-функции, которые долгое время считались необратимыми, например SHA-1 и MD5. В 2003-2005 гг. была выполнена компроментация этих функций, т.е. демонстрация их "ненадежности": продемонстрирована возможность их обратимости (для отдельных частных случаев). Уже ведутся работы по разработке новых хеш-функций для замены SHA-1 и MD5 в протоколах шифрования данных.

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

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

Хэш-функция Н создает выход фиксированной длины.

Н (М) относительно легко (за полиномиальное время) вычисляется для любого значения М.

Для любого данного значения хэш-кода h вычислительно невозможно найти M такое, что Н (M) = h.

Для любого данного х вычислительно невозможно найти y x, что H (y) = H (x).

Вычислительно невозможно найти произвольную пару (х, y) такую, что H (y) = H (x).

Хэш-функция, которая удовлетворяет первым пяти свойствам, называется простой или слабой хэш-функцией. Если кроме того выполняется шестое свойство, то такая функция называется сильной хэш-функцией. Шестое свойство защищает против класса атак, известных как атака "день рождения".

В настоящее время существует три способа построения хэш-функций:

на основе трудно решаемой математической задачи;

на основе алгоритмов блочного шифрования;

разработанные с нуля.

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

5.2. Хэш-функции на основе симметричных блочных

алгоритмов

Наиболее очевидный подход состоит в том, чтобы шифровать сообщение М посредством блочного алгоритма в режиме СВС или СFВ с помощью фиксированного ключа и некоторого вектора инициализации. Последний блок шифротекста можно рассматривать в качестве хэш-значения сообщения М.

Безопасный вариант хэш-функции можно получить, используя блок сообщения в качестве ключа Мi, предыдущее хэш-значение Hi-1 - в качестве входа, а текущее Hi - в качестве выхода. При этом сообщение М разбивается на блоки Мi, определяемые длиной ключа и обрабатываются поочередно. Поскольку блочные алгоритмы в большинстве своем являются 64-битовыми, некоторые схемы хэширования проектируют так, чтобы хэш-значение имело длину, равную двойной длине блока.

Симметричное

шифрование

5.3. Основные характеристики современных хэш-функции

В настоящее время в системах информационной безопасности наиболее популярны хэш-функции MD4 (Message Digest 4), MD5 (Message Digest 5) и SHA (Secure Hash Algorithm).

Хэш-функция MD4 (Message Digest 4) — разработана профессором Массачусетского университета Рональдом Ривестом в 1990 году, и впервые описана в RFC 1186. Для произвольного входного сообщения функция генерирует 128-разрядное хеш-значение, называемое дайджестом сообщения. Этот алгоритм используется в протоколе аутентификации MS-CHAP, разработанном корпорацией Майкрософт для выполнения процедур проверки подлинности удаленных рабочих станций Windows.

Хэш-функция MD5 является модернизированной хэш-функцией MD4. Результатом хэш-функции MD5 также является 128-битовое хэш-значение. Алгоритм MD5 обрабатывает входной текст 512-битовыми блоками, разбитыми на шестнадцать 32-битовых подблоков. Выходом алгоритма является набор из четырех 32-битовых блоков, которые объединяются в единое 128-битовое хэш-значение.

Хэш-функция SHA-1

Безопасный хэш-алгоритм (Secure Hash Algorithm) был разработан национальным институтом стандартов и технологии (NIST) и опубликован в качестве федерального информационного стандарта (FIPS PUB 180) в 1993 году. SHA-1, как и MD5, основан на алгоритме MD4.

Для любого входного сообщения длиной меньше 264 бит алгоритм SHA выдает 160-битовый результат - хэш-значение (дайджест) сообщения. Алгоритм безопасного хэширования SHA используется в качестве входа алгоритма DSA, который вычисляет цифровую подпись сообщения. Обрабатывает входное сообщение 512-битовыми блоками.

Хэш-функции SHA-2

В 2001 году NIST принял в качестве стандарта три хэш-функции с существенно большей длиной хэш-кода. Часто эти хэш-функции называют SHA-2 или SHA-256, SHA-384 и SHA-512 (соответственно, в названии указывается длина создаваемого ими хэш-кода). Эти алгоритмы отличаются не только длиной создаваемого хэш-кода, но и длиной обрабатываемого блока, длиной слова и используемыми внутренними функциями. Сравним характеристики этих хэш-функций.

Алгоритм

Длина сообщения (в битах)

Длина блока (в битах)

Длина слова (в битах)

Длина дайджеста сообщения (в битах)

SHA-1

<264

512

32

160

SHA-256

<264

512

32

256

SHA-384

<2128

1024

64

384

SHA-512

<2128

1024

64

512

Алгоритм хэширования ГОСТ Р 34. 11-94

Является отечественным стандартом для хэш-функций. Его структура довольно сильно отличается от структуры алгоритмов SHA-1,2 или MD5, в основе которых лежит алгоритм MD4.

Длина хэш-кода, создаваемого алгоритмом, равна 256 битам. Алгоритм разбивает сообщение на блоки, длина которых также равна 256 битам. Кроме того, параметром алгоритма является стартовый вектор хэширования Н - произвольное фиксированное значение длиной также 256 бит.