Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции МиСЗКИ(Лусников).doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
5 Мб
Скачать
☆

13. Электронная цифровая подпись

Необходимость использования электронной цифровой подписи

В чем же состоит определение подлинности (аутентификация) информации? Прежде всего в установке того факта, что полученная информация была передана подписав­шим ее отправителем, и что она при этом не искажена.

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

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

–        подлинность подписи можно проверить (ее присутствие в документе позволяет убедиться, действительно ли он был подписан человеком, который обладает правом ставить эту подпись);

–        подпись нельзя подделать (подлинная подпись является доказательством того, что именно тот человек, которому она принадлежит, поставил эту подпись под документом);

–        подпись, которая уже стоит под одним документом, не может быть использова­на еще раз для подписания второго документа (подпись — неотъемлемая часть документа и ее нельзя перенести в другой документ);

–        подписанный документ не подлежит никаким изменениям;

–        от подписи невозможно отречься (тот, кто поставил подпись, не может впослед­ствии заявить, что он не подписывал этот документ).

На самом деле, ни одно из перечисленных свойств подписи полностью, на все 100%, не выполняется. В нашем современном криминальном обществе подписи подделыва­ют и копируют, от них отрекаются, а в уже подписанные документы вносят произволь­ные изменения. Однако люди вынуждены мириться с недостатками, присущими под­писи, поскольку мошеннические трюки с подписями проделывать не просто и шансы быть пойманными у мошенников достаточно велики.

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

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

–        любой файл можно скопировать вместе с имеющейся в нем подписью;

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

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

Эта подпись может иметь вполне читаемый, «буквенный» вид, но чаще она пред­ставлена в виде последовательности произвольных символов. Цифровая подпись мо­жет храниться вместе с документом, например, стоять в его начале или конце, либо в отдельном файле. Естественно, что в последнем случае при проверке подписи необхо­димо располагать как самим документом, так и файлом, содержащим подпись.

Чего мы хотим от электронной цифровой подписи и чем она лучше обычной? Элек­тронная цифровая подпись — это средство, позволяющее на основе использования криптографических методов определить авторство и подлинность документа. При этом электронная цифровая подпись имеет следующие преимущества:

–        возможность идентификации принадлежности подписи на основе объективных показателей;

–        высокая защищенность от подделки;

–        жесткая связь с подписываемым документом.

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

Рассмотрим возможные угрозы (виды злоумышленных действий), которые нано­сят существенный ущерб развитию электронного документооборота. Они подрывают доверие к компьютерной технологии визирования документов. При обмене электрон­ными документами (рис. 4.34) существуют следующие виды злоумышленных действий:

–        отказ от авторства или от факта получения документа;

–        модификация документа;

–        подмена документа;

–        активный перехват;

–        подмена имени («маскарад»);

–        повторная рассылка доку­ментов.

В случае отказа от авторства пользователь А заявляет, что не посылал документ пользователю В, хотя на самом деле послал. При модификации документа пользова­тель А сам изменяет полу­ченный документ и утверждает, что имен­но таким получил его от пользова­теля В. Когда поль­зователь В фор­мирует документ и заявляет, что получил его от пользователя А, имеет место подмена документа. Если злоумышленник подключил­ся к сети, он активно перехватыва­ет ин­формацию и вносит в нее из­менения. В ситуации, когда пользователь С посылает документ не от своего имени, а от имени пользователя А, имеет место под­мена имени или так называемый «маскарад». При повторной рас­сылке документов пользователь С повторяет посылку доку­мента, ко­торый пользователь А ранее по­слал пользователю В. Для этого, чтобы исключить возможность по­добных злоумышленных действий, и придумали электронную цифро­вую подпись.

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

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

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

