Электронный документооборот

Автор: Пользователь скрыл имя, 19 Апреля 2011 в 20:02, реферат

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

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

Работа содержит 1 файл

дип.docx

— 63.47 Кб (Скачать)

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

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

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

     Рассмотрим  схему взаимодействия отправителя (A) и получателя (B), которая позволяет B проверить подлинность передаваемого  сообщения.

     1. A создает сообщение x, которое он собирается подписать и вычисляет подпись DKA(x).

     2. A передает B пару (x,DKA(x)).

     3. B проверяет равенство EKA(DKA(x)) = x. В случае совпадения обоих величин B принимает решение о подлинности сообщения x, в противном случае B принимает решение считать сообщение x искаженным. 

     Рассмотренный протокол взаимодействия имеет следующий  недостаток: так как функция EKA(x) - опубликована, то злоумышленник C может для любого z вычислить EKA(z) и предать в канал связи пару (EKA(z),z). Несложно видеть, что в этом случае z, будет подписью для EKA(z). Для предотвращения такой возможности пользователи должны подписывать не сами сообщения, а их хэши, то есть значения хэш-функции от сообщения.  Напомним определение хэш-функции. Функция h:X -> M называется хэш-функцией, если выполнены следующие условия: 

     1. Постоянство размера - для входного  массива данных любого размера  результатом должен быть блок  данных фиксированного размера.

       2. Функция h(x) легко вычислима.

       3. Функцию h(x) трудно инвертировать, то есть почти для всех m из M трудно найти x из X такой, что h(x) = m.

       4. Для данного x сложно найти x' неравный x такой, что h(x) = h(x').

       5. Сложно найти пару (x, x') из X2 такую, что x неравен x' и h(x) = h(x').

       Где M - множество векторов фиксированной длины, а X - вектора произвольной длины. Пара (x, x') из X2 такая, что x неравно x' и h(x) = h(x') называется коллизией хэш-функции h.  Помимо устранения рассмотренной выше возможности создания подписи без знания секретного ключа, использование хэш-функции решает еще одну проблему: дело в том, что функции EKA(x) и DKA(x) оперируют с блоками данных фиксированного размера, а размер сообщения может превышать этот размер. Без использования хэш-функции подписывать сообщение x пришлось бы следующим образом:

     x = (x1,..,xk) \to ( (x1,DKA(x1)),.., (xk,DKA(xk))),

     где x1,..,xk - векторы фиксированной длины, совпадающей с длиной входа функций EKA(x) и DKA(x). Подобная подпись обладает следующими недостатками:

     - для больших документов слишком  сильно загружается процессор,  так как придется много раз  вычислять функцию DKA(xi);

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

     Модифицированный  протокол выглядит таким образом:

     1. A создает сообщение x, которое он собирается подписать и вычисляет его хэш h(x), после чего подписывает DKA(h(x)).

     2. A передает B пару (x,DKA(h(x))).

     3. B проверяет равенство EKA(DKA(h(x))) = h(x). В случае совпадения обоих величин B принимает решение о подлинности сообщения x, в противном случае B принимает решение считать сообщение x искаженным. 

     В этом протоколе возможность подделки подписи может быть основана на нахождении коллизии хэш-функции, то есть по известному значению h(x) найти x' такой, что h(x) = h(x'). Для предотвращения этой возможности нельзя использовать непроверенные функции. Как правило, стойкие к коллизиям хэш- функции описаны в государственном стандарте. В Российской Федерации этот стандарт носит название ГОСТ Р 34.11-94, в США - описывается документами FIPS 180-1 и FIPS 180-2, а в Евросоюзе рекомендуется использование стандарта Whirlpool. 
 
Российский стандарт хэширования был принят в 1994 году и с тех пор не изменялся, размер хэш-блока для него составляет 256 бит. В США изначально действовал стандарт SHS (Secure Hash Standard), где размер хэш-блока был равен 160 бит. Однако в 2002 году стандарт был пересмотрен: прежний остался действовать и получил обозначение SHA-1, но к нему были добавлены три новых алгоритма, вырабатывающие хэш-блоки размером 256, 384 и 512 бит, названные SHA-256/384/512 соответственно.

     (+РБ)

     (!!!!!!!!!)

 

     Схемы электронной цифровой подписи 

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

     ГОСТ Р34.10-01,

     ECDSA,

     ESIGN,

     RSA-PSS,

     схема Шнорра,

     ElGamal.

     Электронная цифровая подпись СТБ 1176.2-99

     Схема Диффи - Лампорта

     Вероятностная схема подписи Рабина

     Где ГГОСТ Р34.10-01 и ECDSA - стандарты в  России и США соответственно, а алгоритмы ESIGN, RSA-PSS - претенденты в конкурсе проекта NESSIE (Евросоюз). 

     Схема цифровой подписи Клауса Шнорра(Schnorr)

     Стойкость схемы Шнорра основывается на трудной задаче вычисления дискретных логарифмов. Для генерации пары ключей сначала выбираются два простых числа, p и q так, чтобы q было сомножителем p-1. Затем выбирается a, не равное 1, такое что aq = 1 ( mod p). Все эти числа могут быть свободно опубликованы и использоваться группой пользователей. Для генерации конкретной пары ключей выбирается случайное число, меньшее q. Оно служит закрытым ключом, s. Затем вычисляется открытый ключ v = a-s (mod p). Для подписи сообщений используется хэш-функция H(M).

     Предварительные вычисления Пользователь A выбирает случайное число r, меньшее q, и вычисляет x = ar (mod p).

     Подпись сообщения M Для того, чтобы подписать сообщение M пользователю A необходимо выполнить следующие действия:

  1. объединить M и x и хэшировать результат:  
    e = H(M,x),
  2. вычислить y = (r + se) ( mod q). Подписью являются значения e и y, их нужно выслать получателю B.

     Проверка  подписи для сообщения M Получатель B вычисляет x' = ay ve (mod p). Затем он проверяет, что хэш-значение для объединения M и x' равно e. e = H(M,x') Если это так, то он считает подпись верной.

     В своей работе Шнорр приводит следующие свойства своего алгоритма:

  1. Большая часть вычислений, нужных для генерации подписи и независящих от подписываемого сообщения, может быть выполнена на стадии предварительных вычислений. Следовательно, эти вычисления могут быть выполнены во время простоя и не влияют на скорость вычисления подписи.
  2. При одинаковом уровне безопасности длина подписей для Schnorr короче, чем для RSA. Например, при 140-битовом q длина подписей равна всего лишь 212 битам, меньше половины длины подписей RSA. Подписи Schnorr также намного короче подписей ElGamal.
 
 

Электронная цифровая подпись СТБ 1176.2-99 (РБ)

     Введенный в 1999г. стандарт Республики Беларусь СТБ 1176.2 "Информационная технология. Защита информации. Процедуры выработки и проверки электронной цифровой подписи " базируется на схеме ЭЦП Шнорра.

     Параметры. При выработке и проверке подписи используются l-битовое простое число p и r-битовое простое число q, q | (p-1). Допустимые значения указаны в таблице 1. Применяется определяемая СТБ 1176.1 функция хеширования h, параметр L которой устанавливается равным (r-1).

     Таблица 1. Допустимые значения параметров r и l.

     
Уровень стойкости      r      l
     1      143      638
     2      154      766
     3      175      1022
     4      182      1118
     5      195      1310
     6      208      1534
     7      222      1790
     8      235      2046
     9      249      2334
     10      257      2462

     Часть преобразований стандарта выполняется  в группе G, определяемой множеством Bp = {1,2, ...,p-1 } и операцией *:

     u * v = uvR-1 ( mod p),

     где R = 2l+2. Использование операции * вместо обычного умножения по модулю p упрощает применение алгоритма Монтгомери. Далее, u(m) - m-я степень числа u из Bp как элемента G. В стандарте приведены алгоритмы генерации чисел p,q и элемента a из Bp, имеющего порядок q в группе G. Числа p,q,a являются долговременными параметрам СТБ 1176.2-99, едиными для группы пользователей.

     Входные данные.

     Всякое  сообщение M, подпись к которому вырабатывается или проверяется, задается последовательностью байтов. Если t- n-разрядное число по основанию 28 = 256, то есть  
t = t0 (256)0+..+tn-1 (256)n-1,  
причем 0 <= ti <256, tn-1 неравно 0,  
то t||M --- сообщение, полученное вставкой байтов t0,t1,..,tn-1 в начало M.

     Выработка подписи.

     При выработке подписи S к сообщению M используется личный ключ x, 0<x<q. Выполняются следующие шаги.

     Выработать  случайное секретное число k, 1<k<q.

     t = a(k).

     U = h(t||M). Если U=0, то вернуться к шагу 1.

     V = (k-xU). Если V=0, то вернуться к шагу 1.

     S = U2r+V.

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

     При проверке подписи S к сообщению M используется открытый ключ y = a(X). Алгоритм проверки подписи состоит из следующих шагов.

     V = S ( mod 2r).

     U = (S-V)/2r.

     Проверить условия 0<U<2r-1, 0<V<q. Если хотя бы одно из условий нарушается, то подпись признается недействительной и выполнение алгоритма завершается.

     t = a(V) * y(U).

     W = h(t||M).

     Если W неравно U, то подпись признается недействительной. Если W=U, то принимаются решения о  том, что:

     а) подпись S была создана с помощью личного ключа x, связанного с открытым ключем y;

     б)подпись S и сообщение M не были изменены с момента их создания.  

Информация о работе Электронный документооборот