Электронно-цифровая подпись как инструмент для придания юридической силы электронным документам

Автор работы: Пользователь скрыл имя, 07 Августа 2013 в 15:33, контрольная работа

Описание работы

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

Содержание работы

Введение
Электронная цифровая подпись, как средство защиты электронных документов
История создания
Инфраструктура открытого ключа
Сертификат ключа
Удостоверяющий центр и проверка сертификата
Генерация ключей
Шифрование / дешифрование
Электронно-цифровая подпись. Общие положения
Алгоритм DSA
Стандарт на процедуры ЭЦП ГОСТ Р 34.10-94
Цифровые подписи, основанные на симметричных криптосистемах
Атаки на ЭЦП
Некоторые средства работы с ЭЦП
Выводы

Файлы: 1 файл

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

— 160.50 Кб (Скачать файл)

если T<T', то s'0=RT'(k0)=RT'–T(RT(k0))=RT'–T(s0),

если T>T', то s'1=R2nT–1–T'(k1)=RT–T'(R2nT–1–T(k1))=RT–T'(s1).

Однако для нахождения второй половины подписи (s'1 и s'0 в случаях (a) и (b) соответственно) ему необходимо выполнить прокрутку в обратную сторону, т.е. найти Rk(X), располагая только значением для большего k, что является вычислительно невозможным. Таким образом, злоумышленник не может подделать подпись под сообщением, если не располагает секретным ключом подписи.

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

s=SnT(T)=(s0,s1)=(RT(k0),  R2nT–1–T(k1)), 
s'=SnT(T')=(s'0,s'1)=(RT'(k0),  R2nT–1–T'(k1)),

но s=s', следовательно:

RT(k0)=RT'(k0) и R2nT–1–T(k1)=R2nT–1–T'(k1).

Положим для определенности TЈT', тогда справедливо следующее:

RT'–T(k0*)=k0*,RT'–T(k1*)=k1*,где k0*=RT(k0), k1*=R2nT–1–T'(k1)

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

Таким образом рассмотренная модификация схемы Диффи–Хеллмана делает возможным подпись не одного бита, а целой битовой группы. Это позволяет в несколько раз уменьшить размер подписи и ключей подписи/проверки данной схемы. Однако надо понимать, что увеличение размера подписываемых битовых групп приводит к экспоненциальному росту объема необходимых вычислений и начиная с некоторого значения делает работу схемы также неэффективной. Граница «разумного размера» подписываемой группы находится где-то около десяти бит, и блоки большего размера все равно необходимо подписывать «по частям».

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

 бит,

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

при выработке ключевой информации оно равно:

,

при выработке и проверке подписи оно вдвое меньше:

.

Размер ключа подписи  и проверки подписи можно дополнительно  уменьшить следующими приемами:

Нет необходимости хранить  ключи подписи отдельных битовых  групп, их можно динамически вырабатывать в нужный момент времени с помощью генератора криптостойкой гаммы. Ключом подписи в этом случае будет являться обычный ключ использованного в схеме подписи блочного шифра. Например, если схема подписи будет построена на алгоритме ГОСТ 28147-89, то размер ключа подписи будет равен 256 битам.

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

Таким образом, проблема размера ключей и подписи решена, однако, второй недостаток схемы –  одноразовость ключей – не преодолен, поскольку это невозможно в рамках подхода Диффи–Хеллмана.

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

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

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

Предположим, что наша схема рассчитана на 2L сообщений. Обозначим  через  i-тую комбинацию  l-того уровня. Если нумерацию комбинаций и уровней начинать с нуля, то справедливо следующее условие: 0 Ј i < 2L–l, а i-ая проверочная комбинация l-того уровня рассчитана на 2l сообщений с номерами от  iЧ2l до (i+1)Ч2l–1  включительно. Число комбинаций нижнего, нулевого уровня равно 2L, а самого верхнего, L-того уровня – одна, она и является контрольной комбинацией всех 2L сообщений, на которые рассчитана схема.

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

,

где через A||B обозначен  результат конкатенации двух блоков данных A и B, а через H(X) – процедура вычисления хэш-функции блока данных X.

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

Пример организации  проверочных комбинаций в виде двоичного  дерева в схеме на восемь сообщений  приведена на рисунке 3. Так, при передаче сообщения № 5 (контрольная комбинация выделена рамкой) вместе с его подписью должны быть переданы контрольная комбинация сообщения № 4 (C4(0)), общая для сообщений №№ 6–7 (C3(1)) и общая для сообщений №№ 0–3 (C0(2)), все они выделены на рисунке другим фоном.

 

 

