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

С 1996 г. начались работы по созданию Типового закона об электронной подписи в специально созданной рабочей группе в рамках Комиссии ООН по праву международной торговли (UNCITRAL). В феврале 2000 г. был представлен проект Типового закона, вызвавший, впрочем, неоднозначную реакцию в деловых кругах. Документ представляет собой, скорее, набор основных принципов регулирования электронной подписи и должен рассматриваться как минимальный стандарт для регулирования сделок и сообщений, передаваемых электронным путем. Новейшее законодательство об электронной подписи, принятое в Европейском Союзе, США, Японии и некоторых других странах, идет значительно дальше по сравнению с проектом Типового закона UNCITRAL.

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

Этот институт призван устранить существенные барьеры на пути широкого использования электронных средств коммуникации и электронной торговли.

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

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

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

 Инфраструктура открытого ключа

 Защита информации в PKI (public key infrastructure) основана на методе асимметричного шифрования с использованием пары ключей: открытого и закрытого.

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

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

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

За последние 20 лет получили широкое распространение криптосистемы на базе асимметричного шифрования, позволяющие не только организовать конфиденциальную передачу информации без предварительного обмена секретным ключом, но и значительно расширяющие функции криптографии, включая технологию ЭЦП.

Хорошо известны криптосистемы RSA и ECC. Другие криптосистемы более специализированы и поддерживают не все возможности. Широко применяются криптосистемы, в основе которых лежат алгоритмы, не являющиеся алгоритмами собственно шифрования, но реализующие только технологию ЭЦП. К их числу относятся: российские алгоритмы электронной цифровой подписи ГОСТ Р 34.10-94 и ГОСТ Р 34.10-2001; алгоритм электронной цифровой подписи DSA, входящий в принятый в США стандарт цифровой подписи Digital Signature Standard. Отметим еще криптосистему на базе алгоритма Диффи-Хелмана согласования ключа, применяемого при конфиденциальной передаче информации.

 

Приемы защиты на базе асимметричного шифрования

 

Рассмотрим принципиальную схему выработки и проверки ЭЦП с применением алгоритмов асимметричного шифрования.

 

Рис. I. Схема выработки ЭЦП при асимметричном шифровании

Для выработки ЭЦП подписываемый документ подвергается хэшированию (т.е. сжатию некоторым стандартным алгоритмом), а полученный хэш (иногда его называют дайджестом) зашифровывается закрытым ключом (рис. I). Хэширование применяется для сокращения объема шифруемой информации и повышения тем самым производительности. Хэш-функция, не будучи взаимно однозначным отображением, подбирается таким образом, чтобы было практически невозможно изменить документ, сохранив результат хэширования. По хэшу невозможно восстановить исходный документ, но это и не нужно, поскольку проверка ЭЦП заключается в сравнении расшифрованной открытым ключом ЭЦП с хэшем документа (рис. II). Совпадение с высокой степенью достоверности гарантирует, во-первых, неизменность документа (защиту от подделки), и, во-вторых, что его подписал владелец закрытого ключа.

 

Рис. II. Схема проверки ЭЦП при асимметричном шифровании

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

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

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

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

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

Специализированный алгоритм Диффи-Хелмана согласования ключа позволяет каждой стороне контакта, зная свой закрытый ключ и открытый ключ партнера, получить «общий секрет», используемый для создания единого секретного ключа, предназначенного для заранее согласованного алгоритма симметричного шифрования. Практически невозможно, зная только открытые ключи, воспроизвести «общий секрет», что гарантирует защиту от злоумышленника. При интерактивном контакте стороны сначала обмениваются открытыми ключами, а потом получают единый ключ сеанса. При посылке зашифрованного сообщения вне интерактивного сеанса отправителю должен быть известен открытый ключ получателя; к сообщению же прилагается открытый ключ отправителя, что позволяет получателю воссоздать секретный ключ. В криптосистеме на базе этого алгоритма процедура доказательства владения закрытым ключом подобна процедуре подписывания ЭЦП за тем исключением, что при подписании используется не сам закрытый ключ, а «общий секрет», зависящий еще и от открытого ключа проверяющей стороны.

 

