Реализация Windows-приложения, выполняющего шифрование по правилам криптосистемы RSA
Автор: Михайлова Александра Евгеньевна
Рубрика: 1. Информатика и кибернетика
Опубликовано в
V международная научная конференция «Технические науки в России и за рубежом» (Москва, январь 2016)
Дата публикации: 28.09.2015
Статья просмотрена: 552 раза
Библиографическое описание:
Михайлова, А. Е. Реализация Windows-приложения, выполняющего шифрование по правилам криптосистемы RSA / А. Е. Михайлова. — Текст : непосредственный // Технические науки в России и за рубежом : материалы V Междунар. науч. конф. (г. Москва, январь 2016 г.). — Москва : Буки-Веди, 2016. — С. 3-6. — URL: https://moluch.ru/conf/tech/archive/164/8848/ (дата обращения: 16.11.2024).
В данной статье разработан алгоритм шифрования по правилам криптосистемы RSA, а также описывается Windows-приложение, реализующее данный алгоритм.
Ключевые слова: шифрование, криптосистема RSA.
На данный момент в современном мире защита информации играет немаловажную задачу. Этой задачей обеспокоены не только крупные банковские системы и системы управления, но и простые пользователи. На помощь к решению такой задачи приходит наука криптография. Криптография — это наука о методах преобразования (шифрования) информации с целью защиты с использованием математических методов. Она приводит к сведению на минимум потерь в управлении, вызванных нарушением целостности данных, их конфиденциальности или доступности.
Криптография с открытым ключом. Криптосистема RSA
На основе открытий, сделанных Хелманом и Диффи в криптографии возникло новое направление называющееся криптография с открытым ключом.
Принципиальная разница данного подхода от использовавшихся ранее криптографических систем, заключается в использование двух разных алгоритмов для шифрования и дешифрования данных. В связи с этим такие шифры получили название асимметрические.
Криптосистема с открытым ключом составляют следующие элементы:
КЕ — открытый (незащищенный) ключ, используемый для шифрования данных.
КD — закрытый ключ, используемый для дешифрования данных
Е(m) — односторонняя функция позволяющая зашифровать открытый текст m с использованием ключа КЕ.
D(S) — односторонняя функция позволяющая дешифрованию шифр-текст S с использованием закрытого ключа КD
Очевидно, что D(Е(m))=m.
Строение криптосистемы RSA
Пусть имеется два пользователя, связанных друг с другом общественным каналом связи. Каждый пользователь в самом начале протокола выбирает два очень больших простых числа p и q. Определяется число n=p*q. Зная состав сомножителей числа n и несложно вычислить φ(n).
Затем пользователи получают случайное целое число е в диапазоне , такое, что: НОД
Отметим, что говоря о случайном выборе, мы подразумеваем, что число выбирается с помощью датчика случайно (псевдослучайных) чисел.
Таким образом пользователь А сгенерировал числа naи ea
такие, что:
В дальнейшем пользователь А вычисляет число da, обратное относительно умножения к , т. е.
В дальнейшем ключ шифрования Кea составляет пара чисел naи ea (отметим, что Кeaесть открытый ключ). А ключ дешифрования Кda составляет пара чисел naи da(закрытый ключ)
В этих терминах шифр преобразования есть отображение
Z/nZ -> Z/nZ
(полная система вычетов по модулю n) и определяется следующее выражением
а обратное дешифрование
Рассмотрим пример. Зашифровать с помощью алгоритма RSA сообщение «YES»
Будем считать, что открытый текст составлен из триграмм (по три символа), а шифр-текст состоит из четырехграмм (по 4 символа) 26 буквенного алфавита.
Определим в начале числовой эквивалент для открытого текста
Y E S
В дальнейшем используем ключ
pqe
и получаем по формуле
затем переводим в буквы, получаем:
передаем пользователю В полученное сообщение:
С=21166
Несмотря на кажущуюся простоту криптосистемы RSA анализ её устойчивости позволяет сделать вывод: стойкость RSA существенно зависит от выбора p и q. В частности при не удачном выборе этих параметров задача криптоанализа может быть решена за сравнительно малое время. Таким образом на p и q накладываются следующие ограничения:
а) эти простые числа не должны быть слишком близки друг к другу;
б) числа p-1и q-1должны иметь маленький НОД:
в) числа p-1и q-1должны иметь по очень большому делителю каждое.
Описание приложения
Так как данных подобных приложений не было найдено в свободном доступе, следует сделать его интуитивно простым, чтобы показать сущность алгоритма.
- Генерируем ключи с помощью кнопки «Сгенерировать ключи», далее в текстовое окно вводим слово MISHA, вычисляем числовой эквивалент и зашифровываем. (Рис.1)
- Проверяем правильность работы программы, используя кнопку «Дешифровать» и также получаем слово MISHA (Рис.2).
Рис.1. пример шифрования
Рис.2. пример дешифрования
Данное приложение можно усовершенствовать, добавив разные языки для шифрования и дешифрования текста.
Литература:
- Бунин О. Занимательное шифрование // Журнал «Мир ПК» 2003 № 7.
- М. А. Иванов Криптография. Криптографические методы защиты информации в компьютерных системах и сетях, Изд. КУДИЦ-Образ,2001, ISBN: 5–93378–021–9
- Лукашов И. В. Криптография? Железно! //Журнал «Мир ПК». 2003. № 3
- Тарасюк М. В. Защищенные информационные технологии. Проектирование и применение — М.: СОЛОН-Пресс, 2004.
- Партыка Т. Л., Попов И. И. Информационная безопасность. Учебное пособие для студентов учреждений среднего профессионального образования.— М.: ФОРУМ: ИНФРА-М, 2004.
- С. Бернет, С. ПэйнКриптография. Официальное руководство RSA Security, Бином, 2002, ISBN: 5–9518–0003-Х
Похожие статьи
Реализация Windows-приложения, выполняющего шифрование и дешифрование текста шифрами Цезаря и Хилла
В данной статье разобраны алгоритмы шифрования и дешифрования текста шифром Цезаря и шифром Хилла, а также описывается Windows-приложение, реализующее данные алгоритмы.
Криптосистема Эль-Гамаля
Криптосистему Эль-Гамаля используют для того, чтоб сформировать электронную подпись, или для шифровки данных. В данной статье рассмотрены идея этого метода шифрования, описание алгоритма.
Создание криптографии с помощью модулярной математики
В данной статье рассматриваются основы криптографии, а также модулярной арифметики, которые легли в основу многих шифров. Особое место в криптографии занимает шифр Цезаря, который также строится на основах модулярной арифметики. Изучив механизм постр...
Реализация алгоритма поиска ближайших объектов с помощью K-D tree
В данной статье разработан алгоритм поиска ближайших объектов с помощью вспомогательной структуры, основанной на K-D tree, а также рассматривается приложение на языке Java, реализующее данный алгоритм.
Разработка программного модуля защиты информации методом стеганографии
В данной статье рассматривается процесс разработки программного модуля для шифрования текстовой информации в реальном изображении, с помощью языка программирования Rust, описываются основные аспекты стеганографии, в частности метод LSB.
Исследование и разработка криптографических алгоритмов шифрования на языках С/С++ для микроконтроллеров с ядром RISC-V с применением дополнительных наборов команд по К-спецификации
В статье изучены существующие алгоритмы криптографии и хеширования, для которых есть специальные ассемблерные инструкции из спецификации «К», в частности рассмотрены инструкции «Кузнечик», «Стрибог», «3DES». Также все алгоритмы изучены с математическ...
Особенности проектирования и криптоанализа асимметричной криптографической системы RSA
В данной статье рассматриваются некоторые особенности проектирования асимметричной (открытой) криптосистемы RSA, проводится обзор тестов на принадлежность классу простых чисел, а также рассматривается выбор показателей степеней чисел при кодировании....
Использование сети Хемминга для автоматической коррекции ошибок
В данной статье разработана система коррекции ошибок при вводе данных на основе сети Хемминга, а также рассматривается приложение на языке Java, реализующее данную систему.
Разработка обучающей системы шифрования на основе усовершенствованного метода Цезаря
В статье автор исследует методы шифрования, предлагает модернизированный шифр Цезаря и на его основе создает обучающую систему шифрования.
Многопоточность в языке Swift
В статье рассмотрим основной способ выполнять код асинхронно, который используется в iOS приложениях. Подробно разобран основной функционал Grand Central Dispatch (GCD) и сценарии, в которых можно реализовать многопоточность с его помощью.
Похожие статьи
Реализация Windows-приложения, выполняющего шифрование и дешифрование текста шифрами Цезаря и Хилла
В данной статье разобраны алгоритмы шифрования и дешифрования текста шифром Цезаря и шифром Хилла, а также описывается Windows-приложение, реализующее данные алгоритмы.
Криптосистема Эль-Гамаля
Криптосистему Эль-Гамаля используют для того, чтоб сформировать электронную подпись, или для шифровки данных. В данной статье рассмотрены идея этого метода шифрования, описание алгоритма.
Создание криптографии с помощью модулярной математики
В данной статье рассматриваются основы криптографии, а также модулярной арифметики, которые легли в основу многих шифров. Особое место в криптографии занимает шифр Цезаря, который также строится на основах модулярной арифметики. Изучив механизм постр...
Реализация алгоритма поиска ближайших объектов с помощью K-D tree
В данной статье разработан алгоритм поиска ближайших объектов с помощью вспомогательной структуры, основанной на K-D tree, а также рассматривается приложение на языке Java, реализующее данный алгоритм.
Разработка программного модуля защиты информации методом стеганографии
В данной статье рассматривается процесс разработки программного модуля для шифрования текстовой информации в реальном изображении, с помощью языка программирования Rust, описываются основные аспекты стеганографии, в частности метод LSB.
Исследование и разработка криптографических алгоритмов шифрования на языках С/С++ для микроконтроллеров с ядром RISC-V с применением дополнительных наборов команд по К-спецификации
В статье изучены существующие алгоритмы криптографии и хеширования, для которых есть специальные ассемблерные инструкции из спецификации «К», в частности рассмотрены инструкции «Кузнечик», «Стрибог», «3DES». Также все алгоритмы изучены с математическ...
Особенности проектирования и криптоанализа асимметричной криптографической системы RSA
В данной статье рассматриваются некоторые особенности проектирования асимметричной (открытой) криптосистемы RSA, проводится обзор тестов на принадлежность классу простых чисел, а также рассматривается выбор показателей степеней чисел при кодировании....
Использование сети Хемминга для автоматической коррекции ошибок
В данной статье разработана система коррекции ошибок при вводе данных на основе сети Хемминга, а также рассматривается приложение на языке Java, реализующее данную систему.
Разработка обучающей системы шифрования на основе усовершенствованного метода Цезаря
В статье автор исследует методы шифрования, предлагает модернизированный шифр Цезаря и на его основе создает обучающую систему шифрования.
Многопоточность в языке Swift
В статье рассмотрим основной способ выполнять код асинхронно, который используется в iOS приложениях. Подробно разобран основной функционал Grand Central Dispatch (GCD) и сценарии, в которых можно реализовать многопоточность с его помощью.