Одним из самых ранних предложенных применений цифровых подписей было упрощение проверки собл ю-дения договоров о ядерных испытаниях [1454, 1467]. Соединенные Штаты и Советский Союз (кто-нибудь помнит Советский Союз?) разрешили друг другу разместить на чужой территории сейсмографы для слежения за ядерными испытаниями. Проблема была в том, что каждая из сторон должна была уверена в том, что другая сторона не подделала данные этих сейсмографов. Одновременно, другая сторона должна была быть уверена, что эти датчики посылают только ту информацию, которая нужна для слежения за ядерными испытаниями .
Метод условного удостоверения подлинности может решить первую проблему, но только цифровые подписи могут решить обе проблемы. Сторона, на территории которой стоит сейсмограф, может прочесть, но не изм е-нить данные сейсмографа, а следящая сторона знает, что данные не были подделаны .
2.7 Цифровые подписи и шифрование
Объединив цифровые подписи и криптографию с открытыми ключами, мы разрабатываем протокол, комб и-нирующий безопасность шифрования и достоверность цифровых подписей . Сравните с письмом от вашей маиы. Подпись удостоверяет авторство а конверт обеспечивает тайну.
(1) Алиса подписывает сообщение с помощью своего закрытого ключа. SA(M)
(2) Алиса шифрует подписанное сообщение открытым ключом Боба и посылает его Бобу. Ев (SA(M))
(3) Боб расшифровывает сообщение с помощью своего закрытого ключа. DB (EB (SA(M)))= SA(M)
(4) Боб проверяет подпись с помощью открытого ключа Алисы и восстанавливает сообщение. VA (SA(M))= М
Подпись перед шифрованием выглядит естественно. Когда Алиса пишет письмо, она подписывает его и з а-тем кладет в конверт. Если она положит письмо в конверт неподписанным, то Боб может забеспокоиться, вдруг письмо было тайно подменено. Если Боб покажет Кэрол письмо Алисы и конверт, Кэрол может обвинить Боба, что он врет о том, какое письмо в каком конверте пришло .
В электронной корреспонденции точно также является разумным использование подписи перед шифрованием [48]. Это не только более безопасно - враг не сможет удалить подпись из шифрованного сообщения и доб а-вить свою собственную - но существуют и юридические соображения: если подписываемый текст не виден подписывающему, когда он ставит подпись, то юридическая сила подписи невелика [1312]. Существуют также некоторые криптографические способы вскрытия такой последовательности действий, использующей подписи RSA (см. раздел 19.3).
Для Алисы не существует причин использовать одну пару ключей - открытый/закрытый - для шифрования и подписи. У нее может быть две пары ключей: одна для шифрования и одна для подписи . У такого разделения есть свои преимущества: Алиса может передать свой ключ шифрования полиции, не компрометируя свою по д-пись, один ключ может быть условно передан (см. раздел 4.13), не влияя на другой. У ключей могут быть различные длины и сроки действия.
Конечно же, для предотвращения повторного использования сообщений с этим протоколом должны быть использованы метки времени. Метки времени также могут защитить от других возможных ловушек, пример одной из которых приведен ниже.
Возвращение сообщения приприеме
Рассмотрим реализацию этого протокола с дополнительной возможностью подтверждения сообщений - п о-лучив сообщение, Боб обязательно возвращает подтверждение приема.
(1) Алиса подписывает сообщение с помощью своего закрытого ключа, шифрует подписанное сообщение от
крытым ключом Боба и посылает его Бобу.
Ев (SA(M))
(2) Боб расшифровывает сообщение с помощью своего закрытого ключа, проверяет подпись с помощью о т-
крытого ключа Алисы и восстанавливает сообщение.
VA фв (EB (SA(M))))= M
(3) Боб подписывает сообщение с помощью своего закрытого ключа, шифрует подписанное сообщение от
крытым ключом Алисы и посылает его Алисе обратно.
ЕА (SB(M))
(4) Алиса расшифровывает сообщение с помощью своего закрытого ключа и проверяет подпись с помощью
открытого ключа Боба. Если полученное сообщение совпадает с отправленным, она знает, что Боб пол у-
чил правильное сообщение.
Если для шифрования и проверки цифровой подписи используется один и тот же алгоритм, то существует возможность вскрытия [506]. В таких случаях операция цифровой подписи - противоположность операции шифрования: Vx = Ехи Sx = Dx
Пусть Мэллори - зарегистрированный пользователь со своей парой ключей: открытым и закрытым . Теперь посмотрим, как он сможет читать почту Боба. Сначала он запишет сообщение Алисы Бобу - этап (1). Затем, немного погодя, он пошлет это сообщение Бобу, утверждая, что оно отправлено самим Мэллори. Боб, думая, что это обычное сообщение от Мэллори, дешифрирует это сообщение своим закрытым ключом и пытается пров е-рить подпись Мэллори, дешифрируя ее с помощью открытого ключа Мэллори . В результате получается полная чепуха:
ЕА фв (Ев фА(М))))= Ем (DA(M))
Даже в этом случае, следуя протоколу, Боб посылает Мэллори полученное сообщение :
Ем фв Фм Фа(М))))
Теперь Мэллори остается только расшифровать сообщение с помощью своего закрытого ключа, зашифр о-вать его открытым ключом Боба, расшифровать снова с помощью своего закрытого ключа и зашифровать открытым ключом Алисы. Voila! Мэллори получает М.
Отнюдь не глупо предположить, что Боб может автоматически посылать Мэллори квитанцию. Этот прот о-кол, например, может быть встроен в его коммуникационное программное обеспечение и посылать квитанции автоматически. Именно готовность сообщить о приеме чепухи и нарушает безопасность . Если Боб проверит сообщение на осмысленность перед отправкой квитанции, он сможет избежать таких проблем с безопасностью .
Существуют модернизации этого способа вскрытия, предполагающие, что Мэллори пошлет Бобу сообщение, отличное от того, которое он желает перехватить. Никогда не подписывайте произвольных сообщений от других людей и не передавайте результаты дешифровки произвольных сообщений иным людям .