На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

Реализация цифровой подписи

Чтобы поставить цифровую подпись под конкретным документом, необходимо
проделать довольно большой объем вычислений. Эти действия осуществляются в два
этапа:
О генерация ключей;
□ подписание документа.
При использовании несимметричного шифрования, а именно его и применяют для цифровой подписи, каждый абонент, обладающий правом подписи, самостоятельно на своем компьютере формирует два ключа подписи: секретный (собственный) и открытый (общий).
Секретный ключ применяют для выработки подписи (Только секретный ключ гарантирует невозможность подделки злоумышленником документа и цифро­вой подписи от имени заверяющего. Никто, кроме владельца, не сможет сформиро­вать ЭЦП под документом. Зато любой может проверить (с помощью доступного всем открытого ключа), что документ подписал именно владелец и что не иска-
жен (так как значение ЭЦП зависит и от содержимого документа). Логичное след­ствие состоит в том, что невозможно просто перенести ЭЦП с одного документа на другой (по аналогии с ксерокопированием или сканированием обычной подписи на
бумажном документе или использованием факсимиле). Таким образом, можно ска­зать, что электронная цифровая подпись является реквизитом данного конкретного электронного документа.
Открытый ключ вычисляется как значение некоторой функции от секретного, но знание открытого ключа не дает возможности определить секретный ключ. Открытый ключ можно опубликовать и использовать для проверки подлинности документа и цифровой подписи, а также для предупреждения мошенничества со стороны заверяю­щего в виде отказа его от подписи документа. Открытым ключом можно пользоваться только в том случае, если известны его подлинность и авторство, которые подтверж­даются сертификатом. Поэтому во избежание подделки или внесения искажений, об­мен и хранение открытых ключей должны осуществляться в защищенном виде. Для этого можно использовать секретный канал связи или в открытом канале связи сред­ства электронной цифровой подписи, а при работе со средствами криптографической
защиты необходимо контролировать целостность справочника открытых ключей.
Открытые ключи всех участников обмена информацией должны быть доступны
всем для возможности проверки ЭЦП. То есть их можно размещать на серверах, пере­давать по радио, писать на заборах и публиковать в колонке частных объявлений в
газете.
Естественно, говорить об этом с уверенностью можно только в том случае, если генерацию ключей производил сам владелец ключа либо (если он не располагает соот­ветствующей техникой) удостоверяющий центр в его присутствии. В этой связи вызы­вает недоумение практика, распространенная в некоторых системах, когда организа­тор системы генерирует ключи заранее, а потом раздает пользователям.
На первом этапе для каждого абонента генерируют пару ключей — секретный и открытый, которые связаны между собой с помощью особого математического соот­ношения. Открытый ключ следует рассматривать как необходимый инструмент, по­


зволяющий определить автора подписи и достоверность электронного документа, но не позволяющий вычислить секретный ключ.
Возможны два варианта проведения этого этапа. Естественным представляется вариант, когда генерацию ключей абонент может осуществлять самостоятельно. Не исключено, однако, что в определенных ситуациях эту функцию целесообразно пере­дать центру, который будет вырабатывать пары «секретный-открытый» ключ для або­нентов и заниматься их распространением. Второй вариант имеет целый ряд преиму­ществ административного характера, однако обладает принципиальным недостатком —
у абонента нет гарантии, что его личный секретный ключ уникален. Другими слова­ми, можно сказать, что здесь все абоненты находятся «под колпаком» центра и он может подделать любую подпись.
Первый вариант заключается в том, что пользователь передает сам свой открытый ключ всем, с кем собирается вести переписку. По очевидным причинам он технически сложен (не со всеми можно встретиться лично, невозможно заранее предусмотреть всех адресатов).
Второй вариант заключается в создании центра сертификации (Certificate Authority). В качестве такого центра выбирают человека, которому все доверяют и с которым хотя бы один раз могут встретиться лично либо имеют надежный (т. е. не допускаю­щий искажений/подделок) канал связи. После выбора такого лица все участники обме­на генерируют свои пары ключей и, прихватив свой открытый ключ, выстраиваются в очередь к центру сертификации, который за умеренную плату удостоверяет личность пришедшего и подписывает его открытый ключ своим секретным ключом.
Кроме собственно открытого ключа, в блок подписываемых данных входят допол­нительные сведения: имя владельца, другие идентифицирующие данные, сроки дей­ствия ключа, перечень информационных систем, в которых допустимо его использо­вать и др. Все это вместе (открытый ключ, блок данных и ЭЦП) называется
сертификатом открытого ключа.
Владелец ключа получает на руки сертификат и открытый ключ центра. Теперь он
просто счастлив — центр удостоверил принадлежность ключа ему (поэтому в Законе об ЭЦП данные центры именуются удостоверяющими центрами). Поскольку другие участ­ники системы также получают вместе с сертификатом копию открытого ключа центра (получают лично), они могут удостовериться в принадлежности любого открытого клю­ча, не встречаясь лично с его владельцем, потому что теперь при установлении связи
пользователи обмениваются не просто открытыми ключами, а сертификатами. Так, к почти строгому математическому механизму ЭЦП добавился организационный.
Таким образом, каждому пользователю, обладающему правом подписи, необходи­мо иметь лишь один секретный ключ и справочник регистрационных записей откры­тых ключей абонентов сети. Если у пользователя нет права подписи, но в процессе работы ему необходимо проверять подписи, проставленные под документами, он дол­жен иметь лишь справочник открытых ключей. Для формирования справочника суще­ствует несколько возможностей. Например, список открытых ключей может форми­роваться в «центре» (выделенный пользователь, обладающий особыми полномочиями). «Центр» получает готовую регистрационную карточку открытого ключа абонента, формирует справочник открытых ключей, рассылает абонентам сети и контролирует его целостность и истинность.


Системы цифровой подписи организуются внутри инфраструктуры открытого ключа
PKI (Public Key Infrastructure), которая поддерживается уполномоченным по серти­фикатам. Он отвечает за выдачу ключей и гарантирует подлинность сертификатов.
Базовые правила для каждой сети цифровой подписи должны быть тщательно про­работаны. К примеру, необходимо определить, какой метод шифрования будет исполь­зоваться, кто будет выступать в роли уполномоченного по сертификатам.
Математические схемы, используемые в алгоритмах, реализующих цифровую под­пись, основаны на однонаправленных функциях. Гипотеза о существовании односто­ронних функций является одним из результатов теории сложности и теории функций. Напомним, что односторонней называется функция, определенная (например) на мно­жестве натуральных чисел и не требующая для вычисления своего значения больших вычислительных ресурсов. Но вычисление обратной функции (то есть по известному значению функции восстановить аргумент) оказывается невозможно теоретически или
(в крайнем случае) вычислительно.
Строгого доказательства существования односторонних функций пока нет. Поэто­му все используемые в настоящее время хэш-функции являются лишь кандидатами в односторонние функции, хотя и имеют достаточно хорошие свойства. Основными свой­ствами криптографически надежной хэш-функции являются: рассеивание;
□ стойкость к коллизиям;
□ необратимость.
Свойство рассеивания требует, чтобы минимальные изменения текста, подлежа­щего хэшированию, вызывали максимальные изменения значения хэш-функции. К та­ким изменениям относятся вставки, выбросы, перестановки и т. п.
Коллизией хэш-функции называется ситуация, когда два различных текста (вне за­висимости от длины) могут иметь одинаковые хэш-функции. Значение хэш-функции всегда имеет фиксированную длину, а на длину исходного текста не накладывается никаких ограничений. Из этого следует, что коллизии существуют. Требование стой­кости к коллизиям обозначает, что для криптографически надежной хэш-функции для
заданного текста вычислительно невозможно найти другой текст, вызывающий колли­зию. Иными словами, вероятность того, что значения хэш-функции двух различных документов совпадут, должна быть ничтожно мала.
Свойство необратимости заключается в том, что задача подбора документа, кото­рый обладал бы требуемым значением хэш-функции, вычислительно неразрешима.
Для данной функции нельзя вычислить, какие два исходные сообщения могут генери­ровать одно и то же хэш-значение, поскольку хэш-значения двух 256-битных докумен­тов могут совпасть лишь в одном из 2256 (1077) случаев.
При подписании прежде всего документ «сжимают» до нескольких десятков или сотен байт с помощью хэш-функции. Здесь термин «сжатие» вовсе не аналогичен тер­мину «архивирование». После архивирования информация может быть восстановле­на. Значение же хэш-функции лишь только зависит от документа, но не позволяет восстановить сам документ.
Если к полученному хэш-значению применяется некоторое математическое пре­образование (шифрование секретным ключом), то на выходе и получается цифровая
подпись документа.


Размер собственно ЭЦП довольно велик, например, для ГОСТ Р 34.10-11.94 он равен 64-м байтам. После добавления служебной информации (порядка 50—200 байт в зависимости от реализации) эта величина существенно возрастает. Поскольку алго­ритмы вычисления ЭЦП используют сложные алгебраические преобразования и явля­ются сравнительно медленными, то для крупных центров обработки, где суточный объем электронных баз данных составляет величину порядка 50 000—60 000 шт., вре­менные затраты на вычисление и проверку ЭЦП становятся значительными и заметно влияют на производительность системы в целом.

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика