Большие числа и работа с ними
На данный момент времени рекомендуется в качестве чисел e и d брать числа, длиной не менее 768 бит. Чтобы подобрать ключ такой длины потребуется $1000000 и примерно год времени. Ключ в 1024 бит является достаточно надежным для обычных целей шифрования. Для повышенной безопасности рекомендуется брать ключи размером 2048 бит. Т.о. числа p и q должны иметь разрядность вдвое ниже чисел e, d, m и n (p и q рекомендуется брать примерно одного порядка, но не слишком близко друг к другу).
Содержание заданий
Разработайте программу, имитирующую реализацию элементов метода криптографической защиты информации RSA. Программа должна выполнять генерацию ключей, шифрование и расшифрование сообщения. В качестве сообщения используйте свою фамилию. Использовать n длиной в 4 разряда и более
Контрольные вопросы
1. Что такое ассиметричное шифрование?
2. Отличие ассиметричного шифрования от блочного?
3. На сколько блоков (максимум) может разбиваться шифруемый текст?
4. Перечислите преимущества и недостатки алгоритма RSA?
Отчетность по лабораторной работе
Распечатать код программы с подробными комментариями кода и результатами выполнения программы.
ЛАБОРАТОРНАЯ работа № 6
Реализация элементов схемы шифрования Эль_Гамаля
Цель работы формирование умений шифрования с использованием метода асимметрического шифрования Эль-Гамаля.
Теоретические сведения
Генерация ключей
1. Генерируется случайное простое число p длины q битов.
2. Выбирается случайный примитивный элемент q поля Zp.
3. Выбирается случайное целое число x такое, что 1<x<p-1.
4. Вычисляется y=gx mod p .
5. Открытым ключом является тройка (p,g,y), закрытым ключом — число x.
Шифрование
Сообщение M шифруется следующим образом:
1. Выбирается сессионный ключ — случайное целое число k такое, что 1<k<p-1
2. Вычисляются числа a=gk mod p и b=yk M mod p.
3. Пара чисел (a,b) является шифротекстом.
Длина шифротекста в схеме Эль-Гамаля длиннее исходного сообщения M вдвое.
Расшифрование
Зная закрытый ключ x, исходное сообщение можно вычислить из шифротекста (a,b) по формуле:
При этом нетрудно проверить, что
и поэтому
Для практических вычислений больше подходит следующая формула:
Рисунок 6.1 – Схема шифрования Эль-Гамаля
Содержание заданий
Разработайте программу, имитирующую реализацию элементов метода криптографической защиты информации Эль-Гамаля. Программа должна выполнять генерацию ключей, шифрование и расшифрование сообщения. В качестве сообщения используйте свою фамилию.
Примечания
P- двузначное число, G,X - однозначные
Контрольные вопросы
1. Что такое криптосистемы с открытым ключом?
2. Отличие схемы Эль-Гамаля от RSA?
3. Перечислите преимущества и недостатки алгоритма Эль-Гамаля?