
- •Тема 1. Основные понятия и определения
- •Тема 2. Основные криптографические методы защиты информации
- •2.1. Шифры перестановки
- •2.2. Шифры подстановки (замены)
- •2.3. Шифрование методом гаммирования
- •Тема 3. Классификации современных криптографических методов
- •3.1. Поточные шифры
- •3.2. Блочные шифры
- •3.2.1. Алгоритм шифрования данных des
- •2) Последовательность преобразований отдельного раунда
- •3) Создание подключей
- •3.2.2. Алгоритм тройной des
- •3.2.3. Тройной des с двумя ключами
- •3.2.4. Режимы использования блочных шифров
- •3.2.5. Алгоритм шифрования aes
- •3.2.6. Российский стандарт шифрования данных гост 28147-89
- •3.2.7. Особенности применения алгоритмов
- •Тема 4. Асимметричные криптосистемы
- •4.1. Концепция криптосистемы с открытым ключом
- •4.2. Однонаправленные функции
- •4.3. Криптосистема шифрования данных rsa
- •4.4. Алгоритм обмена ключа Диффи-Хеллмана
- •Тема 5 Обеспечение целостности данных. Хэш- функции
- •5.1. Криптографические хеш-функции
- •5.3. Основные характеристики современных хэш-функции
- •Тема 6. Цифровая подпись
- •6.1. Алгоритм цифровой подписи rsa
- •6.2. Алгоритм цифровой подписи Эль Гамаля (egsa)
- •6.3. Стандарт цифровой подписи dss
- •6.3. Алгоритм цифровой подписи гост р34.10-94
- •Тема 7. Алгоритмы распределения ключей с использованием третьей доверенной стороны
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 бит.