Практическаяработа №7 Изучение алгоритмов электронной цифровой подписи

Цель работы- закрепление теоретических знаний и практическое освоение алгоритмов электронной цифровой подписи. Время - 4 часа.

Основные теоретические сведения

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

ЭЦП на основе криптосистемы RSA. Вначале необходимо выбрать параметры алгоритма RSA. Для этого абонент А выбирает два больших простых числа р и g, и затем вычисляет N и ф в соответствии с N = pg и

ф = (р - \)(g -1). Затем абонентом А выбирается число к0, взаимно простое с

ф, и вычисляется число кз = к~1 тодф. Абонент А публикует числа к0 и N ассоциировав их со своим именем, а число кз хранит в секрете. Числа р, g и ф в дальнейшем не потребуются. Теперь абонент А готов подписывать сообщение X. Для этого вначале он вычисляет хэш-функцию hx=h(X). Алгоритм вычисления хэш-функции известен всем абонентам, причем злоумышленник практические не может изменить основное сообщение не

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

s = hk/modN,

которое и является цифровой подписью.

Вычисленная цифровая подпись добавляется к сообщению #,.Г. Каждый, кто знает открытые параметры абонента А, ассоциированные с его именем, т.е. числа к0 и N, может проверить подлинность его подписи. Для

этого необходимо вычислить значение хэш-функции hx = h(X) и затем вычислив число:

77 = /°modiV

проверить выполнение равенства hx =rj. Если подпись подлинная, то равенство выполняется, иначе подпись фальшивая или в подписанное сообщение внесено изменение.

ЭЦП на основе криптосистемы Эль-Гамаля. Как и в рассмотренном выше алгоритме вначале абонент А должен выбрать требуемые параметры криптосистемы Эль-Гамаля - большие простые числа р и g. Затем абонент А

генерирует секретное число кз, \<кз <р — 1, и вычисляет соответствующее

ему открытое число к0 в соответствии с к0 =g з mod р. Абонент А публикует свой открытый ключ к0. Теперь абонент А готов подписывать сообщение X. Вначале абонент А вычисляет значение хэш-функции hx = h(X), которое должно удовлетворять неравенству 1 <hx <р. Затем абонент А выбирает случайное число с, 1<с<р-1, и вычисляет:

l = gсrmdp. Далее абонент А вычисляет числа:

Sl = (hx -kj)mod(p-l),s2= с-lsxmod(p-1),

где с удовлетворят уравнению с -1сmod(^-l) = l.

В заключении абонент А формирует подписанное сообщение 4C,l,s2 ].

Получатель сообщения, прежде всего, заново вычисляет значение хэш-функции hx = h(X). Затем он проверяет подлинность подписи, используя равенство:

klofi =ghx mod/?.

Если подпись верна, то равенство выполняется.

Порядок выполнения работы

2.1. При подготовке к практической работе

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

2.2. Во время проведения занятия

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

В процессе выполнения работы студенты должны:

1. Построить блок-схемы алгоритмов ЭЦП на основе алгоритмов RSA и Эль-Гамаля.

2. Сформировать контрольный пример.

 

3. Выполнить программную реализацию заданной хэш-функции и алгоритма ЭЦП.

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

Содержание отчета

Отчет по практической работе должен включать в себя следующие пункты:

1. Задание на лабораторную работу.

2. Блок-схемы алгоритмов ЭЦП на основе алгоритмов RSA и Эль-Гамаля.

3. Контрольный пример.

4. Результаты работы программы с различными исходными текстами.

Контрольные вопросы

1. Понятие ЭЦП. Основные требования к ЭЦП.

2. Понятие хэш-функции.

3. Коллизии хэш-функции.

4. Алгоритмы хэширования.

5. Алгоритмы ЭЦП на основе криптосистемы Эль-Гамаля.

6. Алгоритмы ЭЦП на основе криптосистемы RSA.

7. Методы сокращения длины ЭЦП.