Практическаяработа №6 Изучение криптосистем с открытым ключом
Цель работы- закрепление теоретических знаний и практическое освоение алгоритмов ассиметричного шифрования. Время - 4 часа.
Основные теоретические сведения
Алгоритм RSA предложили в 1978 г. три автора: Роналдьд Райвест (Ronald Rivest), Ади Шамир (Adi Shamir) и Леонард Адльман (Leonard Adlman). Алгоритм RSA стал первым полноценным алгоритмом с открытым ключом, который может работать как в режиме шифрования данных, так и в режиме электронной цифровой подписи. Криптостойкость алгоритма основывается на трудности факторизации больших чисел и трудности вычисления дискретных логарифмов.
Пусть каждый абонент группы выбирает случайно два больших простых числа р и g, затем вычисляет:
N = pg^ =(p-1)(g-1),
и выбирает число ко <ф, взаимно простое с ф. Далее, по обобщенному алгоритму Евклида находят число кз, такое, что кзко modф =1. Пара С0, N] и число кз являются открытым и секретным ключом, соответственно.
Абонент А желает передать сообщение х абоненту В, причем х < NB
(далее индексы А и В, указывают принадлежность параметра, соответствующему абоненту). Алгоритм RSA состоит в последовательном выполнении следующих операций. Абонент А шифрует сообщение в соответствии с выражением:
у = хк° modNB. Абонент В, получив криптограмму расшифровывает ее используя выражение:
х = укВ modNB.
Асимметричный алгоритм Эль Гамаля (El Gamal) использует операцию возведения в степень по модулю простого числа. При этом трудноразрешимой задачей для злоумышленника является отыскание не числа, которое возведено в степень, а то, в какую степень возведено известное число. Эта задача носит название проблемы дискретного логарифма.
Для всей группы абонентов выбираются некоторые большие простые числа р и g( число g является примитивным элементом поля GF 4р ).
Каждый абонент группы генерирует свое секретное число кз, 1<кз <р —1, и
вычисляет соответствующее ему открытое число к0,
k0=gKmod p. Числа к0 и кз являются открытым и секретным ключом, соответственно.
Алгоритм шифрования заключается в следующем. Абонент А генерирует случайное число с, 1 <с <р-2 и вычисляет:
l = g c modp, y = x-(с modp и передает пару <>Габоненту В. Абонент В, получив пару <>Г, вычисляет:
х = у-1р~Х~к° mod/?.
Порядок выполнения работы
2.1. При подготовке к практической работе
На этапе подготовки к практической работе студенты должны, используя литературу [1,2,3], материалы лекций углубить свои знания по следующим вопросам: понятие односторонней функции, генерация ключей в алгоритмах RSA и Эль-Гамаля, процедура шифрования данных в алгоритмах RSA и Эль-Гамаля.
2.2. Во время проведения занятия
Преподаватель перед проведением занятия проводит контрольный опрос студентов и определяет степень их готовности к практической работе. Преподаватель разбивает группу студентов на подгруппы, для каждой подгруппы выдается индивидуальное задание на предстоящую лабораторную работу. Индивидуальное задание представляет собой исходные данные для генерации ключей.
В процессе выполнения работы студенты должны:
1. Построить блок-схемы алгоритмов шифрования RSA и Эль-Гамаля.
2. Сформировать контрольный пример.
3. Выполнить программную реализацию алгоритмов шифрования RSA и Эль-Гамаля.
4. Используя контрольный пример проверить правильность работы
алгоритмов шифрования и расшифрования RSA и Эль-Гамаля.
Содержание отчета
Отчет по практической работе должен включать в себя следующие пункты:
1. Задание на лабораторную работу.
2. Блок-схемы алгоритмов шифрования RSA и Эль-Гамаля.
3. Контрольный пример.
4. Результаты работы программы с различными исходными текстами и ключами.
Контрольные вопросы
1. Понятие односторонней функции и односторонней функции с «секретом».
2. Какая трудноразрешимая математическая задача лежит в основе стойкости алгоритма RSA?
3. Какая трудноразрешимая математическая задача лежит в основе стойкости алгоритма Эль-Гамаля?
4. Алгоритмы генерации ключей в криптосистеме RSA и Эль-Гамаля.
5. Алгоритмы шифрования и расшифрования в криптосистеме RSA и Эль-Гамаля.
6. Особенности асимметричных алгоритмов на эллиптических кривых.
Литература
1. Баричев С.Г, Гончаров В.В., Серов Р.Е. Основы современной криптографии: Учебный курс. - 2-е изд. - М.: Горячая линия - Телеком, 2002.
2. Харин Ю.С., Беник В.И, Матвеев Г.В., Агиевич СВ. Математические и компьютерные основы криптологии: Учеб. пособие. -Минск: Новое знание, 2003.
3. Рябко Б.Я., Фионов А.Н. Криптографические методы защиты информации. Учебное пособие для вузов. М.: Горячая линия - Телеком, 2005.