Таким образом, электронная цифровая подпись представляет собой некое доста­точно длинное число, полученное в результате преобразования электрон­ного образа защищаемого документа с использованием секретного (личного) ключа отправителя. Любой может про­верить стоящую под документом элек­тронную цифровую подпись при по­мощи соответствующих преобразований с использованием опять-таки элект­ронного образа документа, открытого (публичного) ключа отправителя и собственно значения ЭЦП. Открытый и секретный ключи однозначно связаны между собой, одна­ко невозможно вычислить секретный ключ по открытому. Точнее, если фор­мулиро­вать совсем строго, то пока не найдено алгоритмов, позволяющих сделать такие вы­чис­ления за приемлемое время с учетом современного уровня развития техники и используемой длины ключей.

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

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

Чтобы поставить цифровую подпись под конкретным документом, необходимо проделать довольно большой объем вычислений. Эти действия осуществляются в два этапа:

–        генерация ключей;

–        подписание документа.

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

Секретный ключ применяют для выработки подписи (рис. 4.35). Только секретный ключ гарантирует невозможность подделки злоумышленником документа и цифро­вой подписи от имени заверяющего. Никто, кроме владельца, не сможет сформиро­вать ЭЦП под документом. Зато любой может проверить (с помощью доступного всем открытого ключа), что документ подписал именно владелец и что документ не иска­жен (так как значение ЭЦП зависит и от содержимого документа). Логичное след­ствие состоит в том, что невозможно просто перенести ЭЦП с одного документа на другой (по аналогии с ксерокопированием или сканированием обычной подписи на бумажном документе или использованием факсимиле). Таким образом, можно ска­зать, что электронная цифровая подпись является реквизитом данного конкретного электронного документа.

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

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

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

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

Возможны два варианта проведения этого этапа. Естественным представляется вариант, когда генерацию ключей абонент может осуществлять самостоятельно. Не исключено, однако, что в определенных ситуациях эту функцию целесообразно пере­дать центру, который будет вырабатывать пары «секретный‑открытый» ключ для або­нентов и заниматься их распространением. Второй вариант имеет целый ряд преиму­ществ административного характера, однако обладает принципиальным недостатком — у абонента нет гарантии, что его личный секретный ключ уникален. Другими слова­ми, можно сказать, что здесь все абоненты находятся «под колпаком» центра и он может подделать любую подпись.

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

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

Кроме собственно открытого ключа, в блок подписываемых данных входят допол­нительные сведения: имя владельца, другие идентифицирующие данные, сроки дей­ствия ключа, перечень информационных систем, в которых допустимо его использо­вать и др. Все это вместе (открытый ключ, блок данных и ЭЦП) называется сертификатом открытого ключа.

Владелец ключа получает на руки сертификат и открытый ключ центра. Теперь он просто счастлив — центр удостоверил принадлежность ключа ему (поэтому в Законе об ЭЦП данные центры именуются удостоверяющими центрами). Поскольку другие участ­ники системы также получают вместе с сертификатом копию открытого ключа центра (получают лично), они могут удостовериться в принадлежности любого открытого клю­ча, не встречаясь лично с его владельцем, потому что теперь при установлении связи пользователи обмениваются не просто открытыми ключами, а сертификатами. Так, к почти строгому математическому механизму ЭЦП добавился организационный.

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

Системы цифровой подписи организуются внутри инфраструктуры открытого ключа PKI (Public Key Infrastructure), которая поддерживается уполномоченным по серти­фикатам. Он отвечает за выдачу ключей и гарантирует подлинность сертификатов.

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

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

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

–        рассеивание;

–        стойкость к коллизиям;

–        необратимость.

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

Коллизией хэш-функции называется ситуация, когда два различных текста (вне за­висимости от длины) могут иметь одинаковые хэш-функции. Значение хэш-функции всегда имеет фиксированную длину, а на длину исходного текста не накладывается никаких ограничений. Из этого следует, что коллизии существуют. Требование стой­кости к коллизиям обозначает, что для криптографически надежной хэш-функции для заданного текста вычислительно невозможно найти другой текст, вызывающий колли­зию. Иными словами, вероятность того, что значения хэш-функции двух различных документов совпадут, должна быть ничтожно мала.

