- •Глава 9. Электронная цифровая подпись
- •9.1. Обеспечение целостности и авторства в электронном документообороте
- •9.2 Функции хэширования
- •9.3. Алгоритм sha-1
- •9.4. Стандарты алгоритмов формирования и проверки эцп
- •9.5. Протоколы взаимодействия и сертификаты в стандарте х.509
- •9.6. Структура сертификата открытых ключей
- •9.6.1. Пример сертификата в технологии Fortezza
- •Вопросы к главе 9
9.2 Функции хэширования
Хэш-функции являются одним из важнейших элементов криптосистем, реализующих ЭЦП.
Реальные хэш-функции представляют собой сложные алгоритмы, рекомендованные в соответствующих стандартах. Методика их обоснования выходит за рамки данной книги.
Определение
хэш-функции. Хэш-функция
– преобразование битовой строки
произвольной длины в битовую строку
(блок) фиксированной длины (обычно,
128-512 битов), обладающее следующими
свойствами.
1.
Восстановление
по
,
исходя из соотношения
,
вычислительно нереализуемо.
2.
Исходя из
и
,
вычислительно нереализуемо определение
второго прообраза для
,
т.е. такого сообщения
,
что
.
В криптографической практике, как правило, используются т.н. свободные от коллизий хэш-функции, удовлетворяющие следующему, более жесткому, чем предыдущее, условию 3.
3.
Требуется, чтобы нахождение произвольной
коллизии, т.е. пары сообщений
,
(
),
таких, что
,
было вычислительно нереализуемо.
В криптографии применяются также преобразования по свойствам близкие к хэш-функциям, которые используются, например, для аутентификации сообщений в симметричных криптосистемах.
Их
называют кодами аутентификации сообщений
– Message
Authentication
Code
(MAC). Коды MAC могут быть постороены как
хэш-функции с секретным параметром
в виде
.
Вычисление MAC для формируемых в сеансе связи случайных текстов позволяет абонентам продемонстрировать друг другу обладание общим симметричным ключом, не позволяя злоумышленнику получить пару открытый-шифрованный текст.
Для аутентификации сообщений в симметричных криптосистемах MAC передается вместе с сообщением. Абонент, которому известен симметричный ключ, перевычисляет MAC и сравнивает его с принятым значением.
В
компьютерных системах и сетях широко
используется типовой алгоритм HMAC
вычисления кода МАС, с использованием
произвольной встроенной хэш-функции
.
Это связано с тем, что стандартные хэш-функции непосредственно не предусматривают использование секретных параметров.
Однако желательно иметь возможность применять их для выработки кодов аутентификации сообщений, поскольку криптографическая стойкость хэш-функций высока, а время их вычисления меньше, чем время шифрования данных, скажем, блочными шифрами при построении кодов аутентификации на их основе.
Хэш-функции также стандартизированы. Кроме того, существует общая методика построения хэш-функций на основе блочных шифров.
Характеристики некоторых стандартизованых хэш-функций приведены в таблице 9.1.
Наиболее известные из хэш-функций: MD2, MD4, MD5 и SHA-1.
Три алгоритма серии MD разработаны Ривестом в 1989-м, 90-м и 91-м годах соответственно. Все они преобразуютбитовые строки произвольной длины произвольной длины в 128-битный хеш-код (дайджест).
Таблица 9.1 Характеристики хэш-функций
|
Название |
Характеристика функции |
|
MD2 |
Длина хэш-кода - 128 бит. Самая медленная, рассчитана для 8-битовых машин. Используется относительно редко. |
|
MD4 |
Длина хэш-кода 128 бит. Быстрая, оптимизирована для 32-битовых машин. Не популярна, т.к. имеются сообщения о ее дешифровании |
|
MD5 |
Длина хэш-кода - 128 бит. Наиболее распространенное применение – совместно с RSA. Похожа на MD4. Более надежна, но средства повышения безопасности делают ее на треть медленнее, чем MD4. |
|
SHA-1 |
Длина хэш-кода-160 бит. Предназначена для использования в стандарте DSS. Использует принципы, заложенные в MD4, MD5. |
|
ГОСТ 34.311 |
Длина хеш-кода 256 бит. Построена на основе оригинальных преобразований. Использует, в том числе алгоритм шифрования ГОСТ 28147-89. Применяется совместно с Национальным стандартом ДСТУ 4145-2002. |
В алгоритме MD4 довольно быстро были найдены слабые места, поэтому он был заменен алгоритмом MD5, в котором каждый блок участвует не в трех, а в четырех различных циклах.
Алгоритм
SHA (Secure Hash Algorithm), разработанный NIST,
повторяет идеи серии MD. В SHA используются
тексты более
битов. Данный алгоритм первоначально
предназначался для использования в
рамках государственной программы США
– «Capstone», предполагающей централизованное
хранение всех ключей, используемых
организациями и частными лицами.
