- •Генерирование ключа в криптосистеме рша
- •Генерация ключей по заданным числам p и q.
- •Шифрование сообщений в криптосистеме рша
- •Подписание сообщений в криптосистеме рша
- •Генерация ключей по заданным числам p и q.
- •Осуществление безопасного обмена сообщениями в сети с использованием криптосистемы рша
МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
_____________________________________________________________________________
Кафедра информационной безопасности телекоммуникационных систем
Дисциплина «Основы криптографии с открытыми ключами»
Лабораторная работа 4
«Исследование криптосистемы с открытым ключом РША»
Выполнила: студ. Гр .
.
Проверил: проф. Яковлев В.А..
Санкт-Петербург
2021
Цель работы
Закрепить знания, полученные на лекциях, по теме “ Криптосистема РША”.
Задание
Выполнить упражнения по возведению в степень больших целых чисел по модулю.
Произвести генерирование ключей для криптосистемы РША, а также шифрование и дешифрование с ее помощью коротких текстов.
Произвести шифрование файлов большого размера безопасной криптосистемой РША и оценить время шифрования и дешифрования при ее простейшей программной реализации.
Произвести подписание сообщений и проверку подписи .
Осуществить обмен зашифрованными и подписанными сообщениями в локальной сети.
Ход работы
Рассчитаем степени малых чисел по малому модулю и проверим их правильность расчетами на бумаге.
Расчет степени малых чисел по малому модулю.
Проверка:
Рассчитаем степени произвольных больших чисел по модулю прямым методом и быстрым методом. Убедимся в эффективности быстрого метода.
Расчет степени чисел по модулю прямым методом.
Расчет степени чисел по модулю быстрым методом.
Простой метод: Быстрый метод: |
с
|
Можно сделать вывод, что быстрый метод более эффективен для нахождения степеней произвольных больших чисел по модулю.
Генерирование ключа в криптосистеме рша
Выбрав в главном меню опцию “Генерировать ключи”, зададим малые простые числа p,q и сгенерируем ключи для РША. Проверим правильность вычислений расчетами на бумаге.
Генерирование ключа при малых p и q.
Проверка:
, e = 13
НОД(e, φ) =НОД(13,24)= 1
d = 13
Сгенерируем простые числа p,q разрядности по 100 бит каждое, задаваясь количеством проверок n=20 и используя опцию “Генерировать” в подменю “Генерация ключей”. Выполним генерацию ключей для системы РША.
Генерация числа P, при n=20.
P=1138711824670850104785711549017
Генерация числа Q, при n=20.
Q=822389495239038200534122950229
Генерация ключей по заданным числам P и Q.
Сгенерируем простые числа p,q разрядности по 100 бит каждое, но для n=30. Рассчитаем вероятность ошибочного выполнения тестирования простых чисел для этого и для предыдущего пунктов.
Генерация числа P при n=30.
P=1112269953808429996338912084949
Генерация Q, при n=30.
Q=800792412451598272592720651971
Генерация ключей по заданным числам p и q.
Вероятности ошибочного выполнения тестирования простых чисел:
Шифрование сообщений в криптосистеме рша
Перейдя в основное меню, произведем шифрование короткого смыслового текста на русском, введенного в левое поле с использованием опции “Зашифровать”.
Шифрование текста.
Удалим открытый текст в левом поле и произведем дешифрование криптограммы, содержащейся в правом поле, используя опцию “Расшифровать”.
Криптограмма:
23482678961863694562238859146388650386696515766002626179422 632892420377746882548507191812546367223904657729266919156947 259100675334418227605906555854488381863137304040529815962832 274393609493293110824883797583292953113188198747187361323428 805149947152334003841379151915355292908947654877750203610231 390929883058485422196352188140621548878289297809860756925821 409713787773792091420176459912333982828148279026495938496328 619797541139393681314067268528399258469281546172822252155047 244908817150021454073383400063589882225974234554174240198938
Расшифрование криптограммы.
Расшифрованный текст:
Перейдя в основное меню, произвести шифрование короткого смыслового текста на русском или английском языке, введенного в левое поле с использованием опции Зашифровать. Наблюдать появление криптограммы в правом поле.
Расшифрованный текст полностью соответствует исходному тексту.
После изменения одной из цифр криптограммы, произведем расшифрование.
Криптограмма с ошибкой:
23492678961863694562238859146388650386696515766002626179422 632892420377746882548507191812546367223904657729266919156947 259100675334418227605906555854488381863137304040529815962832 274393609493293110824883797583292953113188198747187361323428 805149947152334003841379151915355292908947654877750203610231 390929883058485422196352188140621548878289297809860756925821 409713787773792091420176459912333982828148279026495938496328 619797541139393681314067268528399258469281546172822252155047 244908817150021454073383400063589882225974234554174240198938
Расшифрование криптограммы с ошибкой.
Расшифрованная криптограмма с ошибкой:
=[вНWпр}tТЈ¬Ґѓ№8aџ>C C произвести шифрование короткого смыслового текста на русском или английском языке, введенного в левое поле с использованием опции Зашифровать. Наблюдать появление криптограммы в правом поле.
Открытый текст:
Перейдя в основное меню, произвести шифрование короткого смыслового текста на русском или английском языке, введенного в левое поле с использованием опции Зашифровать. Наблюдать появление криптограммы в правом поле.
Можно сделать вывод, что измененная криптограмма была расшифрована, однако наличие ошибки в криптограмме привело к тому, что кусок текста расшифровался неверно и утратил свой смысл.
Сгенерируем простые числа p,q разрядности по 1024 бит, при n=30.
Генерация числа P, при разрядности 1024 бит и n=30.
Генерация числа Q, при разрядности 1024 бит и n=30.
P=153070286747409401634060314739040227809312892998222190937256175805206238143370730304939247499052562154764971479033976689487825918754883752105261739394360831440890261712075031250971448979033242010240290691277818680742428272052504628544521294491171679863375186472115974006583555361113046403197921403745577828351
Q=111947729070838407141757311007623229493165862937685189637260639740886140025868039117833426980103071271474949109961510133412850753173663887212748283170274178139088605290773653280221834153836082724393807404798626089588539726903581918796666212350391238601105919591548028626348577910817223840642614217729263457527
Вернувшись в главное меню, произведем шифрование произвольного файла большого объема (не менее 100кбайт), фиксируя при этом время шифрования.
Выберем файл «открытый» размером 137 КБ.
Подготовленные файлы для шифрования.
Выполнение шифрования файла.
Получили в ходе шифрования файл «зашифрованный» размером 139 КБ.
Произведем дешифрование криптограммы, полученной в п.10, фиксируя при этом время дешифрования.
Подготовленные файлы для расшифрования.
Выполнение расшифрования файла.
Получили в ходе расшифрования файл «расшифрованный» размером 137 КБ
Исходный файл соответствует расшифрованному файлу.
По данным п.10,11 рассчитаем скорость шифрования и дешифрования при данной простейшей программной реализации безопасной криптосистемы РША.
S = 120 Кбайт = 122880 байт = 983040 бит – количество бит ключа.
= 48 сек – время шифрования.
– скорость шифрования.
= 47 сек – время расшифрования.
– скорость дешифрования.