Свойство необратимости заключается в том, что задача подбора документа, кото­рый обладал бы требуемым значением хэш-функции, вычислительно неразрешима. Для данной функции нельзя вычислить, какие два исходные сообщения могут генери­ровать одно и то же хэш-значение, поскольку хэш‑значения двух 256-битных докумен­тов могут совпасть лишь в одном из 2256 (1077) случаев.

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

Если к полученному хэш‑значению применяется некоторое математическое пре­образование (шифрование секретным ключом), то на выходе и получается цифровая подпись документа.

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

Процедура проверки подписи

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

Проверяющий подпись должен располагать открытым ключом пользователя, поста­вившего подпись. Этот ключ должен быть аутентифицирован, то есть проверяющий дол­жен быть полностью уверен, что данный открытый ключ принадлежит именно тому, кто выдает себя за его «хозяина». В случае, когда пользователи самостоятельно обменивают­ся ключами, эта уверенность может подкрепляться по телефону, личным контактом или любым другим способом. Когда же они работают в сети с выделенным центром, открытые ключи пользователей подписываются (сертифицируются) центром, и непосредственный контакт пользователей между собой (при передаче или подтверждении подлинности клю­чей) заменяется на контакт каждого из них с сертификационным центром.

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

Юридическая правомочность использования аналогов собственноручной подписи (разновидностью каковых и является ЭЦП) декларирована в Гражданском кодексе. Конечно же, наши респектабельные фирмы и банк заключили между собой соответ­ствующие договоры, в которых стороны признают, что подписанные ЭЦП документы имеют такую же юридическую силу, что и документы на бумажном носителе, подпи­санные обычной подписью и заверенные печатью. В этом же договоре стороны опре­деляют, при помощи какого именно программного обеспечения или аппаратуры будет формироваться ЭЦП, порядок его использования (организационные и технические меры безопасности) и, самое главное, порядок разрешения конфликтных ситуаций. Применительно к ЭЦП разновидностей конфликтных ситуаций не так много:

–        отказ от авторства сообщения (я это не писал/не посылал);

–        отказ от факта приема сообщения (я этого не получал);

–        оспаривание времени приема/отправки сообщения.

Возникновение двух последних ситуаций предотвращается изначально продуман­ным протоколом обмена сообщениями между абонентами. Во-первых, к каждому со­общению перед подписанием прикрепляется отметка времени. Во-вторых, на каждое полученное сообщение получатель отправляет подписанное ЭЦП подтверждение о его приеме. Отправитель, в свою очередь, получив подтверждение, отправляет подпи­санную ЭЦП квитанцию. Таким образом, на каждый акт информационного обмена приходится 3 посылки, что, конечно же, избыточно, однако позволяет избежать упо­мянутых выше проблем (естественно, обе стороны ведут в течение оговоренного вре­мени архивы принятых/посланных сообщений с ЭЦП).

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

Основными применяемыми на сегодняшний день алгоритмами, реализующими хэш-функции, являются MD2, MD4, MD5, SHA и его вариант SHA1, российский алго-

ритм, описываемый стандартом ГОСТ Р 34.11-94. Наиболее часто используются MD5, SHA1 и 34.11 в России. Длина значения хэш-функции различна. Типичная длина со­ставляет 16—32 байта.

Существует много математических схем подписи, наиболее известные из которых:

–        RSA (R.L.Rivest, A.Shamir, L.Adleman) назван по первым буквам фамилий авто­ров;

–        OSS (H.Ong, C.P.Schnorr, A.Shamir);

–        Эль-Гамаля (T.EIGamal);

–        Рабина (M.Rabin);

–        Шнорра(С. P. Schnorr);

–        Окамото-Сараиси (T.Okamoto, A.Shiraishi);

–        Мацумото — Имаи (T.Matsuraoto, H.Imai);

–        схемы с использованием эллиптических кривых и др.

