<<Назад

Все

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

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

Для начала посмотрим, как используется обычная подпись на бумажных документах. Обычно подпись подтверждает, что тот, кто её поставил, согласен (или ознакомлен) с подписанным документом. Также подразумевается, что документ не был изменён после подписания. Таким образом, подпись служит для подтверждения подлинности документа.

Теперь рассмотрим такой пример: пусть у нас есть некий текст, набранный в текстовом редакторе. Пусть мы отправляем этот электронный документ другим людям, например, электронной почтой. Как сделать так, чтобы получатель мог быть уверенным, что он получил этот документ именно от нас, и что никто не изменил его? Для этого и служит цифровая подпись.

Как это работает.

Любые данные, с которыми работает компьютер, в том числе и электронный документ, можно представить как последовательность чисел. Эту последовательность чисел можно рассматривать как последовательность байт. Байт - это просто число от 0 до 255 (Компьютеры работают в двоичной системе счисления, и в этой системе 256 - круглое число, 255 в двоичной системе похоже на 99 в десятичной). При создании электронной подписи создаются две последовательности байт. Их называют открытым и закрытым ключами. Как и любые данные, эти ключи можно сохранить в двух файлах. Можно проделать некоторые специальные вычисления, используя наш документ как последовательность чисел и наш закрытый ключ тоже как последовательность чисел. Результат этих вычислений - тоже некая последовательность чисел. Это и есть электронная подпись документа. Её можно сохранить в отдельный файл и передать получателю вместе с документом. Обычно электронную подпись добавляют в сам файл документа и отправляют получателю. Электронная подпись обладает следующим свойством: если выполнить некие специальные вычисления, используя документ, подпись и открытый ключ, то можно точно сказать, был ли изменён документ после того, как он был подписан. Второе важное свойство электронной подписи - если у кого-то есть подписанный документ, сама подпись и открытый ключ, то не существует способа узнать закрытый ключ. ( Точнее, не существует простого способа. Другими словами, для "подделки" электронной подписи требуется большое, десятки лет, время. А за такое большое время документ потеряет актуальность.) Также важно то, что сами действия, которые нужно выполнить для получения подписи и для проверки подписи, не являются секретными. (Более того, эти способы вычислений вместе со способом генерации ключей стандартизированы).


Получается, что для того, чтобы мой получатель был уверен, что документ подписан мной и не был изменён после подписания, нужно сделать следующее:

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

  2. Передать открытый ключ получателю, причём получатель должен быть уверен, что это мой открытый ключ, например, можно передать его лично. Может возникнуть вопрос: если открытый ключ нужно передать так, чтобы получатель был уверен, что это мой ключ, то с таким же успехом можно передать и сам документ. Но ведь открытый ключ нужно передать один раз, а потом можно отправлять много подписанных документов. Закрытый же ключ нужно хранить в надёжном месте, это как печать, которой мы делаем отпечаток на бумаге.

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

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


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


Покажем использование этого механизма на примере работы системы клиент-банк.

Сначала клиент банка создаёт пару ключей. Программу для создания пары ключей предоставляет банк. Закрытый ключ может дополнительно быть защищён паролем. Открытый ключ печатается на бумаге в виде последовательности цифр. Распечатка открытого ключа заверяется подписью клиента (или подписью руководителя предприятия и печатью) и относится в банк. После того, как сотрудники банка введут данные в систему, можно начинать использовать систему клиент-банк. При помощи клиентской программы, которую тоже предоставляет банк, можно создать платёжное поручение, подписать его своей электронной подписью и затем отправить в банк. Банк, используя открытый ключ, проверит подпись и перечислит деньги на указанный счёт.

 

 

<<Назад

Все

Сайт управляется системой uCoz