Сертификат ключа

 Для верификации открытого ключа применяется сертификат ключа — электронный документ, связывающий открытый ключ с субъектом, правомерно владеющим соответствующим закрытым ключом. Без такой верификации злоумышленник может выдать себя за любого субъекта, подменив открытый ключ. Для заверения сертификата используется ЭЦП учреждения, издающего сертификаты (удостоверяющий центр, CA — certificate authority). Удостоверяющий центр — основной компонент PKI. Имея открытый ключ удостоверяющего центра, любой субъект может проверить достоверность изданного им сертификата. За достоверность содержащихся в сертификате данных, идентифицирующих правомерного владельца, отвечает издавший его удостоверяющий центр.

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

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

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

 

Удостоверяющий центр и проверка сертификата

 

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

Различают подчиненный удостоверяющий центр, сертификат которого издан другим удостоверяющим центром, и корневой удостоверяющий центр, сертификат которого издан им самим. Корневых удостоверяющих центров, независимых друг от друга, может быть несколько. Тем самым все множество удостоверяющих центров образует совокупность иерархических деревьев в смысле теории графов. Сертификаты всех удостоверяющих центров (корневых и подчиненных), которым доверяет субъект, должны быть ему известны и храниться в защищенном хранилище. Чтобы проверить действительность некоторого сертификата, надо пройти по «цепочке доверия» от сертификата его издателя до сертификата удостоверяющего центра, которому доверяет субъект. Субъект при проверке сертификата, изданного некоторым удостоверяющим центром, должен проверить, не числится ли этот сертификат в числе отозванных.

 Международные стандарты PKI

 В основе всех международных стандартов PKI лежит стандарт X.509 ITU-T, определяющий формат сертификата ключа и списка отозванных сертификатов. Его рекомендации оставляют много степеней свободы при определении формата сертификата. Каждое более или менее автономное сообщество пользователей PKI конкретизирует его, создавая профиль. Так, профили для использования в Internet (RFC 2549) выпускаются рабочей группой IETF PKI.

Европарламент в директивах, задающих единые рамки для ЭЦП в странах ЕС, ввел понятие «квалифицирующий сертификат». Основанная на нем ЭЦП признается равнозначной собственноручной подписи. IETF выпустила стандарт RFC 3039, основанный на RFC 2549 и определяющий профиль квалифицирующего сертификата. В некоторых других странах (США, Австралия, Швеция) также разработаны профили X.509. В Microsoft разработали программную среду, реализующую PKI, которая де-факто определяет собственный профиль. Все это разнообразие профилей создает значительные трудности для обмена сертификатами.

Сертификат X.509 включает основные поля и поля дополнений. Основные поля должны единообразно интерпретироваться любым программным обеспечением, разрабатываемым в соответствии со стандартами PKI:
серийный номер сертификата;
идентификатор алгоритма ЭЦП;
имя издателя сертификата;
период действия сертификата;
имя владельца сертификата;
открытый ключ владельца сертификата.

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

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

Возможно определение других дополнений по требованиям приложений. Сертификат должен быть подписан ЭЦП издателя сертификата.

На основе стандартов PKI разработаны следующие стандартные протоколы:

протокол защищенной электронной почты S/MIME (IETF);
SSL и покрывающий его протокол Transport Layer Security (IETF), стандартизующий защиту на транспортном уровне и использующийся при создании защищенных клиент-серверных приложений;
SET (Secure Electronic Transactions - Visa, MasterCard), протокол для электронных банковских расчетов и использования пластиковых карт;
IPSec (IETF) - протокол криптографической защиты IP на сетевом уровне.

 

Ассиметричные алгоритмы шифрования

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

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

Таким образом,  мы избавляемся от необходимости решать сложную задачу обмена секретными ключами.

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

 

В целом система переписки при использовании асимметричного шифрования выглядит следующим образом. Для каждого из N абонентов, ведущих переписку, выбрана своя пара ключей : "открытый" Ej и "закрытый" Dj, где j – номер абонента. Все открытые ключи известны всем пользователям сети, каждый закрытый ключ, наоборот, хранится только у того абонента, которому он принадлежит. Если абонент, скажем под номером 7, собирается передать информацию абоненту под номером 9, он шифрует данные ключом шифрования E9 и отправляет ее абоненту 9. Несмотря на то, что все пользователи сети знают ключ E9 и, возможно, имеют доступ к каналу, по которому идет зашифрованное послание, они не могут прочесть исходный текст, так как процедура шифрования необратима по открытому ключу. И только абонент №9, получив послание, производит над ним преобразование с помощью известного только ему ключа D9 и восстанавливает текст послания. Заметьте, что если сообщение нужно отправить в противоположном направлении (от абонента 9 к абоненту 7), то нужно будет использовать уже другую пару ключей (для шифрования ключ E7, а для дешифрования – ключ D7).

