Все современные информационные технологии, связанные с обменом электронных документов в своей основе содержат “кирпичик”, который получил название цифровая подпись. К системам, использующим такие технологии, относятся автоматизированные банковские системы типа “Клиент – Банк”, системы для обеспечения электронных платежей в Интернет [1], платёжные системы на основе smart – карт, другие коммерческие и секретные системы связи.

Примерами действующих систем такого рода у нас в республике являются: система межбанковских электронных расчетов, внедрённая Национальным Банком Молдовы; клубная платёжная система на основе smart – карт, внедрённая компанией “DEKART S.R.L.” в торгово-промышленной компании “FIDESCO”; успешно эксплуатируется многовалютная банковская платёжная система на основе smart – карт, использующая цифровую подпись в АКБ “Mobias Banca”. Ведётся разработка автоматизированной банковской системы “Клиент – Банк”, предусматривающей использование цифровой подписи в АКБ “MoldovaAgroindbanc”.

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

О подписи вообще

Любая подпись, будь-то обычная или цифровая, всегда выполняет, по крайней мере, три функции: первая – это удостоверение того, что подписавшийся является тем, за которого мы его принимаем (функция авторизации); вторая — это то, что подписавшийся не может отказаться от документа, который он подписал; и третья – подтверждение того, что отправитель подписал именно тот документ, который отправил, а не какой-либо иной. Другими словами ему нельзя навязать другой или похожий документ, поскольку у него есть подписанная копия оригинала.

Заметим, что две первые функции обеспечивают защиту интересов лица, для которого предназначен документ (приемника), а третья защищает интересы подписывающего (передатчика).

Во всех этих случаях “работает” свойство подписи, называемое аутентичность, т.е. подлинность. Это свойство переносится на документ, под которым стоит подпись.

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

Говоря в доступных терминах, аутентификация – это не более и не менее, как установление приёмником и, возможно, арбитром того факта, что при существующем протоколе (правилах) аутентификации данное сообщение послано санкционированным (законным) передатчиком и что оно при этом не заменено и не искажено.

Большинство методов аутентификации электронных сообщений базируются на тех или иных криптографических алгоритмах. Такие методы аутентификации электронных сообщений существуют давно, но только с появлением нового направления в криптографии [2] они стали выполнять все требования, которые предъявляются к цифровой подписи.

Новое направление в криптографии связано с введение понятия системы с открытыми ключами. Одна из таких систем появилась в 1978 году, как результат работы трёх её авторов R. Rivest, A. Shamir, L. Adleman, и сейчас носит название RSA [3].

Такие криптосистемы с самого начала были ориентированны на обеспечение возможности выполнения с помощью них цифровой подписи электронных документов. Для полноты картины здесь необходимо упомянуть ещё одну систему с открытыми ключами, автором которой является T. El Gamal [4] и которая стала основой для создания государственных стандартов на цифровую подпись США (Digital Signature Standard — DSS), так и России (ГОСТ 34.10).

Прежде чем рассматривать цифровую подпись как таковую, мы должны понять, в чём состоит суть криптосистем с открытыми ключами.

Криптография с открытыми ключами

По большому счёту для человека не знакомого с криптосистемами на основе открытых ключей и имеющего поверхностное представление о криптографии вообще, понятие криптография с открытыми ключами, по крайней мере, кажется нонсенсом: “Как можно защитить информацию, используя несекретный ключ?”

Дело в том, что в таких системах на самом деле у каждого участника (абонента) есть два разных, но связанных математически друг с другом ключа: один – совершенно секретный, а второй открытый и доступный всем абонентам.

Система устроена так, что сообщение, зашифрованное с помощью открытого ключа, может быть открыто только с помощью секретного ключа и наоборот. Таким образом, ключи являются взаимно обратными друг к другу. Обычно эти ключи для удобства обозначают буквами E и D.

