Опубликован: 19.01.2010 | Уровень: специалист | Доступ: свободно
Лекция 3:

Цифровая подпись

Аннотация: Эта лекция имеет несколько целей: определить понятие цифровой подписи, определить службы безопасности, обеспеченные цифровой подписью, определить атаки цифровых подписей, обсудить некоторые схемы цифровой подписи, включая RSA, Эль-Гамаля (ElGamal), Шнорра (Schnorr), DSS и эллиптической кривой, описать некоторые приложения цифровых подписей.

Мы все знакомы с понятием подписи. Человек подписывает документ, чтобы показать, что нечто сделано им самим или было им одобрено. Подпись - доказательство получателю, что документ исходит от истинного объекта. Когда клиент подписывает чек, банк должен убедиться, что чек принадлежит клиенту и никому другому. Другими словами, подпись на документе является признаком установления подлинности автора - подлинности документа. Рассмотрим картину, подписанную художником. Подпись на предмете искусства, если она подлинная, означает, что этот предмет, вероятно, подлинный.

Когда Алиса передает сообщение Бобу, Боб должен проверить подлинность передатчика; он должен убедиться, что сообщение исходит от Алисы, а не от Евы. Боб может попросить, чтобы Алиса подписала сообщение с помощью электроники. Другими словами, электронная подпись может доказать подлинность Алисы как передатчика сообщения. Мы называем этот тип подписи цифровая подпись.

В этой лекции мы сначала рассмотрим некоторые проблемы, связанные с цифровыми подписями, а затем перейдем к рассмотрению различных схем цифровой подписи.

3.1. Сравнение

Рассмотрение начнем с отличия между обычными подписями и цифровыми подписями.

Включение

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

Метод проверки

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

Отношения

В случае обычной подписи есть отношения "один ко многим" между подписью и документами. Человек использует ту же самую подпись, чтобы подписать много документов. Для цифровой подписи есть непосредственные отношения между подписью и сообщением. Каждое сообщение имеет свою собственную подпись. Подпись одного сообщения не может использоваться в другом сообщении. Если Боб получает два сообщения, один за другим, от Алисы, он не может использовать подпись первого сообщения, чтобы проверить второе. Каждое сообщение нуждается в новой подписи.

Резервное копирование

Другая разность между двумя типами подписей - качество, названное резервное копирование. При обычной подписи ее копия на поступившем документе может отличаться от копии, сохраненной в архиве. В цифровой подписи нет такого различия, если нет указателя времени (такого как метка времени) на документе. Например, предположите, что Алиса передает документ, инструктирующий Боба заплатить Еве. Если Ева перехватывает документ и сохраняет подпись, она может воспользоваться этим позже (скопировать подпись), чтобы снова получить деньги от Боба.

3.2. Процесc

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

Процесс передачи цифровой подписи

Рис. 3.1. Процесс передачи цифровой подписи

Потребность в ключах

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

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

Мы можем добавить секретный и открытый ключи к рис. 3.1, чтобы дать законченное понятие цифровой подписи (см. рис. 3.2). Обратите внимание, что когда документ подписан, любой, включая Боба, может проверить это, потому что каждый имеет доступ к открытому ключу Алисы. Алиса не должна использовать свой открытый ключ для того, чтобы подписывать документ, потому что тогда любой сможет подделать ее подпись.

Дополнение передачи цифровой подписи ключом Алисы

Рис. 3.2. Дополнение передачи цифровой подписи ключом Алисы

Можем ли мы использовать секретный (симметричный) ключ, чтобы и подписать и проверить подпись? Ответ отрицателен по нескольким причинам.

Первая: ключ засекречивания известен только двум объектам (например, Алисе и Бобу). Так, если Алиса должна подписать другой документ и передать его Тэду, она должна использовать другой ключ засекречивания.

Вторая: как мы увидим, создавая ключ засекречивания для сеанса, в него включают признаки установления подлинности, которые используют цифровую подпись. Мы получим порочный круг.

Третье: Боб может использовать ключ засекречивания, который он использует между собой и Алисой, подписать документ, передать его Тэду и имитировать, что он прибыл от Алисы.

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

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

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

Подписание дайджеста

В "B. Стандарты и организации по стандартизации" мы узнали, что криптосистемы с асимметричными ключами очень неэффективны, когда имеют дело с длинными сообщениями. В системе цифровой подписи сообщения обычно длинные, но мы должны использовать асимметрично-ключевые схемы. Решение состоит в том, что подпись дайджеста сообщения - намного короче, чем сообщение. Как мы узнали в "С. Набор протоколов TCP/IP" , тщательно выбранный дайджест сообщения имеет непосредственное отношение к сообщению. Передатчик может подписать дайджест сообщения, а приемник может проверить дайджест сообщения, - эффект тот же самый. рис. 3.3 показывает подписание дайджеста в системе цифровой подписи.

Подписание дайджеста

увеличить изображение
Рис. 3.3. Подписание дайджеста

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

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

Евгений Виноградов
Евгений Виноградов
Экстернат
Илья Сидоркин
Илья Сидоркин
Как получить диплом?
Сергей Огородников
Сергей Огородников
Россия, Сыктывкар
Дмитрий Карпов
Дмитрий Карпов
Россия, Нижний Новгород