4. Криптографические методы защиты информации
Антон может использовать разные ключи для зашифрования документа и для того, чтобы поставить под ним подпись. Это позволит ему при необходимости передать ключ шифрования правоохранительным органам, не компрометируя собственную подпись, а также по своему выбору отдать один из двух ключей на хранение доверенным третьим лицам, сохранив второй в тайне от посторонних.
Однако совместное использование шифрования и цифровой подписи таит в себе особую опасность, если для зашифрования и генерации цифровой подписи используется один и тот же криптографический алгоритм. Рассмотрим для примера протокол, согласно которому после приема сообщения Борис немедленно должен послать отправителю этого сообщения подтверждение о его получении.
1.
Антон подписывает сообщение при помощи своего тайного ключа, шифрует это сообщение, используя открытый ключ Бориса, и посылает его Борису:
E (S (Р))
2.
Борис расшифровывает сообщение Антона на своем тайном ключе, удостоверяется в подлинности подписи Антона с помощью его открытого ключа и восстанавливает открытый текст сообщения:
S (D (E (S (Р)))) = Р
3.
Борис подписывает сообщение Антона с использованием своего тайного ключа, шифрует это сообщение вместе со своей подписью на открытом ключе Антона и отсылает обратно:
E (S (P))
4.
Антон расшифровывает сообщение Бориса при помощи своего тайного ключа и проверяет подлинность подписи Бориса, используя его открытый ключ. Если в результате он получит сообщение, идентичное тому, которое он ранее отправил Борису, значит, сеанс связи прошел корректно.
К сожалению, если для шифрования и проверки цифровой подписи применяется одинаковый криптографический алгоритм (т. е., VK=EK И SK=DK), Зиновий, являясь законным пользователем сети связи, при определенных условиях сможет читать шифрованную переписку Антона. Для этого, перехватив сообщение Антона Е (S (P)), Зиновий шлет его от своего имени Борису. Борис после расшифрования и проверки цифровой подписи Зиновия получит:
E (D (E (D (P)))) = E (D (P))
В соответствии с протоколом Борис должен отправить Зиновию подтверждение правильности приема пришедшего ему сообщения:
E (E (E (D (P))))
В результате Зиновию останется только преобразовать сообщение, присланное ему Борисом, при помощи своего тайного ключа и известных открытых ключей Антона и Бориса — и вот он, заветный открытый текст Р сообщения, отправленного Антоном!
Конечно, все это стало возможным не только потому, что для шифрования и проверки цифровой подписи использовался один и тот же криптографический алгоритм.