Лабораторные и практики / 04_ЛР / 4_ЛР
.pdfМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА» (СПбГУТ)
_____________________________________________________________________________
Кафедра информационной безопасности телекоммуникационных систем Дисциплина «Основы криптографии с открытыми ключами»
Лабораторная работа 4
«Исследование криптосистемы с открытым ключом РША»
Выполнила: |
студ. Гр . |
||
|
|
|
|
.
Проверил: |
проф. Яковлев В.А.. |
Санкт-Петербург
2021
Цель работы
Закрепить знания, полученные на лекциях, по теме “ Криптосистема РША”.
Задание
1.Выполнить упражнения по возведению в степень больших целых чисел по модулю.
2.Произвести генерирование ключей для криптосистемы РША, а также шифрование и дешифрование с ее помощью коротких текстов.
3.Произвести шифрование файлов большого размера безопасной криптосистемой РША и оценить время шифрования и дешифрования при ее простейшей программной реализации.
4.Произвести подписание сообщений и проверку подписи .
5.Осуществить обмен зашифрованными и подписанными сообщениями в локальной сети.
Ход работы
1.Рассчитаем степени малых чисел по малому модулю и проверим их правильность расчетами на бумаге.
Рис. 1. Расчет степени малых чисел по малому модулю.
Проверка:
= ( ) = 342 (7) = 1 42 = 25 ∙ 23 ∙ 21 = 32 + 8 + 2
342 mod7 = 332+8+2mod7 = 332 ∙ 38 ∙ 32mod7 32 mod7 = 9 7 = 2
38 mod7 = 32 ∙ 32 ∙ 32 ∙ 32 mod7 = 2 ∙ 2 ∙ 2 ∙ 2 mod7 = 2 332 mod7 = 38 ∙ 38 ∙ 38 ∙ 38 mod7 = 2 ∙ 2 ∙ 2 ∙ 2 mod7 = 2 342mod7 = 332 ∙ 38 ∙ 32 mod7 = 2 ∙ 2 ∙ 2 mod7 = 1
2. Рассчитаем степени произвольных больших чисел по модулю прямым методом и быстрым методом. Убедимся в эффективности быстрого метода.
Рис. 2. Расчет степени чисел по модулю прямым методом.
Рис. 3. |
Расчет степени чисел по модулю быстрым методом. |
Простой метод: |
п = 111с = 111000мс |
Быстрый метод: |
б = 1мс |
Можно сделать вывод, что быстрый метод более эффективен для нахождения степеней произвольных больших чисел по модулю.
Генерирование ключа в криптосистеме РША
3.Выбрав в главном меню опцию “Генерировать ключи”, зададим малые простые числа p,q и сгенерируем ключи для РША. Проверим правильность вычислений расчетами на бумаге.
Рис. 4. Генерирование ключа при малых p и q. Проверка:
= = 5 ∙ 7 = 35( ) = ( − 1)( − 1) = 4 ∙ 6 = 24 1 < < ( ), e = 13
НОД(e, φ) =НОД(13,24)= 1
|
= −1 ( ) |
|
||
24 |
= 13 |
+ 11 |
|
11 = 24 − 13 |
13 |
= 11 |
+ 2 |
|
2 = 13 − 11 |
11 = 2 ∙ 5 + 1 1 = 11 − 2 ∙ 5
1 = 11 − 2 ∙ 5 = 11 ∙ 6 − 13 ∙ 5 = 24 ∙ 6 − 13 ∙ 11
d = (−11) 24 = 13
d = 13
4.Сгенерируем простые числа p,q разрядности по 100 бит каждое, задаваясь количеством проверок n=20 и используя опцию “Генерировать” в подменю “Генерация ключей”. Выполним генерацию ключей для системы РША.
Рис. 5. Генерация числа P, при n=20.
P=1138711824670850104785711549017
Рис. 6. Генерация числа Q, при n=20.
Q=822389495239038200534122950229
Рис. 7. Генерация ключей по заданным числам P и Q.
5.Сгенерируем простые числа p,q разрядности по 100 бит каждое, но для n=30. Рассчитаем вероятность ошибочного выполнения тестирования простых чисел для этого и для предыдущего пунктов.
Рис. 8. Генерация числа P при n=30.
P=1112269953808429996338912084949
Рис. 9. Генерация Q, при n=30.
Q=800792412451598272592720651971
Рис. 10. Генерация ключей по заданным числам P и Q. Вероятности ошибочного выполнения тестирования простых чисел:
(20) = 2120 = 0,00000095(30) = 2130 = 0,00000000093
Шифрование сообщений в криптосистеме РША
6.Перейдя в основное меню, произведем шифрование короткого смыслового текста на русском, введенного в левое поле с использованием опции “Зашифровать”.
Рис. 11. Шифрование текста.
7.Удалим открытый текст в левом поле и произведем дешифрование криптограммы, содержащейся в правом поле, используя опцию “Расшифровать”.
Криптограмма:
23482678961863694562238859146388650386696515766002626179422
632892420377746882548507191812546367223904657729266919156947
259100675334418227605906555854488381863137304040529815962832
274393609493293110824883797583292953113188198747187361323428
805149947152334003841379151915355292908947654877750203610231
390929883058485422196352188140621548878289297809860756925821
409713787773792091420176459912333982828148279026495938496328
619797541139393681314067268528399258469281546172822252155047
244908817150021454073383400063589882225974234554174240198938
Рис. 12. Расшифрование криптограммы.
Расшифрованный текст:
Перейдя в основное меню, произвести шифрование короткого смыслового текста на русском или английском языке, введенного в левое поле с использованием опции Зашифровать. Наблюдать появление криптограммы в правом поле.
Расшифрованный текст полностью соответствует исходному тексту.
8. После изменения одной из цифр криптограммы, произведем расшифрование.
Криптограмма с ошибкой:
23492678961863694562238859146388650386696515766002626179422
632892420377746882548507191812546367223904657729266919156947
259100675334418227605906555854488381863137304040529815962832
274393609493293110824883797583292953113188198747187361323428
805149947152334003841379151915355292908947654877750203610231
390929883058485422196352188140621548878289297809860756925821
409713787773792091420176459912333982828148279026495938496328
619797541139393681314067268528399258469281546172822252155047
244908817150021454073383400063589882225974234554174240198938