Как мы видим, во-первых, в асимметричных системах количество существующих ключей связано с количеством абонентов линейно (в системе из N пользователей используются 2*N ключей), а не квадратично, как в симметричных системах. Во-вторых, при нарушении конфиденциальности k-ой рабочей станции злоумышленник узнает только ключ Dk : это позволяет ему читать все сообщения, приходящие абоненту k, но не позволяет вывадавать себя за него при отправке писем.

тандарт ассимметричного шифрования RSA

Самым распространенным алгоритмом ассиметричного шифрования является алгоритм RSA. Он был предложен тремя исседователями-математиками Рональдом Ривестом (R.Rivest) , Ади Шамиром (A.Shamir) и Леонардом Адльманом (L.Adleman) в 1977-78 годах.  Разработчикам данного алгоритма удалось эффективно воплотить идею односторонних функций с секретом. Стойкость RSA базируется на сложности факторизации больших целых чисел.  В 1993 году метод RSA  был обнародован и принят в качестве стандарта (PKCS #1: RSA Encryption standart). RSA можно применять как для шифрования/расшифрования, так и для генерации/проверки электронно-цифровой подписи.

 

Генерация ключей

 

Первым этапом любого асимметричного алгоритма является создание пары ключей : открытого и закрытого и распространение открытого ключа "по всему миру". Для алгоритма RSA этап создания ключей состоит из следующих операций :

Выбираются два простых (!) числа p и q

Вычисляется их произведение n(=p*q)

Выбирается произвольное число e (e<n), такое, что НОД(e,(p-1)(q-1))=1, то есть e должно быть взаимно простым с числом (p-1)(q-1).

Методом Евклида решается в целых числах (!) уравнение e*d+(p-1)(q-1)*y=1. Здесь неизвестными являются переменные d и y – метод Евклида как раз и находит множество пар (d,y), каждая из которых является решением уравнения в целых числах.

 

Два числа (e,n) – публикуются как открытый ключ.

 

Число d хранится в строжайшем секрете – это и есть закрытый ключ, который позволит читать все послания, зашифрованные с помощью пары чисел (e,n).

 

Шифрование/расшифрование 

 

Как же производится собственно шифрование с помощью этих чисел :

Отправитель разбивает свое сообщение на блоки, равные k=[log2(n)] бит, где квадратные скобки обозначают взятие целой части от дробного числа.

Подобный блок может быть интерпретирован как число из диапазона (0;2k-1). Для каждого такого числа (назовем его mi) вычисляется выражение ci=((mi)e)mod n. Блоки ci и есть зашифрованное сообщение, и их можно спокойно передавать по открытому каналу, поскольку операция возведения в степень по модулю простого числа, является необратимой математической задачей. Обратная ей задача носит название "логарифмирование в конечном поле" и является на несколько порядков более сложной задачей. То есть даже если злоумышленник знает числа e и n, то по ci прочесть исходные сообщения mi он не может никак, кроме как полным перебором mi.

А вот на приемной стороне процесс дешифрования все же возможен, и поможет нам в этом хранимое в секрете число d. Достаточно давно была доказана теорема Эйлера, частный случай которой утвержает, что если число n представимо в виде двух простых чисел p и q, то для любого x имеет место равенство (x(p-1)(q-1))mod n = 1. Для дешифрования RSA-сообщений воспользуемся этой формулой.

 Возведем обе ее части в степень (-y) : (x(-y)(p-1)(q-1))mod n = 1(-y) = 1.

 Теперь умножим обе ее части на x : (x(-y)(p-1)(q-1)+1)mod n = 1*x = x.

А теперь вспомним как мы создавали открытый и закрытый ключи. Мы подбирали с помощью алгоритма Евклида d такое, что e*d+(p-1)(q-1)*y=1, то есть e*d=(-y)(p-1)(q-1)+1. А следовательно в последнем выражении предыдущего абзаца мы можем заменить показатель степени на число (e*d). Получаем (xe*d)mod n = x. То есть для того чтобы прочесть сообщение ci=((mi)e)mod n достаточно возвести его в степень d по модулю m :

 ((ci)d)mod n = ((mi)e*d)mod n = mi.

 

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

 

Электронно-цифровая подпись. Общие положения 

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

 Гарантирование истинности письма путем сличения подписи с имеющимся образцом;

Гарантирование авторства документа ( с юридической точки зрения)

 

Выполнение данных  требований основывается на следующих свойствах подписи:

подпись аутентична, то есть с ее помощью получателю документа можно доказать, что она принадлежит подписывающему;

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

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

Документ с подписью является неизменяемым.

Подпись неоспорима.

Любое лицо, владеющее образцом подписи может удостоверится, что документ подписан вледельцем подписи.

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

 

Существует несколько методов посторения ЭЦП, а именно:

 

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

Использование ассиметричных алгоритмов шифрования. Фактом подписания документа является зашифрование его на секретном ключе отправителя.

Развитием  предыдущей идеи стала наиболее распространенныя схема ЭЦП – зашифрование окончательного результата обработки ЭД хеш-функцией при помощи ассиметричного алгоритма.

 Кроме перечисленных, существуют и другие методы построения схем ЭЦП

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

 

Алгоритм DSA

 

В 1991 г. в США был опубликован проект федерального стандарта цифровой подписи - DSS (Digital Signature Standard, [DSS91], описывающий систему цифровой подписи DSA (Digital Signature Algorithm). Одним из основных критериев при создании проекта была его патентная чистота.

Предлагаемый алгоритм DSA, имеет, как и RSA, теоретико-числовой характер, и основан на криптографической системе Эль-Гамаля в варианте Шнорра . Его надежность основана на практической неразрешимости определенного частного случая задачи вычисления дискретного логарифма. Современные методы решения этой задачи имеют приблизительно ту же эффективность, что и методы решения задачи факторизации; в связи с этим предлагается использовать ключи длиной от 512 до 1024 бит с теми же характеристиками надежности, что и в системе RSA. Длина подписи в системе DSA меньше, чем в RSA, и составляет 320 бит.

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

Функции DSA ограничены только цифровой подписью, система принципиально не предназначена для шифрования данных. По быстродействию система DSA сравнима с RSA при формировании подписи, но существенно (в 10-40 раз) уступает ей при проверке подписи.

Вместе с проектом DSS опубликован проект стандарта SHS (Secure Hash Standard), описывающий однонаправленную хэш-функцию SHA (Secure Hash Algorithm), рекомендованную для использования вместе с DSA. Хэш-функция SHA является модификацией алгоритма MD4, хорошо известного в криптографической литературе.

 

Генерация ЭЦП

 

При генерации  ЭЦП используются параметры трех групп:

общие параметры

секретный ключ

открытый ключ

 Общие параметры необходимы для функционирования системы в целом. Секретный ключ используется для формирования ЭЦП, а открытый – для проверки ЭЦП. Общими параметрами системы являются простые целые числа p,q,g, удовлетворяющие следующим условиям:

 

 p: 2^511<p<2^512

q: простой делитель числа (p-1), который удовлетворяет условию

 

2^159<q<2^160

 

g: так называемый генератор,удовлетворяющий

равенству g=h^((p-1)/q)mod p >1.

 Парараметры p,q,g публикуются для всех участников обмена  ЭД  с ЭЦП.

Секретный ключ x случайно выбирается из диапазона [1,q] и держится в секрете.

 Открытый ключ вычисляется:  y=g^x mod p.

 

Также при описании данной схемы будут использоваться следующие обозначения и дополнительные параметры: m – входное сообщение пользователя для схемы с ЭЦП;  k -  случайное число, удовлетворяющее условию  0<k<q, хранящееся в секрете и меняющееся от одной подписи к другой; H – хэш-функция, h – хэш-код сообщения.

 

Процесс генерации ЭЦП состоит из нескольких этапов:

1.Вычисляется хэш-код сообщения m h=H(m)

 2.Из диапазона [1,q] случайным образом  выбирается значение k и вычисляется r= (g^k mod p) mod q

 3. Вычисляется S= (k^-1(h+xr)) mod q, где k^-1 удовлетворяет условию

 (k^-1*k) mod q =1

 Значения r,s являются ЭЦП сообщения m  и передаются вместе с ним по каналам связи.

 

Проверка ЭЦП

 

Пусть принято сообщение m1 и его подпись s1,r1.

Проверка ЭЦП происходит следующим образом:

 проверяется выполнений условий 0<r1<q, 0<s1<q, и если хотя бы одно из них нарушено, подпись отвергается.

Вычисляются значения:

 w= s1^-1 mod q

u1 = (H(m1)w) mod q

u2 = ((r1/w) mod q

Продолжение »

Создать бесплатный сайт с uCoz