В схемах RSA, Рабина, Эль-Гамаля и Шнорра трудность подделки подписи обус­ловлена вычислительной сложностью задач факторизации или дискретного логариф­мирования. Среди схем, предложенных отечественными учеными, можно отметить оригинальную схему А. А. Грушо (1992 г.). Ее однонаправленная функция, в отличие от перечисленных выше, основана не на сложности теоретико-числовых задач, а на сложности решения систем нелинейных булевых уравнений. На базе перечисленных выше схем подписи созданы стандарты на ЭЦП. Стандарт — это достаточно подроб­ное описание алгоритмов, по которым вычисляется и проверяется подпись.

В принятых стандартах на цифровую подпись США и России (DSS — Digital Signature Standard, ГОСТы Р 34.10-94 и Р 34.11-94) используются специально создан­ные алгоритмы. В основу этих алгоритмов положены схемы Эль-Гамаля и Шнорра.

Федеральный стандарт цифровой подписи DSS, который был впервые опубликован в 1991 году в США, описывает систему цифровой подписи DSA (Digital Signature Algorithm). Этот алгоритм разработан Агентством Национальной Безопасности США и принят в качестве стандарта цифровой подписи Национальным Институтом Стан­дартов и Технологии. Алгоритм использует метод шифрования с открытым ключом и является основой всей электронной коммерции, обеспечивая конфиденциальность и достоверность передаваемых по Internet данных. Длина подписи в системе DSA со­ставляет 320 бит. Надежность всего стандарта основана на практической неразреши­мости задачи вычисления дискретного логарифма. Однако, к сожалению, сегодня этот алгоритм уже не имеет достаточного временного запаса по нераскрываемости (10— 20 лет). Прореха скрывается в несовершенстве подпрограммы генерации псевдослу­чайных чисел. Вместо того чтобы вычислять разные цифры с равной вероятностью, она выбирает числа из некоторого диапазона. Этот недостаток цифровой подписи за­метно облегчает ее взлом с использованием современных суперкомпьютеров.

В России «Закон об электронной цифровой подписи» принят Государственной ду­мой 21 ноября 2001 года. В нем установлена права и обязанности обладателя цифро­вой подписи, указаны сертификаты ключа, выдаваемые удостоверяющим центром, определены состав сведений, содержащихся в сертификате ключа, срок и порядок его хранения и т.д.

У нас в стране выработка и проверка электронной цифровой подписи производятся на основе отечественного алгоритма криптопреобразования ГОСТ 28147-89. Данная процедура предусматривает использование двух различных ключей криптографичес­кого алгоритма отечественного стандарта. Этими ключами одновременно владеет толь­ко отправитель, который и подписывает сообщение. Кроме того, предполагается на­личие двух независимых центров доверия (Центр 1 и Центр 2), которым доверяют все пользователи данной системы электронной цифровой подписи.

Кроме того, в России приняты стандарты: ГОСТ Р 34.10-94 «Процедуры выработ­ки и проверки электронной цифровой подписи на базе асимметричного криптографи­ческого алгоритма» и ГОСТ Р 34.11-94 «Функция хэширования». В основу ГОСТ Р 34.10-94 положена однонаправленная функция, основанная на дискретном возведе­нии в степень. Можно быть вполне уверенным, что алгоритм из стандарта ГОСТ Р 34.10-94 обладает высокой криптографической стойкостью.

Пользователи Internet используют в качестве основы своей системы ЭЦП извест­ный пакет программ PGP, созданный под руководством Филиппа Зиммерманна. К ос­новным преимуществам данного пакета, выделяющим его среди других аналогичных продуктов, относятся:

–        открытость;

–        стойкость;

–        бесплатность;

–        поддержка различных моделей распределения ключей;

–        удобство программного интерфейса.

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

