Реализация Windows-приложения, выполняющего шифрование по правилам криптосистемы RSA | Статья в сборнике международной научной конференции

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Автор:

Рубрика: 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должны иметь по очень большому делителю каждое.

Описание приложения

Так как данных подобных приложений не было найдено в свободном доступе, следует сделать его интуитивно простым, чтобы показать сущность алгоритма.

  1.                Генерируем ключи с помощью кнопки «Сгенерировать ключи», далее в текстовое окно вводим слово MISHA, вычисляем числовой эквивалент и зашифровываем. (Рис.1)
  2.                Проверяем правильность работы программы, используя кнопку «Дешифровать» и также получаем слово MISHA (Рис.2).

Рис.1. пример шифрования

 

Рис.2. пример дешифрования

 

Данное приложение можно усовершенствовать, добавив разные языки для шифрования и дешифрования текста.

 

Литература:

 

  1. Бунин О. Занимательное шифрование // Журнал «Мир ПК» 2003 № 7.
  2. М. А. Иванов Криптография. Криптографические методы защиты информации в компьютерных системах и сетях, Изд. КУДИЦ-Образ,2001, ISBN: 5–93378–021–9
  3. Лукашов И. В. Криптография? Железно! //Журнал «Мир ПК». 2003. № 3
  4. Тарасюк М. В. Защищенные информационные технологии. Проектирование и применение — М.: СОЛОН-Пресс, 2004.
  5. Партыка Т. Л., Попов И. И. Информационная безопасность. Учебное пособие для студентов учреждений среднего профессионального образования.— М.: ФОРУМ: ИНФРА-М, 2004.
  6. С. Бернет, С. ПэйнКриптография. Официальное руководство RSA Security, Бином, 2002, ISBN: 5–9518–0003-Х
Основные термины (генерируются автоматически): RSA, MISHA, открытый ключ, закрытый ключ, открытый текст, число, дешифрование данных, односторонняя функция, пар чисел, числовой эквивалент.

Ключевые слова

шифрование, шифрование, криптосистема RSA

Похожие статьи

Реализация 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) и сценарии, в которых можно реализовать многопоточность с его помощью.