
Исследование алгоритма шифрования RSA в MS Excel
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Кафедра безопасности информационных систем
ОТЧЁТ на тему: «Исследование алгоритма шифрования 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 = p q) и φ(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)
(e d) mod φ(N) = 1.
Для этого в ячейку J15 вводится функция ОСТАТ (категория Математические), которая реализует операцию mod (остаток от деления). После этого вводятся с клавиатуры в ячейку J11 целые числа и проверяется значение в ячейке J15. Если J15 = 1, то введенное в ячейку J11 число подходит в качестве секретного ключа d. Пример: =ОСТАТ(J10*J11;J9), исходя из формулы: (e d) 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 = p q = 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-битные ключи.