Однако, несмотря на то, что пакет свободно распространяется по сетям, это не оз­начает, что его можно легко и доверительно использовать — существует патентное законодательство. Кроме того, в этих программах обнаружено несколько закладок (в частности, против систем, построенных на основе пакета программ PGP), при по­мощи которых были подделаны электронные документы.

В марте 2001 года два чешских криптолога объявили, что ими была обнаружена «дыра» в самой популярной программе шифрования электронных посланий — PGP. Ошибку обнаружили при изучении надежности электронной подписи в открытом фор­мате OpenPGP, широко используемом сейчас для присылки сообщений.

Это уже второй случай обнаружения в PGP «дыры» для несанкционированного доступа к зашифрованным сообщениям. Предполагается, однако, что на этот раз дело обстоит несколько серьезнее, чем в случае с возможностью добавлять к открытому ключу дополнительный ключ ADK (Additional Decryption Key) и таким образом де­шифровать данные. Как известно, чтобы воспользоваться этой программной ошибкой, необходимо сначала получить доступ к передаваемому сообщения компьютеру либо напрямую, либо через Internet. Обнаруженное уязвимое место в программе не дает возможности взлома кода, который до сих пор считается достаточно надежным, но открывает пути доступа, позволяющие мошеннику украсть у пользователя один из ключей.

Подчеркнем, что под стандартом на электронную подпись понимается только стан­дарт на криптографический алгоритм. Многие существенные детали в стандарте не оговорены (например, способ распространения открытых ключей, способ генерации псевдослучайных чисел и др.). Это, вообще говоря, может привести к тому, что раз­ные средства, осуществляющие функции ЭЦП (каждое из которых соответствует стан­дарту!), окажутся несовместимыми между собой.

Новый отечественный стандарт на ЭЦП

В 2001 году на конференции, проводившейся Ассоциацией документальной элект­росвязи и представителями ФАПСИ, было официально объявлено об утверждении нового стандарта на электронную цифровую подпись. Этот стандарт, основанный на методе эллиптических кривых, вступает в силу с 1 июля 2002 года. Он придет на сме­ну тому стандарту, который используется сейчас и который мы рассматривали выше. Новый стандарт будет иметь тот же номер, что и старый, за исключением того, что изменятся лишь цифры, обозначающие год.

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

Ввод в действие нового стандарта связан с тем, что, по словам гендиректора ФАПСИ, действующий стандарт уже к 2003 году не будет обеспечивать достаточный уровень защиты. И хотя для подделки одной ЭЦП, соответствующей старому ГОСТу, сегодня требуется около 10 лет работы 10 000 компьютеров, он же и существенно увеличивает длину обрабатываемых сообщений (в российском алгоритме использу­ются очень длинные ключи).

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

Сегодня работа стандартов ЭЦП основана, в основном, на:

–        классической математике;

–        эллиптических кривых, использующих теорию алгебраических чисел.

Если первый подход уже давно известен, то второй метод подразумевает более короткий ключ, при этом процедуры обоснования его надежности сложнее, поскольку экспертов в области эллиптических кривых гораздо меньше, чем специалистов по те­ории чисел. Ключи в алгоритме с использованием эллиптических кривых могут быть созданы в 100 раз быстрее и занимают гораздо меньше места, чем ключи в алгоритме RSA.

Совсем недавно для оценки криптостойкости алгоритма, основанного на методе эллиптических кривых, были предприняты попытки взлома шифра с 97-битным клю­чом. Эта задача, поставленная Французским национальным институтом информатики (INRIA), была решена командой энтузиастов под руководством ирландского матема­тика Роберта Харли (Robert Harley). Для этого потребовались 40-дневные объединен­ные усилия 195 добровольцев из 20 стран и 740 независимых компьютеров. По словам Роберта Харли, решить задачу шифрования с 97-битным" дискретным алгоритмом на основе эллиптических кривых труднее, чем взломать 512-битный несимметричный шифр RSA, который сегодня является промышленным стандартом.