Как мы уже говорили выше, каждый абонент системы имеет свою пару ключей (E и D). Эти ключи он создает сам и, поэтому секретный ключ действительно принадлежит только ему (при этом он должен хранить его в соответствии с требованиями, предъявляемыми к сохранности секретных документов). Свои ключи E все абоненты хранят в секрете, а ключи D делаются доступными для пользователей системы.

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

Теперь мы готовы рассмотреть принцип работы цифровой подписи на основе системы с открытыми ключами. Предположим, что некоторый абонент A должен подписать какое-либо сообщение. Для этого он, с помощью специальной математической функции, так называемой хеш-функции, создаёт дайджест (слепок) этого сообщения и зашифровывает его своим секретным ключом E. Свойства хеш-функции таковы, что полученный с помощью её дайджест “жестко” связан с сообщением. Зашифрованный дайджест “прикрепляется” к сообщению, теперь он является цифровой подписью сообщения.

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

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

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

sec5

Рис. 1.

Сертификация открытых ключей

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

Такая проблема решается с помощью сертификации (освидетельствования) открытых ключей санкционированных пользователей системы. Для этого открытые ключи пользователей заверяются цифровой подписью центра сертификации – специальной организацией создаваемой группой пользователей системы.

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

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

Заключение

Подведём итоги. Легко видеть, что цифровая подпись на основе систем с открытыми ключами полностью выполняет три функции подписи, которые были перечислены в начале этой статьи.

Теперь приведём сравнительную оценку обычной подписи (под обычной подписью мы здесь понимаем подпись и печать) с цифровой подписью с точки зрения выполняемых ими защитных функций.

  1. Защита целостности документа. В случае применения обычной подписи и печати после подписания документ может быть изменён (например, допечатано пару нулей). Изменить же электронный документ, подписанный цифровой подписью невозможно, поскольку содержание документа через его дайджест “включается” в саму подпись.
  2. Подделка подписи. Чтобы подделать обычную подпись достаточно иметь компьютер, цветные сканер и принтер, а также образец подписи и печати. Стоимость перечисленного оборудования в настоящее время не превышает $2000. Далее дело техники.
  3. Для поделки цифровой подписи, при рекомендуемой специалистами на настоящее время длине ключей, необходимо иметь специальный суперкомпьютер стоимостью в несколько сот миллионов долларов и запас по времени приблизительно в 300 – 500 лет. Если длину ключей увеличить в два раза, то стоимость оборудования и время вычисления подписи резко возрастают.
  4. Конфиденциальность. Документ, подписанный обычной подписью, может быть прочитан любым лицом, к которому он попал в руки. В случае цифровой подписи предусматривается режим, когда документ может быть прочитан только лицом, которому он адресован.

Таким образом, преимущества цифровой подписи перед обычной подписью бесспорны, а, если учесть, что в системах, где циркулируют электронные документы, предъявляются повышенные требования к целостности и аутентичности документов, то альтернативы для цифровой подписи нет. Вот почему этот “кирпичик” в последние годы получил широкое распространение в различных системах передачи информации.

Ссылки

[1] В. Олейник, “Smart – карты и электронные платежи в Интернет”. Банки и Финансы., Инф. Агентство “ИНФОТАГ”, № 8 (28), август 1997, с.71-80.

[2] W. Diffie and M.E. Hellman, “New directions in cryptography”, IEEE Trans. on Info. Theory, vol. IT-22, pp. 644-654, Nov. 1976.

[3] R. Rivest, A. Shamir, and L. Adleman, “A Method for Obtaining Digital Signatures and Public Key Cryptosystems”, Commun. of the Assoc. of Comp. Math., Vol. 21, pp. 120-126, Feb. 1978.

[4] T. El Gamal, “A Public – Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms”, IEEE Trans. on Info. Theory, vol. IT-31, pp. 469-472, July 1985.

Компания Dekart

В.Олейник
д.т.н, ас. Академик МАИ, Компания DEKART,
E-mail: owl@dekart.com
Home Page: https://www.dekart.com