Практическаяработа №6 Изучение криптосистем с открытым ключом

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

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

Алгоритм RSA предложили в 1978 г. три автора: Роналдьд Райвест (Ronald Rivest), Ади Шамир (Adi Shamir) и Леонард Адльман (Leonard Adlman). Алгоритм RSA стал первым полноценным алгоритмом с открытым ключом, который может работать как в режиме шифрования данных, так и в режиме электронной цифровой подписи. Криптостойкость алгоритма основывается на трудности факторизации больших чисел и трудности вычисления дискретных логарифмов.

Пусть каждый абонент группы выбирает случайно два больших простых числа р и g, затем вычисляет:

N = pg^ =(p-1)(g-1),

и выбирает число ко , взаимно простое с ф. Далее, по обобщенному алгоритму Евклида находят число кз, такое, что кзко mo=1. Пара С0, N] и число кз являются открытым и секретным ключом, соответственно.

Абонент А желает передать сообщение х абоненту В, причем х < NB

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

у = хк° modNB. Абонент В, получив криптограмму расшифровывает ее используя выражение:

х = укВ modNB.

Асимметричный алгоритм Эль Гамаля (El Gamal) использует операцию возведения в степень по модулю простого числа. При этом трудноразрешимой задачей для злоумышленника является отыскание не числа, которое возведено в степень, а то, в какую степень возведено известное число. Эта задача носит название проблемы дискретного логарифма.

Для всей группы абонентов выбираются некоторые большие простые числа р и g( число g является примитивным элементом поля GF ).

Каждый абонент группы генерирует свое секретное число кз, 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.