Несколько позднее канадской компанией Certicom, занимающейся вопросами шиф­рования, которая хотела привлечь исследователей к тестированию уровня защиты, обеспечиваемого алгоритмом ЕСС (Elliptic Curve Cryptography), было инициировано исследование, посвященное анализу уже 109-разрядного ключа. Эта задача, получив­шая известность под кодовым наименованием ЕСС2К.108, была решена с помощью распределенной сети, включающей большое число компьютеров. В ее решении приня­ли участие 1300 человек из 40 стран, перебиравшие всевозможные комбинации клю­чей до тех пор, пока не был обнаружен искомый. Исходное тестовое сообщение было закодировано с помощью метода эллиптических кривых.

В своем проекте Certicom использовала свободно распространяемое программное обеспечение, которое Роберт Харли разработал для вычисления более 215 точек на эллиптической кривой, относящейся к классу кривых Коблитца. Данные о 2 млн «вы­деленных» точек были посланы на сервер AlphaServer в INRIA, где участники могли в реальном времени наблюдать за поиском ключа. Для взлома алгоритма использова­лись 9500 компьютеров в Internet. По данным INRIA, две трети вычислений пришлось на долю рабочих станций с операционной системой Unix, а одна треть — на компьюте­ры с Windows.

На решение такой задачи на одном компьютере с процессором Pentium II/450 МГц потребовалось бы примерно 500 лет. «Объем вычислений, проделанных нами, боль­ше, чем нужно для взлома системы, защищенной открытым ключом наподобие RSA длиной как минимум 600 разрядов», — отметил Эрьен Ленстра, вице-президент по технологиям подразделения Citibank в Нью-Йорке, который также принимал участие в проекте. И это с учетом того, что компания Certicom выбрала кривую, отличающую­ся свойствами, упрощающими задачу взлома кода, и была проделана примерно деся­тая часть всех вычислений, которые в обычных условиях должны потребоваться для взлома 109-разрядного ключа при шифровании по кривой. Проведенный проект пока­зал относительную уязвимость некоторых кривых с особыми свойствами и подтвер­дил тот факт, что произвольные кривые лучше подходят для оптимальной защиты.

Остановимся вкратце на рассмотрении метода эллиптических кривых, использо­ванного в новом стандарте на электронную цифровую подпись. Эллиптическая кривая описывается математическим уравнением вида:

у2 = x3 + ax + b,

где все вычисления выполняются по модулю выбранного просто числа р и 4aЗ + 27b2 = 0.

Этот случай называется нечетным, т.к. модуль р берется для некоторого числа нечетных значений р. Четный случай аналогичен, но вычисления при этом ведутся в конечном поле GF(2m) для некоторого целого числа т.

Проблему дискретного логарифма DLP (Discrete Logarithm Problem) кратко мож­но сформулировать так: «По заданному простому числу р, основанию g и значению gx(mod р) найти значение х». Причем проблема может быть сформулирована в огра­ниченной области.

Полезное для криптографии свойство эллиптических кривых состоит в том, что если взять две различных точки на кривой (рис. 4.37), то соединяющая их хорда пере­сечет кривую в третьей точке (так как мы имеем кубическую кривую). Зеркально отра­зив эту точку по оси X, мы получим еще одну точку на кривой (так как кривая симмет­рична относительно оси X). Это позволяет точно определить форму кривой. Если мы обозначим две первоначальные точки Р и Q, то получим последнюю (отраженную) точку P+Q. Представленное «сложение» удовлетворяет всем известным алгебраичес­ким правилам для целых чисел, позволяя определить единственную дополнительную точку, которая называется бесконечно удаленной точкой и выполняет роль нуля (на­чала отсчета) для целых чисел.

