- •Глава 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», предполагающей централизованное хранение всех ключей, используемых организациями и частными лицами.