Уровень

 

      3: C0(3)






      0: C0(0) C1(0) C2(0) C3(0)  C5(0) C6(0) C7(0)

 

Рис. 3. Двоичное дерево для  схемы ЭЦП на 8 сообщений

 

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

C=C0(3)=H(C0(2)||H(H(C4(0)||C5(0))||C3(1))).

Необходимость отправлять вместе с подписью сообщения дополнительную информацию, нужную для проверки подписи, на самом деле не очень обременительна. Действительно, в системе на 1024=210 подписей вместе с сообщением и его подписью необходимо дополнительно передавать 10 контрольных комбинаций, а в системе на 1048576=220 подписей – всего 20 комбинаций. Однако, при большом числе подписей, на которые рассчитана система, возникает другая проблема – хранение дополнительных комбинаций, если они рассчитаны предварительно, или их выработка в момент формирования подписи.

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

Первый подход предполагает затраты дисковой памяти, так как необходимо хранить 2L+1–2 значений хэш-функции всех уровней, а второй требует большого объема вычислений в момент формирования подписи. Можно использовать и компромиссный подход – хранить все хэш-комбинации начиная с некоторого уровня  l*, а комбинации меньшего уровня вычислять при формировании подписи.

В рассмотренной выше схеме подписи на 8 сообщений можно  хранить все 14 контрольных комбинаций, используемых при проверки (всего  их 15, но самая верхняя не используется), тогда при проверке подписи их не надо будет вычислять заново. Можно хранить 6 комбинаций начиная с уровня 1 (C0(1), C1(1), C2(1), C3(1), C0(2), C1(2)), тогда при проверке подписи сообщения № 5 необходимо будет заново вычислить комбинацию C4(0), а остальные (C0(2),C3(1)) взять из таблицы, и т.д.. Указанный подход позволяет достичь компромисса между быстродействием и требованиям к занимаемому количеству дискового пространства.

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

 

13. Атаки на ЭЦП

 

Стойкость большинства  схем ЭЦП зависит от стойкости  ассиметричных алгоритмов шифрования и хэш-функций.

Существует следующая  классификация атак на схемы ЭЦП:

атака с известыи открытым ключем.

Атака и известными подписанными сообщениями – противник, кроме  открытого кюча имеет и набор  подписанных сообщений.

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

Направленная атака  с выбором сообщения

Адаптивная атака с  выбором сообщения.

Каждая атака преследует определенную цель, которые можно  разделить на несколько классов:

- полное раскрытие. Противник находит секретный ключ пользователя

- универсальная подделка.  Противник находит алгоритм,  функционально аналогичный  алгоритму генерации ЭЦП

- селективная подделка. Подделка подписи под выбранным сообщением.

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

На практике применение  ЭЦП позволяет выявить или  предотвратить  следующие действия нарушителя:

отказ одного из участников авторства документа.

Модификация принятого  электронного документа.

Подделка документа.

Навязывание сообщений  в процессе передачи – противник  перехватывает обмен сообщениями  и модифицирует их.

Имитация передачи сообщения.

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

 

14. Некоторые средства работы с ЭЦП

 

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

Приведем некоторые  из них:

 

PGP

 

Наиболее известный - это пакет PGP (Pretty Good Privacy) – (www.pgpi.org ), без сомнений являетющийся на сегодня самым распространенным программным продуктом, позволяющим использовать современные надежные криптографические алгоритмы для защиты информации в персональных компьютерах.

К основным преимуществам  данного пакета, выделяющим его среди  других аналогичных продуктов следует отнести следующие:

 

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

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

Бесплатность. Готовые  базовые продукты PGP (равно как  и исходные тексты программ) доступны в Интернете в частности на официальном сайте PGP Inc.

( www.pgpi.org ).

4. Поддержка как централизованной (через серверы ключей) так и  децентрализованной (через «сеть  доверия») модели распределения  открытых ключей.

5.Удобство программного  интерфейса. PGP изначально создавалась  как продукт для широкого круга пользователей, поэтому освоение основных приемов работы отнимает всего несколько часов

 

Информация о работе Электронно-цифровая подпись как инструмент для придания юридической силы электронным документам