Другими словами, можно определить форму кривой по заданным точкам (плюс бесконечно удаленной точке), что является обычным алгебраическим действием. Вы­ражаясь математическими терминами, можно определить конечную абелеву группу (абстрактную группу с коммутативной бинарной операцией) на точках кривой, где нулем будет бесконечно удаленная точка. В частности, если точки Р и Q совпадут, то можно вычислить Р+Р. Развивая эту идею, можно определить kP для любого целого числа k, и, следовательно, определить значение Р и значение наименьшего целого чис­ла k, такого что kP = F, где F — бесконечно удаленная точка. Теперь можно сформули­ровать Проблему дискретного логарифма эллиптической кривой (Elliptic Curve Discrete Logarithm Problem, ECDLP), на которой основана рассматриваемая система:

–        Д ля эллиптических кривых и базовых точек решение уравнений типа «Даны базо­вая точка Р и расположенная на кривой точка kP; найти значение k.» представляет весьма и весьма сложную задачу. С точки же зрения криптографии на основе эл­липтических кривых имеется возможность определить новую криптографическую систему (любая стандартная система, основанная на проблеме дискретного лога­рифма, аналогична системе основанной на ECDLP). Например, эллиптическая кривая DSA (ECDSA) уже стандартизована (ANSI X9.62), и на ее базе можно реализовать протокол открытого обмена ключами Diffie-Hellman.

–        При определении системы эллиптической кривой требуются сама кривая и базовая точка Р. Эти элементы не являются тайной и могут быть одинаковыми для всех пользователей системы. Для данной кривой и точки несложно сгенерировать от­крытые и частные ключи для пользователей (частный ключ представляет просто случайное целое число k, а открытый ключ — точку kP на кривой). Однако чрезвы­чайно трудно создать подходящую кривую и точку. Главное — подсчитать количе­ство точек на кривой. Для этого необходимо выбрать подходящую базовую точку Р, координаты ко­торой должны иметь достаточно большое значение, чтобы гаранти­ровать трудность взлома ECDLP. Но координаты точки Р должны делиться на количество точек на кривой (точки вместе с бесконеч­но удаленной точкой образуют конечную группу). И весьма вероятно, что, найдя число точек на кривой, мы не сможем найти базовую точку. Суще­ствуют и другие ограничения, которые необходимо учесть при построении кривых.

Подводя итог вышеизложенному, можно утверждать, что создание кривых — зада­ча непростая. Пользователи могут применять «стандартные» кривые с помощью спе­циального программного обеспечения, либо создавать собственные кривые, что зани­мает, к сожалению, очень много времени.

Системы на основе эллиптической кривой используют ключи малых размеров. Это значительно снижает требования к вычислительным мощностям по сравнению с тре­бованиями систем на основе RSA. Как это влияет на скорость обработки, показывает табл. 4.10. В ней представлены сравнительные характеристики алгоритмов RSA и ECDSA (нечетный случай) при создании и проверке цифровых подписей. Оба алго­ритма тестировали на параллельных процессорах Motorola 56303 DSP (66 МГц). При этом функция проверки подписи RSA использует е = 65 537.

Таблица 4.10. Сравнительные характеристики алгоритмов RSA и ECDSA (нечетный случай)при создании и проверки цифровой подписи

Алгоритм (длина ключа, бит)

Время выполнения, мс

 

Создание подписи

Проверка подписи

RSA (1024)

25

< 2

ECDSA (160)

32

33

RSA (2048)

120

5

ECDSA (216)

68

70

Как видно из табл. 4.10, при увеличении размеров ключа создание подписей с помо­щью ECDSA производится значительно быстрее, чем в системах RSA. Это различие в еще большей степени проявляется для однопроцессорных систем. С другой стороны, проверка подписи с помощью ECDSA, делается намного медленнее, чем эта же проце­дура в системах RSA и опять же различие усиливается для систем с одним процессором.

