Цифровая подпись на основе симметричных криптосистем

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

Пусть отправитель — абонент А хочет подписать цифровое сообщение и по­слать его адресату — абоненту B. Используя симметричный шифр Е = { Ek }, он может это сделать с помощью посредника — абонента C, имеющего ключ k1 для секретной связи с отправителем А, и ключ k2 для секретной связи с адресатом В. Эти ключи должны быть установлены заранее до начала протокола и могут использоваться многократно для нескольких под­писей.

Изложим протокол по шагам.

1. Отправитель А шифрует с использованием ключа k1 сообщение m для адресата В и отправляет криптограмму c посреднику, где

Ek1 (m) =c.

2. Посредник расшифровывает криптограмму c, используя ключ k1:

Ek1‑1 (c) =m.

3. Посредник C формирует блок информации IА = [ m,c,рА ], состоя­щий из расшифрованного сообщения m, копии криптограммы c и ин­формационного блока рА, подтверждающего, что сообщение исходи­ло от А (идентификатор абонента А). Используя ключ k2, он шифрует блок IА и посылает криптограмму d получателю В, где Ek2 (IА) =d.

4. В расшифровывает криптограмму d, используя ключ k2:

Ek2‑1 (d) = IА = [ m,c,рА ].

Теперь он может прочесть сообщение m и сертификат посредника рА о том, что его отправил А.

К достоинствам протокола следует отнести следующее:

1. Только посредник и отправитель А совместно владеют секрет­ным ключом k1, поэтому только А мог отправить посреднику сооб­щение, зашифрованное ключом k1 (подпись не подделывается),и под­тверждение посредником этой подписи достоверно. Если активный противник попытается выдать себя за отправителя А, посредник обнаружит это на шаге 2 и не отправит сообщение адресату В.

2. Эта подпись не тиражируется и подписанный документ неизменяем. Если бы В попытался сертификат посредника рА объединить с ложным со­общением m', то есть заявить, что он получил блок с со­общением m' и сер­тификатом рА, то посредник обнаружил бы это не­соответствие. Он запро­сил бы у В это ложное сообщение m' и крипто­грамму c. Зашифровав лож­ное сообщение m' на ключе k1, посредник обнаружил бы, что Ek1 (m') ≠ c, то есть вычисленная криптограмма не совпадает с криптограммой c, которую ему прислал В. Естественно, В не мог бы предъявить криптограмму c', которая согласуется с m', потому что он не знает ключа k1.

3. От этой подписи нельзя отречься. Если отправитель А позднее заявит, что он не посылал сообщения m, то хранящиеся у В сертификат посредника рА вместе с сообщением m засвидетельствуют обратное.

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

Рассмотрим еще один протокол с участием посредника, задача ко­торого — обеспечить предъявление получателем В третьему лицу D подписанного документа m, полученного им от отправителя А.

1. Абонент В объединяет в блок I = [ m,рА ]полученное сообщение m с сер­тификатом посредника рА и шифрует блок I на ключе k2: Ek2 (IА) =w,

после этого В посылает криптограмму w посреднику C (для пересылки третьему лицу D).

2. Посредник, используя ключ k2, расшифровывает криптограм­му w:

 Ek2‑1 (w) = I.

3. Посредник C шифрует блок I на секретном ключе k3, используемом для связи с D, и посылает D криптограмму v: Ek3 (I) =v.

4. D расшифровывает криптограмму v, используя k3:

Ek3‑1 (v) = I= [ m, рА ].

Теперь В может прочесть и сообщение m, и сертификат посредника рА, свидетельствующий, что его послал А.

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

Чтобы злоумышленник не смог воспользоваться многократно подпи­санным документом (например, денежным переводом), пред­назначенным для разового использования, в документ следует доба­вить информацион­ный блок, где зафиксированы время и дата подпи­сания документа, так называемая метка времени. Кроме того, метка времени на документе снижает риск отказа автора от своей подписи (если подписавший заявит, что у него украден закрытый ключ и до­кумент подписан не им). Соответствующий протокол с посредником предусматривает следующие шаги:

1. А подписывает сообщение.

2. А генерирует заголовок, содержащий идентификационную ин­фор­ма­цию, затем добавляет заголовок к подписанному сообщению, подпи­сывает все вместе и отправляет посреднику.

3. Посредник проверяет подлинность наружной подписи и под­тверждает идентификационную информацию. Далее он проставляет метку вре­мени на сообщении и на идентификационной информации. Затем он подписывает весь пакет и отсылает его как автору подписи А, так и адресату B.

4. B проверяет подлинность подписи посредника, идентификаци­онную информацию и подлинность подписи А.

5. А проверяет подлинность сообщения, которое посредник по­слал B. Если А не признает своего авторства, он немедленно заявляет об этом.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: