Добавил:
tg: @petmanchenko Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Исследование алгоритма шифрования RSA в MS Excel

.docx
Скачиваний:
11
Добавлен:
02.02.2025
Размер:
420.65 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Кафедра безопасности информационных систем

ОТЧЁТ на тему: «Исследование алгоритма шифрования RSA в MS Еxcel» по дисциплине «Введение в кибербезопасность»

Выполнил: студент группы ИСТ-931, Гетманченко П.А.

«29» апреля 2021 г. ____________/П.А. Гетманченко/

Принял: д.т.н., профессор Буйневич М.В.

«30» апреля 2021 г. ____________/М.В. Буйневич/

Санкт-Петербург 2021

Содержание

Постановка задачи 3

Ход работы 3

Вывод 13

Цель: исследовать математические и прикладные аспекты шифрования данных по алгоритму RSA.

Постановка задачи

Два абонента, Олег и Сергей, передают друг другу данные с использованием алгоритма шифрования RSA. Смоделируйте:

а) передачу сообщения ПРИВЕТ_СЕРГЕЙ от Олега  Сергею.

б) расшифровку полученного сообщения на стороне Сергея.

Коды букв соответствуют их положению в русском алфавите. Для символа ( _ ) используется код 0.

Для генерации открытого и секретного ключей Сергей использует порождающие числа p = 3 и q = 11.

Ход работы

Шаг 1:

Открывается файл под названием Исследование RSA.xlsx. В таблицу Генерация ключей заносятся такие значения, как: p=3 и q=11 (из условия задачи (для Сергея)). Вводим следующие формулы для вычисления N (N = pq) и φ(N) (φ(N)=(p-1)(q-1)). Получаем результат, как на рисунке 1:

Рисунок 1 – результат формул

Шаг 2:

Случайным образом выбираем открытый ключ е, проверяя выполнение условий:

1 < e < φ(N),

(1)

НОД(e, φ(N)) = 1, т.е. e и φ(N) – взаимно простые числа.

Для подбора ключа е вводятся с клавиатуры в ячейку J10 целые числа и проверяется значение в ячейке J14 (в эту ячейку введена функция НОД, вычисляющая наибольший общий делитель для ячеек J9 и J10). Если J14 = 1, то введенное в ячейку J10 число подходит в качестве открытого ключа е. Условиям (1) удовлетворяют числа: 3, 7, 9, 11, 13, 17, 19.

Для возможности последующего выполнения в Excel операций возведения чисел в большие степени выбирается в качестве открытого ключа е наименьшее из возможных чисел, т.е. число 3. Результат показан на рисунке 2:

Рисунок 2 – подбор ключа е

Шаг 3:

Подбирается вручную значение секретного ключа d, чтобы выполнялись условия:

d < N,

(2)

(ed) mod φ(N) = 1.

Для этого в ячейку J15 вводится функция ОСТАТ (категория Математические), которая реализует операцию mod (остаток от деления). После этого вводятся с клавиатуры в ячейку J11 целые числа и проверяется значение в ячейке J15. Если J15 = 1, то введенное в ячейку J11 число подходит в качестве секретного ключа d. Пример: =ОСТАТ(J10*J11;J9), исходя из формулы: (ed) mod φ(N) = 1. Результат показан на рисунке 3:

Рисунок 3 - секретный ключ d

Шаг 4:

Зашифровываются коды символов открытым ключом Сергея благодаря формуле:

,

(4)

Результат показан на рисунках 4-5:

Рисунок 4 – использование формулы (4)

Рисунок 5 – использование формулы (4)

Шаг 5:

Используется функция ВПР (категория Ссылки и массивы), составляется шифрограмма сообщения ПРИВЕТ_СЕРГЕЙ.

Функция ВПР выглядит следующим образом: =ВПР(искомое_значение;таблица;номер_столбца;интервальный_просмотр)

Искомое значение – это ячейка К18:W18;

Таблица: необходимо выделить диапазон ячеек B4:E36, то есть 4 столбца;

Номер столбца – это столбец под номером 4, который называется «Шифрограмма символа откр. ключа Сергея». Результат показан на рисунке 6:

Рисунок 6 – использование функции ВПР

Шаг 6:

Расшифровывается шифрограмма, полученная от Олега с помощью функции:

.

(5)

Используя функцию ВПР, составляется исходное сообщение, отправленное Олегом. Результат показан на рисунке 7:

Рисунок 7 – использование функции (5)

Шаг 7:

Переходим на другой лист: Расширение RSA.

Шаг 8:

Кодируются все символы, представленные в таблице Символы и шифрограммы, в соответствии с данной кодировкой. Для этого нужна функция КОДСИМВ (категория Текстовые). Исходное сообщение не может быть составлено, так как расшифровка шифрограммы происходит некорректно из-за нарушения условия (3). Пример: =КОДСИМВ(B4). Результат представлен на рисунках 8-9:

Рисунок 8 – кодировка символов

Рисунок 9 – кодировка символов

Шаг 9:

Выбираются новые порождающие числа p = 17 и q = 19. Вычисленное значение N = pq = 17  19 = 323 > Mi.

Выбирается открытый ключ е. Условиям (1) удовлетворяют числа: 5, 7, 11, 13, 17 и т.д. Выбирается в качестве открытого ключа е наименьшее из возможных чисел, т.е. число 5. Результат отображён на рисунке 10:

Рисунок 10 – использование формул

Шаг 10:

Нужно воспользоваться данной формулой, ибо подобрать вручную секретный ключ d для рассматриваемой ситуации является достаточно затруднительной операцией:

d = e(φ(N)-1) mod φ(N).

(6)

Делаем проверку правильности подбора вычисленного секретного ключа d по значению в ячейке J11. Результат показан на рисунке 11:

Рисунок 11 – итог после проверки

Шаг 11:

В качестве передаваемого сообщения от Олега  Сергею вводится слово СЕТЬ. Незадействованные ячейки нужно очистить. Нужно дешифровать полученную шифрограмму, используя программу Калькулятор. Удалить из ячеек функцию ОСТАТ и занесите в них дешифрованные коды символов. При правильной дешифровке будет сформировано слово СЕТЬ. Результат на рисунке 12:

Рисунок 12 – результат СЕТЬ

Шаг 12:

Нахождение элементов - как можно было убедиться, выражение 7374175 не может быть вычислено программой Калькулятор.

Шаг 13:

Подготовить нужно таблицу для ввода исходных данных, как на рисунке 13:

Рисунок 13 – таблица

Шаг 14:

В ячейку D44 вводится функция, которая выглядит следующим образом: =ОСНОВАНИЕ(D41;2). В ячейку D45 вводится функция, которая выглядит следующим образом: =ДЛСТР(D44). В ячейки D47:P47 вводится функция следующего типа: =ПСТР($D$44;D46;1), где D44 указывает на двоичное представление числа, D46 – номер разряда, 1 – количество знаков.

Так как функция ПСТР возвращает текстовые значения, то для последующих расчетов их необходимо преобразовать в числовые. Для этого нужна функция ЗНАЧЕН (категория Текстовые).

Пример: =ДСТР(D47). Результат на рисунке 14:

Рисунок 14 – результат

Шаг 15:

Разработать расчётную таблицу, показана она на рисунке 15. Выделить все ячейчки столбца «Степень дв. обр.». В строку формул ввести функцию ТРАСП и выделить диапазон ячеек (D48;P48), нажать комбинацию клавиш Ctrl+Shift+Enter.

Рисунок 15 – расчётная таблица

Шаг 16:

Нужно протестировать импортированную функцию СтепеньПоМодулю (категория Определенные пользователем), вычислив с её помощью секретный ключ d. Для этого ввести нужно следующую функцию в ячейку «Секр. ключ d (VBA)»: =СтепеньПоМодулю(D40;D41;D42). Результат показан на рисунке 16:

Рисунок 16 –результат

Шаг 17:

Использовать нужно функцию СтепеньПоМодулю для кодирования символов открытым ключом Олега. Для этого в ячейку D4 записывается функция следующим образом: =СтепеньПоМодулю(C4;$I$10;$I$8). Результат показан на рисунках 17-18:

Рисунок 17 – использование функции

Рисунок 18 – использование функции

Шаг 18:

Использовать нужно функцию ВПР, чтобы составить шифрограмму сообщения ТЕКСТ_ПОЛУЧИЛ. Также нужно, используя функцию СтепеньПоМодулю, расшифровать шифрограмму, полученную от Сергея. Используя функцию ВПР, составить исходное сообщение, отправленное Сергеем. Результат показан на рисунке 19:

Рисунок 19 – итоговый результат

Вывод

Таким образом в ходе проделанной работы были изучены математические и прикладные аспекты шифрования данных по алгоритму RSA, который получил широкое распространение в различных сетевых протоколах, а также в электронной цифровой подписи.

Криптостойкость RSA основывается на сложности разложения на множители больших чисел, а именно – на исключительной трудности задачи определить секретный ключ на основании открытого, так как для этого потребуется решить задачу о существовании делителей целого числа.

В рассмотренном примере использовались 6-битное (p = 59) и 7-битное (q = 73) порождающие числа для формирования ключей, тем не менее даже при такой малой размерности в ряде случаев пришлось прибегнуть к нестандартным вычислениям. В реальных системах используются, как правило, 1024-битовые ключи, а наиболее криптостойкие системы используют 2048-битные ключи.

Соседние файлы в предмете Введение в кибербезопасность