Обработка ECDSA может несколько ускориться в «четном» случае. Мощность процессора, затраченная на проверку подписи, при использовании, скажем, ECDSA может замедлить выполнение других приложений в системе. Множество систем име­ют много удаленных устройств, соединенных с центральным сервером, и время, зат­раченное удаленным устройством для создания подписи (несколько секунд), не влия­ет на производительность системы в целом, но сервер должен также и подтверждать подписи, причем очень быстро. В некоторых случаях системы RSA (даже использую­щие большие ключи) возможно, будут более приемлемы, чем криптосистемы на осно­ве эллиптической кривой. Тем не менее, криптосистемы на основе эллиптической кри­вой получают все большее распространение скорее как альтернатива, а не замена систем RSA, поскольку системы ECDLP имеют некоторые преимущества, особенно при ис­пользовании в устройствах с маломощными процессорами и/или маленькой памятью. Типичные области применения алгоритма на основе эллиптической кривой:

–        m-commerce (мобильная торговля) (например, WAP, сотовые телефоны, карман­ные компьютеры);

–        смарт-карты (например, ЕМУ);

–        e-commerce (электронная торговля) и банковские операции (например, SET);

–        Internet-приложения (например, SSL).

Из-за очевидной трудности взлома алгоритм ECDLP можно применять для высоко защищенных систем, обеспечивая достаточно высокий уровень безопасности. Как уже говорилось выше, в рассматриваемом алгоритме используются ключи значительно меньшего размера, чем, например, в алгоритмах RSA или DSA. В табл. 4.11 сравнива­ются приблизительные параметры эллиптических систем и RSA, обеспечивающих одинаковую стойкость шифра, которая рассчитывается на основе современных мето­дов решения ECDLP и факторинга (поиска делителей) для больших целых чисел.

Таблица 4.11. Параметры эллиптических систем и RSA, обеспечивающих одинаковую стойкость шифра

Длина ключа, бит

Система на основе эллиптической кривой (базовая точка Р)

RSA (длина модуля п)

106

512

132

768

160

1024

224

2048

Из табл.4.11 видно, что, используя эллиптические кривые, можно строить хорошо защищенные системы с ключами явно меньших размеров по сравнению с аналогичны­ми «традиционными» системами типа RSA или DSA. В частности, такие системы ме­нее требовательны к вычислительной мощности и объему памяти оборудования и по­тому удобны, например, для смарт-карт или портативных телефонов.

Разумеется, есть и проблемы, ограничивающие повсеместное распространение криптографических систем на основе эллиптических кривых.

Главная проблема состоит в том, что истинная сложность ECDLP еще не осознана полностью. Недавнее исследование показало, что некоторые эллиптические кривые, использовавшиеся для отработки алгоритмов шифрования, фактически не подходят для таких операций. Например, если координаты базовой точки Р равны положению р, то ECDLP имеет простое решение. Такие кривые являются «аномальными» кривыми. Существуют, однако, и некоторые другие проблемы:

–        реальная безопасность таких систем все еще недостаточно исследована;

–        трудность генерации подходящих кривых;

–        несовместимость с другими системами;

–        относительно медленная проверка цифровой подписи.

Системами электронного документооборота с использованием ЭЦП оснащены администрация президента и представительства президента в федеральных округах. Сертифицированные средства используют Внешторгбанк (система «Верба»), Сбер­банк, Министерство по налогам и сборам, Пенсионный фонд, внедрена система ЭЦП в аппарате правительства РФ.

Сертификацией средств электронно-цифровой подписи занимается ФАПСИ. Се­годня существуют две сертифицированные системы — «Криптон» фирмы «Анкад» и

«Крипто-про CSP» компании «Крипто-про». Действие сертификата ФАПСИ на систе­му «Верба» производства МО ПНИЭИ фактически закончилось.

По Указу Президента, применение сертифицированных ФАПСИ средств ЭЦП се­годня обязательно для государственных организаций, однако в действительности эта норма легко обойти (например, применение ЭЦП можно назвать «защитой информа­ции»). Так, не сертифицированные в ФАПСИ средства применяются в ФСБ, МИДе и отчасти в Центробанке. Однако по новому закону использование сертифицированных ФАПСИ алгоритмов электронно-цифровой подписи в госорганах планируется сделать строго обязательным.