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

 

Министерство образования и науки Украины

Харьковский национальный университет радиоэлектроники










Курсовая работа

по дисциплине: Основы криптографической защиты информации

на тему: Электронная цифровая подпись




Выполнил

Студент Бунин Л. В.

группы ТК-8-1

Проверила:

Иванов И. И.







Харьков 2014


СОДЕРЖАНИЕ


ВСТУПЛЕНИЕ

. ОБЩИЕ СВЕДЕНИЯ О КРИПТОГРАФИИ

.1 Криптография

.2 Требования к криптографическим системам защиты информации и их возможности

.3 Хэш-функция

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

. ЭЛЕКТРОННАЯ ЦИФРОВАЯ ПОДПИСЬ ПО ЭЛЬ-ГАМАЛЮ И DSS/DSA

.1 Алгоритм цифровой подписи Эль-Гамаля (ЕGSА

.1.1 Формирование и проверка подписи EGSA

.2 Стандарт ЭЦП DSS

.2.1 Подход DSS

.2.2 Формирование и проверка подписи DSS

.3 Алгоритм цифровой подписи DSА

.3.1 Формирование и проверка подписи DSА

. РАЗРАБОТКА ПРОГРАММНОГО КОДА

.1 Электронная цифровая подпись по Эль-Гамалю

3.2 Электронная цифровая подпись по DSS/DSA

4. РЕЗУЛЬТАТЫ

4.1 Интерфейс программы реализующей ЭЦП по ЕGSА

4.2 Интерфейс программы реализующей ЭЦП по DSS/DSA

ВЫВОДЫ

ИСТОЧНИКИ ДАННЫХ



ВСТУПЛЕНИЕ


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

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

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

Криптографические методы защиты информации [1] в автоматизированных системах могут применяться как для защиты информации, обрабатываемой в ЭВМ или хранящейся в различного типа ЗУ, так и для закрытия информации, передаваемой между различными элементами системы по линиям связи.

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



1.ОБЩИЕ СВЕДЕНИЯ О КРИПТОГРАФИИ


1.1 Криптография


Криптография [1] (от др. греч. <#"justify">1.3 Хеш-функция


Функция хеширования [3] - это отображение h из множества А* всех последовательностей символов из алфавита А в алфавит Аm , где m - натуральное число, таким образом каждая последовательность произвольной длины над А отображается в последовательность длины m над А. Иными словами, хэш-функция - это алгоритм, инвертирующий строку произвольной длины в битовую строку фиксированной длины.

Хеш-функция предназначена для сжатия подписываемого документа до нескольких десятков или сотен бит. Обычно хешированная информация является сжатым двоичным представлением основного сообщения произвольной длины [3] . Следует отметить, что значение хеш-функции h(М) сложным образом зависит от документа М и не позволяет восстановить сам документ М.

Хеш-функция должна удовлетворять целому ряду условий:

хеш-функция должна быть чувствительна к всевозможным изменениям в тексте М, таким как вставки, выбросы, перестановки и т.п.;

хеш-функция должна обладать свойством необратимости, то есть задача подбора документа М', который обладал бы требуемым значением хеш-функции, должна быть вычислительно неразрешима;

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

Большинство хеш-функций строится на основе однонаправленной функции f(·), которая образует выходное значение длиной n при задании двух входных значений длиной n. Этими входами являются блок исходного текста М, и хеш-значение Нi-1 предыдущего блока текста (Рис.1).

Рисунок 1.1 - Построение однонаправленной хеш-функции


Нi = f(Мi, Нi-1)(1.1)


Хеш-значение, вычисляемое при вводе последнего блока текста, становится хеш-значением всего сообщения М.

В результате однонаправленная хеш-функция всегда формирует выход фиксированной длины n (независимо от длины входного текста).


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


Электронная цифровая подпись [3] (сообщения или электронного документа) - представляет собой конечную цифровую последовательность, зависящую от самого сообщения или документа и от секретного ключа, известного только подписывающему субъекту, предназначенная для установления авторства. Предполагается, что цифровая подпись должна быть легко проверяемой без получения доступа к секретному ключу. При возникновении спорной ситуации, связанной с отказом подписывающего от факта подписи некоторого сообщения либо с попыткой подделки подписи, третья сторона должна иметь возможность разрешить спор. Цифровая подпись позволяет решить следующие три задачи: осуществить аутентификацию <#"justify">2. ЭЛЕКТРОННАЯ ЦИФРОВАЯ ПОДПИСЬ ПО ЭЛЬ-ГАМАЛЮ И DSS/DSA


2.1 Цифровая подпись на основе алгоритма Эль-Гамаля (EGSA)


Идея EGSA [8] основана на том, что для обоснования практической невозможности фальсификации цифровой подписи может быть использована более сложная вычислительная задача, чем разложение на множители большого целого числа, - задача дискретного логарифмирования[8]. Кроме того, Эль-Гамалю удалось избежать явной слабости алгоритма цифровой подписи RSA, связанной с возможностью подделки цифровой подписи под некоторыми сообщениями без определения секретного ключа[8].

Группа пользователей выбирает общие параметры Р и А. Затем каждый абонент группы выбирает свое секретное число Хi, 1 < Хi< Р-1, и вычисляет соответствующее ему открытое число:

цифровая подпись криптографическая хеш

(2.1)


Таким образом, каждый пользователь получает пару (закрытый ключ; открытый ключ) = (Хi, Yi). Открытые ключи пользователей[8] могут храниться в общей базе системы распределения ключей и при необходимости предоставляться всем абонентам системы.

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

Пусть пользователь 1 хочет подписать свое сообщение цифровой подписью и передать его пользователю 2. В этом случае алгоритм действий следующий:

Первый пользователь выбирает случайное секретное число k, взаимно простое с Р-1, и вычисляет число а


(2.2)


Затем с помощью расширенного алгоритма Евклида необходимо найти значение b в следующем уравнении:


m = (X1 * a +k * b) mod (P-1) (2.3)


Пара чисел (a, b) будет цифровой подписью сообщения m.

Сообщение m вместе с подписью (a, b) отправляется пользователю 2.

Пользователь 2 получает сообщение m и с использованием открытого ключа первого абонента Y1 вычисляет два числа по следующим формулам:


(2.4)


Если с1 = с2, то цифровая подпись первого пользователя верная. Для подписывания каждого нового сообщения должно каждый раз выбираться новое значение k.

Подписи, созданные с использованием алгоритма Эль-Гамаля[8], называются рандомизированными, так как для одного и того же сообщения с использованием одного и того же закрытого ключа каждый раз будут создаваться разные подписи (a,b), поскольку каждый раз будет использоваться новое значение k. Подписи, созданные с применением алгоритма RSA[8], называются детерминированными, так как для одного и того же сообщения с использованием одного и того же закрытого ключа каждый раз будет создаваться одна и та же подпись.


2.1.1 Формирование и проверка подписи EGSA

Пусть абоненты, обменивающиеся через Интернет зашифрованными сообщениями, имеют следующие общие параметры: Р = 11, А = 7.

Один из пользователей этой системы связи хочет подписать свое сообщение m=5 цифровой подписью, сформированной по алгоритму Эль-Гамаля. Вначале он должен выбрать себе закрытый ключ, например, Х1=3 и сформировать открытый ключ Y1 = 73 mod 11 = 2. Открытый ключ может быть передан всем заинтересованным абонентам или помещен в базу данных открытых ключей системы связи.

Затем пользователь выбирает случайное секретное число k, взаимно простое с Р-1. Пусть k=9 ( 9 не имеет общих делителей с 10 ). Далее необходимо вычислить число


(2.5)


После этого с помощью расширенного алгоритма Евклида находится значение b в уравнении:


(2.6)


Решением последнего уравнения будет значение b=9.

Таким образом, пара чисел (8, 9) будет цифровой подписью сообщения m=5.

Если любой другой пользователь сети желает проверить цифровую подпись в сообщении, он должен получить из базы данных[8] открытый ключ первого пользователя (он равен 2 ), вычислить два числа с1 и с2 и сравнить их.


(2.7)


Так как с1 = с2, то цифровая подпись первого пользователя в сообщения m=5 верная.


.2 Стандарт ЭЦП DSS


В 1991 г. NIST (National Institute of Standards and Technology) [8] предложил для обсуждения проект стандарта ЭЦП DSS (Digital Signature Standard), использующий алгоритм DSA (Digital Signature Algorithm). Стойкость данного алгоритма основана на сложности решения задачи дискретного логарифмирования в мультипликативной группе простого поля[8] F(/p). Цифровая подпись служит для установления изменений данных и для установления подлинности подписавшейся стороны. Получатель подписанных данных может использовать цифровую подпись для доказательства третьей стороне факта, что подпись действительно сделана отправляющей стороной.


2.2.1 Подход DSSиспользует алгоритм[8], который разрабатывался для использования только в качестве цифровой подписи. В отличие от RSA, его нельзя использовать для шифрования или обмена ключами. Тем не менее, это технология открытого ключа.

Рассмотрим отличия подхода, используемого в DSS для создания цифровых подписей, от применения таких алгоритмов как RSA.


Рис. 2.2.1.1. Создание и проверка подписи с помощью алгоритма RSA


Рис. 2.2.1.2. Создание и проверка подписи с помощью стандарта DSS


Подход DSS использует сильную хэш-функцию. Хэш-код[8] является входом функции подписи вместе со случайным числом k, созданным для этой конкретной подписи. Функция подписи также зависит от закрытого ключа отправителя KRa и множества параметров, известных всем участникам. Можно считать, что это множество состоит из глобального открытого ключа KUG. Результатом является подпись, состоящая из двух компонент, обозначенных как s и r.

Для проверки[8] подписи получатель также создает хэш-код полученного сообщения. Этот хэш-код вместе с подписью является входом в функцию верификации. Функция верификации[8] зависит от глобального открытого ключа KUG и от открытого ключа отправителя KUa. Выходом функции верификации является значение, которое должно равняться компоненте r подписи, если подпись корректна. Функция подписи такова, что только отправитель, знающий закрытый ключ, может создать корректную подпись.

.2.2 Формирование и проверка подписи DSS

. Отправитель А сообщения ? предоставляет широкому кругу абонентов (получателей его сообщений) доступ к следующим параметрам:- простое число, 2(\512) < р< 2(\1024), битовая длинам кратна 64;- простое число, 2(\159) <р< 2(\160), и делитель р-1=h(\((p-1)/q))(mod p) (2.8)

где h - такое целое число, что 0 < h < p и h(\((p-1)/q)) (mod p) > 1;

у - открытый ключ, сформированный по правилу у = a(\x)(mod p). Здесь x - секретный ключ, известный только А, причем 0 < x < q;

? (?) - хэш-функция, которая по исходному сообщению ? формирует целое число в диапазоне от 1 до q

. Пользователь А генерирует случайное число к такое, что 0 < к < q, держит его в секрете и уничтожает сразу после получения подписи.

. А находит два числа r и s по следующему правилу:


r=(g(\k)(mod p))(mod q) (2.9)=k(\-1)(xr+H(M))(mod q) (2.10)


Подписью к сообщению ? является пара (r, s).

Проверка подписи. Пользователь В получает от А сообщение M и подпись (r,s) к нему. B должен убедиться, что ? совпадает с M. Для этого:

) если хотя бы одно из условий 0<s<q, 0<r<q не выполняется, то подпись считается недействительной;

) В находит v=(s)(\-1) mod q (2.11)

) В вычисляет z(/-1)=H(M)v(mod q), z(/2)=rv(mod q)(2.12)

) далее вычисляется u=(g(\z(/1))y(\z(/2))(mod p))(mod q) (2.13)

) В проверяет условие r=u Если оно выполняется, то подпись считается подлинной и сообщение не измененным, т.е. M= М.



