Лабораторная работа № 3
“ИЗУЧЕНИЕ И ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ ДВУХКЛЮЧЕВЫХ БЛОЧНЫХ КРИПТОГРАФИЧЕСКИХ АЛГОРИТМОВ, ОСНОВАННЫХ НА СЛОЖНОСТИ ДИСКРЕТНОГО ЛОГАРИФМИРОВАНИЯ В КОНЕЧНОМ ПОЛЕ“
Программное обеспечение:
- алгоритм вычисления хэш-функции;
- расширенный алгоритм Евклида для вычисления НОД двух чисел;
- алгоритм вычисления модульной экспоненты;
- алгоритм генерации простых чисел;
1. Изучить метод генерации общего секретного ключа для выполнения шифрования - дешифрования информации:
а) Используя генератор простых чисел получить число p.
б) Используя генератор случайных чисел и алгоритм модульной экспоненты получить образующую аp-1=1(mod p).
в) Используя генератор случайных чисел получить числа l<pиm<p.
г) Имитируя пользователя А и используя его секретный ключ l, вычислить его открытый ключ KA=al(mod p).
д) Имитируя пользователя B и используя его секретный ключ m, вычислить его открытый ключ KB=am(mod p).
е) Получить общий секретный ключ:
A : KBА=(am)l (mod p) и B: KАВ=(al)m (mod p)
ж) Проверить выполнение равенства KAB=KBA, сделать выводы, результаты занести в отчет.
2. Изучить методы шифрования-дешифрования информации по протоколу Эль-Гамаля:
а) Выбрать произвольную фразу (текст x), не превышающую 10 слов, и осуществить ее первичное преобразование в цифровой вид с использованием таблицы кодов ASCII.
б) Используя генератор случайных чисел получить l<p, t<p, где l- секретный ключ пользователя А, t - секретный ключ пользователя В.
в) Получить открытые ключи пользователей А и В:
КА= al(mod p), КB= at(mod p).
в) Имитируя пользователя А определить криптограмму, состоящую из пары чисел
c1=KA= al(mod p), c2= xKB -l (mod p)=x(at) -l (mod p).
При определении c2 дополнительно использовать алгоритм Евклида.
г) Имитируя пользователя В провести дешифрование:
x’=c2c1t(mod p)
д) Проверить совпадение текстов x и x’, сделать выводы, результаты занести в отчет.
3. Изучить методы шифрования-дешифрования информации по протоколу Месси-Омуры:
а) Используя генератор простых чисел получить открытый ключ p, значение которого не превышает int.
б) Используя генератор случайных чисел получить l, m<p.
в) Используя расширенный алгоритм Евклида определить обратные к ним числа l-1, m-1 по модулю p-1: ll-1=1(mod (p-1)), mm-1=1(mod (p-1)). Числа l,l-1 принадлежат пользователю А, числа m,m-1 - пользователю В и являются их секретными ключами.
г) Определить криптограмму yА=x1(mod p) (имитация пользователя А).
д) Определить криптограмму yАВ=yAm(mod p) (имитация пользователя B).
е) Определить криптограмму yВ=(mod p) (имитация пользователя А).
ж) Дешифровать криптограмму x’= (mod p).
з) Проверить выполнение равенства x’=x , сделать выводы, результаты занести в отчет.
4. Изучить процессы генерации цифровой подписи по протоколу Шнорра.
а) Используя генератор случайных чисел получить секретные ключи пользователя А: m, l<p, определить закрытый ключ для хэширования v=am(modp) и открытый ключ al(modp).
б) Используя алгоритм вычисления хэш-функции определить h(x,v)<q, где x,v – последовательная запись.
в) Имитируя пользователя А получить цифровую подпись:
- вычислить s=m-lh(x,v)(mod p);
- цифровой подписью будет совокупность (x, s, h(x,v)).
г) Имитируя пользователя В проверить подлинность подписи:
- вычислить v’=as(al)h(x,v)(mod p);
- определить хэш-функцию от последовательности x, v’: h(x,v’);
- проверить выполнение равенства h(x,v)= h(x,v’), сделать выводы, результаты занести в отчет.
1. Полученные значения секретных и открытых ключей по каждому пункту работы.
2. Сведенные в таблицу открытый текст, его код - представление в цифровом виде, криптограмму и результат дешифрования (по пп. 2,3).
3. Сведенные в таблицу открытый текст, его код - представление в цифровом виде, хэш-функцию, цифровую подпись и результат проверки цифровой подписи (по 4).
4. Выводы по каждому пункту работы.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.