Односторонние функции шифрования

Во многих базовых технологиях безопасности используется еще один прием шифрования — шифрование с помощью односторонней функции (one-way function), называемой также необратимой функцией, хэш-функцией (hash function) или дайджест-функцией (digest function).

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

Подчеркнем, знание дайджеста не позволяет и даже не предполагает восстановления исходных данных. Для чегглке нужны односторонние функции шифрования (ОФШ)?

Для ответа на этот вопрос рассмотрим несколько примеров. Пусть требуется обеспечить целостность сообщения, передаваемого по сети. Отправитель и получатель договорились, какую ОФШ и с каким значением параметра — секретного ключа — они будут использовать для решения этой задачи. Прежде чем отправить сообщение, отправитель вычисляет для него дайджест и отправляет его вместе с сообщением адресату (рис. 1, а). Адресат, получив данные, применяет ОФШ к переданному в открытом виде исходному сообщению. Если значения вычисленного локально и полученного по сети дайджестов совпадают, значит, содержимое сообщения не было изменено во время передачи.

Рис. 1. Использование односторонних функций шифрования для контроля целостности

Таким образом, хотя знание дайджеста не дает возможности восстановить исходное сообщение, оно позволяет проверить целостность данных.

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

В отличие от контрольной суммы дайджест вычисляется с использованием параметра — секретного ключа. Поскольку значение секретного ключа для ОФШ известно только отправителю и получателю. Любая модификация исходного сообщения будет немедленно обнаружена.

На рис. 1, б показан другой вариант использования односторонней функции шифрования для обеспечения целостности данных. Здесь односторонняя функция не имеет параметра-ключа, но зато применяется не просто к сообщению, а к сообщению, дополненному секретным ключом. Получатель извлекает из полученных по сети данных исходное сообщение, потом дополняет его тем же известным ему секретным ключом и применяет к полученным данным одностороннюю функцию. Результат вычислений сравнивается с полученным по сети дайджестом.

Помимо обеспечения целостности сообщений, дайджест может быть использован в качестве электронной подписи для аутентификации передаваемого документа.

Построение односторонних функций является трудной задачей. Такого рода функции должны удовлетворять двум условиям:

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

Наиболее популярной в системах безопасности в настоящее время является серия хэш-функций MD2, MD4, MD5. Все они генерируют дайджесты фиксированной длины 16 байт. Адаптированным вариантом MD4 является американский стандарт SHA, длина дайджеста в котором составляет 20 байт. Компания IBM поддерживает односторонние функции MDC2 и MDC4, основанные на алгоритме шифрования DES.