Файл: Применить алгоритм rsa для зашифровки или расшифровки сообщения.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.11.2023
Просмотров: 22
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Задание 4.1
Применить алгоритм RSA для зашифровки или расшифровки сообщения.
Вариант | Задание |
7 | Зашифровать текст «SOLVE» методом RSA при p=3, q=11, e=7. Буква A соответствует числу 0 и так далее. |
Выполнение задания:
Пара чисел {d, n} — это секретный ключ, пара чисел {e, n} — это открытый ключ.
Вычисляем модуль - произведение p и q: n=p×q=3×7=21.
Вычисляем функцию Эйлера: φ=(p-1) ×(q-1) =2×6=12.
Осталось вычислить число d, обратное е по модулю φ. То есть остаток от деления по модулю φ произведения d×e должен быть равен 1.
Запишем это в обозначениях, принятых во многих языках программирования: (d×е) mod φ=1. Или (d×5) mod 12 = 1. d может быть равно 5 ((5×5) mod 12=25 mod 12=1), но, чтобы оно не совпадало с e в дальнейшем, возьмём его равным 17. Можете проверить, что (17×5) mod12 действительно равно 1 (17×5-12×7=1). Итак, d=17.
Согласно условию, сообщение S имеет код 18. Обозначим его S=18. Кроме него уже есть открытый ключ: {e, n} = {7, 21}. Шифрование выполняется по следующему алгоритму. Возводим сообщение в степень e по модулю n. То есть, вычисляете 18 в степени 7 (612220032) и берём остаток от деления на 21. Получается 18 — это закодированное сообщение. Полученные данные S=18 отправляются по каналу связи.
Подробности компьютерной технологии реализации расчётов приведены в Приложении 1.
Ответ: Закодированное сообщение SOLVE= 18 14 11 00 04
Рисунок 1 - Таблица для шифрования по алгоритму RSA в режиме отображения результатов
Рисунок 2 - Таблица для шифрования по алгоритму RSA в режиме отображения формул
Задание 4.2
Найти пересылаемые значения A, B и секретный ключ Kx, Ky, если:
n =11, q=7, x=6, y=9.
Выполнение задания:
Ответ: А=4, В=8, секретный ключ Kx=3,Ky=3.
Подробности компьютерной технологии реализации расчётов приведены в Приложении 2.
Приложение 2
Рисунок 3 - Таблица для расчёта секретного ключа в режиме отображения результатов
Рисунок 4 - Таблица для расчёта секретного ключа в режиме отображения формул
Задание 4.3.
Для заданного сообщения КОД выполнить следующее.
1. Вычислить значение хеш-функции по формуле квадратичной свёртки;
2. Зашифровать значение хеш-функции по алгоритму RSA (значения p=3, q=11, e=7);
3.Написать подписанное цифровой подписью сообщение в цифровой форме;
4.Расшифровать значение хеш-функции, приведя подробные вычисления, и доказать правильность расшифровки
5.Внести преднамеренное искажение - числовой код последней буквы сообщения увеличить на 8 (считать, что за символом с кодом 32 следует буква с кодом 1 и так далее) и, рассчитав значение хеш-функции в искажённом сообщении, доказать наличие ошибки.
Выполнение задания:
Как было рассчитано раннее, n=p*q=3*11=33
1. Хеш-функция квадратичной свертки вычисляют по значению на предыдущем шаге и числовому коду знака i:
где S0 = 0, а n – простое число, входящее в оба ключа. После обработки последнего символа формируется хеш всего сообщения S.
Процедура проверки подлинности ЭП и самого сообщения после его получения заключается в следующем:
1. От полученного сообщения отделяется электронная подпись.
2. Открытым ключом отправителя по электронной подписи находится хеш переданного сообщения по формуле:
3. Вычисляется хеш S’ полученного сообщения по указанной выше формуле.
4. Сравнивается S’ и S’’.
Электронная подпись признается подлинной, если значения хешей совпадают.
Таким образом, c помощью секретного ключа {d; n} электронная подпись создается, присоединяется к электронному документу и передается вместе с ним. Открытым ключом {e; n} проверяются подлинность подписи и сохранность документа.
Процесс вычислений сведём в расчётную схему в таблицу 1.
№ | Знак | Код знака wi | Значение хеш-функции |
0 | | | 0 |
1 | К | 11 | 22 |
2 | О | 15 | 16 |
3 | М | 13 | 12 |
Значение хеш-функции равно 12.
2. Зашифруем значение хеш-функции
Таким образом, значение хэш-функции в зашифрованном виде (т.е. в виде цифровой подписи) равно 21.
3. После этого запишем кодированное представление подписанного текста.
Таким образом, будет отправлено сообщение с электронной подписью:
21 11 15 05
4. Докажем, что расшифровка значения хеш-функции даёт верный результат.
S’’=Реmod n =127mod33=21.
При получении было выявлено первоначальное значение хеш-функции 21, правильность расшифровки доказана.
5. Внесём преднамеренное искажение - числовой код последней буквы сообщения увеличим на 8. Заменим 05 на 13 и получим сообщение КОМ. Новое значение хеш-функции равно 16, то есть отличается от извлечённого из цифровой подписи.
№ | Знак | Код знака wi | Значение хеш-функции |
0 | | | 0 |
1 | К | 11 | 22 |
2 | О | 15 | 16 |
3 | Д | 5 | 16 |
Подробности компьютерной технологии реализации расчётов приведены в Приложении 3.
Ответы
1. Значение хеш-функции по формуле квадратичной свёртки равно 12.
2. Значение хеш-функции в зашифрованном виде равно 21.
3. Подписанное сообщение имеет вид 21 11 15 05.
4. Расшифрованное значение хеш-функции равно первоначальному 12, вычисления верны.
5. Искажение привело к новому значению хеш-функции 16 и поэтому оно может быть обнаружено.
Приложение 3
Рисунок 5 – Таблица для расчета хещ-функции в режиме отображения результатов
Рисунок 6 – Таблица для расчета хещ-функции в режиме отображения формул