Использование цифровых подписей

Одним из самых ранних предложенных применений цифровых подписей было упрощение проверки собл ю-дения договоров о ядерных испытаниях [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! Мэллори получает М.

Отнюдь не глупо предположить, что Боб может автоматически посылать Мэллори квитанцию. Этот прот о-кол, например, может быть встроен в его коммуникационное программное обеспечение и посылать квитанции автоматически. Именно готовность сообщить о приеме чепухи и нарушает безопасность . Если Боб проверит сообщение на осмысленность перед отправкой квитанции, он сможет избежать таких проблем с безопасностью .


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