2.3 Стандарт ЭЦП DSA


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

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

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

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

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


.3.1 Формирование и проверка подписи DSА

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

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

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

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

Общие параметры необходимы для функционирования системы в целом. Секретный ключ используется для формирования ЭЦП, а открытый - для проверки ЭЦП. Общими параметрами системы являются простые целые числа 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. (2.14)


Параметры p,q,g публикуются для всех участников обмена ЭД с ЭЦП. Секретный ключ x случайно выбирается из диапазона [1,q] и держится в секрете.

Открытый ключ вычисляется:


y=g^x mod p.(2.15)

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

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

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

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

. Вычисляется S= (k^-1(h+xr)) mod q, (2.17) где 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 (2.18)

u1 = (H(m1)w) mod q(2.19) = ((r1/w) mod q (2.20) = (( g^u1y^u2) mod p ) mod q (2.21)


- проверяется равенство v = r1

Если последнее равенство выполняется, то подпись принимается. В данном стандарте специфицируется также процедура генерации основных параметров системы и проводится доказательство того, что если v=r1, то m1=m, r1=r, s1=s.


3. РАЗРАБОТКА ПРОГРАММНОГО КОДА


.1 Электронная цифровая подпись по Эль-Гамалю


Для выполнения курсовой работы я использовал Adobe Flash с реализацией интерфейса через ActionScript 3.0.

Для получения рабочей электронной цифровой подписи по Эль-Гамалю мне было необходимо реализовать в программе хеширование. В алгоритме программы функция хеширования описывается подобным образом:m:Number = 0;

var osn:Number = 0;M:String;arr_o:Array = new Array();_hesh.addEventListener(MouseEvent.CLICK, get_hesh)get_hesh(e:MouseEvent):void

{= otkritii.text;(var ind_1:Number = 0; ind_1 < M.length; ind_1++)

{ arr_o.push(M.charCodeAt(ind_1)); }

//РЕАЛИЗАЦИЯ ФУНКЦИИ ХЕШИРОВАНИЯ(var ind_2:Number = 0; ind_2 < M.length; ind_2++)

{osn = Math.pow(arr_o[ind_2], m) % 256;= ((osn + arr_o[ind_2]) % 30) + 2;}.text = String(m);(var ind_3:Number = 0; ind_3 < M.length; ind_3++)

{ arr_o.pop(); }

}

В следующей части программы я реализовал объявление переменных в области от 1381 до 3989.

Теперь я приступил к реализации самой электронной цифровой подписи:

for(var gli:Number = 1; gli > 0; gli++)

{

//ГЕНЕРАЦИЯ ПАРАМЕТРОВ P И G= Math.floor(Math.random()*330);= prostie_chisla[ind];_1 = (P - 1);_2 = (P - 3);pre_3:Number = 0;pre_4:Number = 0;( G = 1; G < P - 1; G++)

{(var i_on1:Number = 0; i_on1 < (P - 1); i_on1++)

{_G1 = on_G1 * G;_G1 = on_G1 % P;

}( on_G1 == 1)

{_3 = 1;

}( on_G1 != 1)

{_3 = 0;

}_G1 = 1;(var l:Number = 1; l < P - 2; l++)

{(var i_on2:Number = 0; i_on2 < l; i_on2++)

{_G2 = on_G2 * G;_G2 = on_G2 % P;

}( on_G2 == 1)

{_4 = 0;;

}( on_G2 != 1)

{_4 = 1;

}_G2 = 1;

}( pre_3 == 1 && pre_4 == 1)

{;

}

}

//ГЕНЕРАЦИЯ X И К И ВЫЧИСЛЕНИЕ Y

X = Math.floor(Math.random()*gua_2) + 2;(var i_Y:Number = 0; i_Y < X; i_Y++)

{_Y = on_Y * G;_Y = on_Y % P;

}= on_Y % P;(var l_1:Number = 1; l_1 > 0; l_1++)

{= Math.floor(Math.random()*gua_2) + 2;_a = P - 1;_b = K;(var l_2:Number = 1; l_2 > 0; l_2++)

{((nod_a != 0) || (nod_b != 0))

{(nod_a > nod_b)

{_a = nod_a % nod_b;

}nod_b = nod_b % nod_a;

}((nod_a == 0) || (nod_b == 0))

{= nod_a + nod_b;

break;

}

}(nod == 1)

{;

}}

//ВЫЧИСЛЕНИЕ ПАРАМЕТРОВ ПОДПИСИ

for(var i_a:Number = 0; i_a < K; i_a++)

{_a = on_a * G;_a = on_a % P;

}= on_a % P;(var b:Number = 1; b > 0; b++)

{_b1 = X*a + K*b;_b2 = on_b1 % (P - 1);(m == on_b2)

{;

}}(var i_par1:Number = 0; i_par1 < a; i_par1++)

{_par1 = on_par1 * Y;_par1 = on_par1 % P;

}_1 = on_par1 % P;(var i_par2:Number = 0; i_par2 < b; i_par2++)

{_par2 = on_par2 * a;_par2 = on_par2 % P;

}_2 = on_par2 % P;

//ВЫЧИСЛЕНИЕ ПАРАМЕТРОВ ДЛЯ ПРОВЕРКИ

on_A1 = par_1*par_2;_1 = on_A1 % P;(var i_A2:Number = 0; i_A2 < m; i_A2++)

{_A2 = on_A2 * G;_A2 = on_A2 % P;

}_2 = on_A2;(b < 0)

{= (b + (P - 1));

}(((b % 1) == 0) && (b > 5) && (a > 5) && (b != a) && (A_1 == A_2))

{;

}_a = 1;_Y = 1;_par1 = 1;

on_par2 = 1;_A2 = 1;}

Далее я реализовал режим проверки подлинности цифровой подписи:

function on_pr(e:MouseEvent):void

{

//РЕЖИМ ПРОВЕРКИ

//ПРИНЯТИЕ ПАРАМЕТРОВ= Number(proverka.P_znach.text);

G = Number(proverka.G_znach.text);= Number(proverka.Y_znach.text);= Number(proverka.a_znach.text);= Number(proverka.b_znach.text);(P + " " + G + " " + Y + " " + a + " " + b);(var i_par1:Number = 0; i_par1 < a; i_par1++)

{_par1 = on_par1 * Y;_par1 = on_par1 % P;

}_1 = on_par1 % P;(var i_par2:Number = 0; i_par2 < b; i_par2++)

{_par2 = on_par2 * a;_par2 = on_par2 % P;

}_2 = on_par2 % P;

//ВЫЧИСЛЕНИЕ ПАРАМЕТРОВ ДЛЯ ПРОВЕРКИ

on_A1 = par_1*par_2;_1 = on_A1 % P;(var i_A2:Number = 0; i_A2 < m; i_A2++)

{_A2 = on_A2 * G;_A2 = on_A2 % P;

}_2 = on_A2;

//ВЫВОД В ИНТЕРФЕЙС

proverka.A_1_znach.text = String(A_1);.A_2_znach.text = String(A_2);


3.2 Электронная цифровая подпись по DSS/DSA


Для получения рабочей электронной цифровой подписи по DSS/DSA мне было необходимо реализовать в программе хеширование. В алгоритме программы функция хеширования описывается подобным образом:m:Number = 0;

var osn:Number = 0;M:String;arr_o:Array = new Array();_hesh.addEventListener(MouseEvent.CLICK, get_hesh)get_hesh(e:MouseEvent):void

{

//ВЗЯТИЕ ТЕКСТА ДЛЯ ХЕША= otkritii.text;

for (var ind_1:Number = 0; ind_1 < M.length; ind_1++)

{ _o.push(M.charCodeAt(ind_1));

}

//ХЕШИРОВАНИЕ(var ind_2:Number = 0; ind_2 < M.length; ind_2++)

{= Math.pow(arr_o[ind_2], m) % 256;= ((osn + arr_o[ind_2]) % 30) + 2;

}.text = String(m);(var ind_3:Number = 0; ind_3 < M.length; ind_3++)

{ _o.pop();

}

}

В слудующей части программы я реализовал объявление переменных в диапазоне от 1381до 3989.

Теперь я приступил к реализации самой электронной цифровой подписи:

{

//РЕЖИМ ПОДПИСИ(var gli:Number = 1; gli > 0; gli++)

{

//ГЕНЕРАЦИЯ ПАРАМЕТРОВ P, Q И G

for(var kil:Number = 1; kil > 0; kil++)

{= Math.floor(Math.random()*330);= prostie_chisla[ind];_1 = (P - 3);= Math.floor(Math.random()*20);= prostie_chisla2[kon]((P - 1) % q == 0)

{(P + " " + q);_2 = (q - 3);;

}

}(var ali:Number = 1; ali > 0; ali++)

{= Math.floor(Math.random()*gua_1) + 2;(var i_on1:Number = 0; i_on1 < ((P - 1)/q); i_on1++)

{_G = on_G * h;_G = on_G % P;

}= on_G;(G > 1)

{(G);

break;

}}

//ГЕНЕРАЦИЯ X И K, ВЫЧИСЛЕНИЕ Y, A И B

X = Math.floor(Math.random()*gua_2) + 2;(var i_on1:Number = 0; i_on1 < X; i_on1++)

{_Y = on_Y * G;_Y = on_Y % P;

}= on_Y;= Math.floor(Math.random()*gua_2) + 3;(var i_on1:Number = 0; i_on1 < K; i_on1++)

{_a = on_a * G;_a = on_a % P;

}= (on_a % q);(a);_b = (m + a*X)/K ;= (on_b % q);= (1 / b);_1 = (m*W);_2 = (a*W);_1 = Math.pow(G, U_1);_2 = Math.pow(Y, U_2);_V = ((par_1)*(par_2)) % P;= on_V % q;(V);_par1 = 1;_par2 = 1;_V = 1;_G = 1;_Y = 1;_a = 1;_b = 1;(((b % 1) == 0) && (a > 5) && (b > 5) && (a != b) && ((V % 1) == 0) && (a == V))

{;

}}

Следующей частью кода я вывожу электронную цифровую подпись в интерфейс.

podpis.P_znach.text = String(P);.P_znach.text = String(P);.G_znach.text = String(G);.G_znach.text = String(G);.q_znach.text = String(q);.q_znach.text = String(q);.X_znach.text = String(X);.Y_znach.text = String(Y);.Y_znach.text = String(Y);.K_znach.text = String(K);.a_znach.text = String(a);.a_znach.text = String(a);.b_znach.text = String(b);.b_znach.text = String(b);

Далее я реализовал режим проверки подлинности цифровой подписи:

function on_pr(e:MouseEvent):void

{

//РЕЖИМ ПРОВЕРКИ ПОДПИСИ

//ПРИНЯТИЕ ПАРАМЕТРОВ= Number(proverka.P_znach.text);

G = Number(proverka.G_znach.text);= Number(proverka.q_znach.text);= Number(proverka.Y_znach.text);= Number(proverka.a_znach.text);= Number(proverka.b_znach.text);

//ВЫЧИСЛЕНИЕ ПАРАМЕТРОВ ДЛЯ ПРОВЕРКИ= (1 / b);

U_1 = (m*W);_2 = (a*W);_1 = Math.pow(G, U_1);_2 = Math.pow(Y, U_2);_V = ((par_1)*(par_2)) % P;= on_V % q;_par1 = 1;

on_par2 = 1;_V = 1;

//ВЫВОД В ИНТЕРФЕЙС

proverka.U_1_znach.text = String(U_1);.U_2_znach.text = String(U_2);.V_znach.text = String(V);

}


4. РЕЗУЛЬТАТЫ


.1 Интерфейс программы реализующей ЭЦП по ЕGSА


Интерфейс моей программы состоит из трёх основных режимов работы: хеширования сообщения, формирования подписи и проверки подписи.


Рисунок 4.1.1 - Интерфейс программы реализующей ЭЦП по ЕGSА


Интерфейс программы реализующей ЭЦП по DSS/DSA

Интерфейс моей программы состоит из трёх основных режимов работы: хеширования сообщения, формирования подписи и проверки подписи.

Рисунок 4.2.1 - Интерфейс программы реализующей ЭЦП по DSS/DSA



ВЫВОДЫ


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

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

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

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


ИСТОЧНИКИ ДАННЫХ


Беляев А.В. "Методы и средства защиты информации".

Баричев С.Г. Основы современной криптографии - Москва, Горячая линия - Телеком, 2001.

Петров А.А. Компьютерная безопасность. Криптографические методы защиты. ДМК Москва, 2000 г.

Столлингс В. Криптография и защита сетей: теория и практика. М: Вильямс. 2001.

Терехов А.Н. "Программирование РАН", N 5 (сентябрь-октябрь), 1994, стр. 17--22 .

Криптографические алгоритмы с открытым ключом (http://argosoft.webservis.ru/Base/RSAintro.html#Криптографические алгоритмы с открытым ключом)


Министерство образования и науки Украины Харьковский национальный университет радиоэлектроники Курсовая работа по д

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