Практическаяработа №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. Методы сокращения длины ЭЦП.