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

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

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

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №15 (95) август-1 2015 г.

Дата публикации: 03.08.2015

Статья просмотрена: 2975 раз

Библиографическое описание:

Фалалеева, В. С. Реализация Windows-приложения, выполняющего шифрование и дешифрование текста шифрами Цезаря и Хилла / В. С. Фалалеева. — Текст : непосредственный // Молодой ученый. — 2015. — № 15 (95). — С. 65-69. — URL: https://moluch.ru/archive/95/21423/ (дата обращения: 19.12.2024).

В данной статье разобраны алгоритмы шифрования и дешифрования текста шифром Цезаря и шифром Хилла, а также описывается Windows-приложение, реализующее данные алгоритмы.

Ключевые слова:шифрование, дешифрование, шифр Цезаря, шифр Хилла, криптология.

 

Введение

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

Описание алгоритмов шифров Цезаря и Хилла

Люди стали использовать шифрование еще с древних времен, когда появилась первая секретная информация. Один из самых первых и известных шифров — это шифр Цезаря. Он использовал простейший метод шифрования, смысл которого заключается в том, чтобы каждая буква заменялась буквой на три позиции дальше по алфавиту. Правило шифрования будет выглядеть следующим образом: «А» заменяется на «Г», «Б» заменяется на «Д», «В» заменяется на «Е» и так далее. В свою очередь, «Ь» заменяется на «Я», а буква «Э» заменится на «А» и снова по кругу. Также всю полезную информацию о данном шифре можно найти в [2] и [4].

Шифр Хилла — это шифр подстановки, основанный на законах линейной алгебры и изобретенный в 1929 году Лестером С. Хиллом. Алгоритм данного шифра состоит в следующем: для начала следует пронумеровать исходный алфавит. Алфавитом считаются не только буквы, но и символы, причем заглавная буква «А» будет отличаться от прописной буквы «а». Полученное количество букв и символов далее будет называться модулем. Например, в русском алфавите из заглавных букв модуль будет равен 33. Ниже в примере будет рассматриваться именно этот алфавит. Таким образом, сегмент из 33 номеров можно представить в виде некоторого вектора v1. Следующий шаг — составление ключевой матрицы C. При этом матрица может быть любого размера, только следует помнить, что, чем больше матрица, тем сложнее расшифровывать текст и, соответственно, наоборот. Также следует избегать нулей в ключевой матрице — это способствует быстрой расшифровке, а значит, такой шифр гораздо легче взломать. Еще один из очень важных пунктов, которые не следует забывать: ключевая матрица должна быть обратимой, иначе расшифровка текста будет невозможной. Стоит, к тому же, проверить, чтобы модуль алфавита и определитель ключевой матрицы не имели никаких общих делителей, кроме единицы. Затем матрица C умножается на вектор v1 по модулю 33. Проблема данного шифра заключается в том, что на все известные языки мира составлена статистика частоты встречаемости каждой буквы, что, несомненно, сильно упрощает расшифровку текста, не зная при этом ключевой матрицы. Особенности шифра Хилла можно найти в [1] и [3].

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

Рассмотрим слово «МОСКВА». Оно делится на два блока по три буквы: «МОС» и «КВА». Блоку «МОС» соответствует вектор v1 = (14, 16, 19), а блоку «КВА» — вектор v2 = (12, 3, 1).

Ключом данного шифра будет матрица С (которая необходима для шифрования) размерностью 3*3, т. е. n = 3:

Обратной матрицей по модулю 33 будет матрица D (которая необходима для расшифровки):

Тогда C*v1 = (103, 212, 265), a C*v2 = (21, 67, 65).

Полученные значения следует разделить на 33 и записать остаток — он и будет зашифрованным сообщением.

(103 mod 33, 212 mod 33, 265 mod 33) = (4, 14, 1), что соответствует вектору «ГМА».

(21 mod 33, 67 mod 33, 65 mod 33) = (21, 1, 32), что соответствует вектору «УАЮ».

Таким образом, вместо слова «МОСКВА» мы получили слово «ГМАУАЮ».

Расшифруем данное сообщение:

w1 = (4, 14, 1), тогда D*w1 = (278, 313, 217), а w2 = (21, 1, 32), и D*w2 = (441, 762, 1354).

(278 mod 33, 313 mod 33, 217 mod 33) = (14, 16, 19) — это и есть блок «МОС».

(441 mod 33, 762 mod 33, 1354 mod 33) = (12, 3, 1) — а это блок «КВА».

Итак, в ходе дешифровки получилось исходное слово «МОСКВА». Так как после дешифрования получилось слово, которое и было зашифровано, то можно сказать, что шифрование было выполнено верно.

Описание разработанного приложения

Приложения, реализующего шифрование и дешифрование текста шифром Цезаря и шифром Хилла, в общем доступе обнаружено не было. Следовательно, данное приложение будет одним из первых в своем роде. Поэтому приложение должно быть дружелюбным и интуитивно простым в использовании, чтобы каждый среднестатистический пользователь компьютера мог самостоятельно работать в нем. Для быстрого и удобного шифрования и дешифрования текста было разработано приложение, реализующее алгоритмы шифров Цезаря и Хилла только на стационарных компьютерах.

Приложение получает на вход:

1.                  Текстовое сообщение (на русском языке с использованием знаков препинания).

2.                  Шифр на выбор пользователя: либо шифр Цезаря, либо шифр Хилла.

3.                  Действие на выбор пользователя: либо шифрование, либо дешифрование.

4.                  Если пользователем был выбран шифр Цезаря, то пользователь также должен ввести величину сдвига (максимальный размер которого 6 знаков).

5.                  Если пользователем был выбран шифр Хилла, то пользователь также должен ввести размерность ключевой матрицы (максимальный размер матрицы равен 9*9) и саму матрицу (члены которой имеют максимальный размер 3 знака).

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

Для получения наиболее удобного в использовании интерфейса было разработано две формы, которые показаны на рисунках 1 и 2. Также на рисунках 1, 2 и 3 показаны примеры результата работы приложения.

Рис. 1. Пример работы шифрования текста шифром Цезаря

 

Рис. 2. Пример ввода ключевой матрицы для шифра Хилла

 

Рис. 3. Пример работы шифрования текста шифром Хилла

 

Заключение

Итогом работы стало приложение, выполняющее шифрование и дешифрование текста шифром Цезаря и шифром Хилла.

Для разработки данного приложения были изучены такие разделы линейной алгебры как обратный элемент в кольце по модулю, расширенный алгоритм Евклида, нахождение обратной матрицы по модулю, к тому же были разобраны методы работы с WindowsForms, библиотекой Math.NetNumerics и листами, а также отработаны навыки программирования, алгоритмизации и проектирования интерфейса.

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

 

Библиографический список

 

1.      Шифр Хилла. // Проект КРИПТО-NNN. [Электронный ресурс]. [Режим доступа: http://crypto.hut2.ru/hill.html] [Проверено: 12.03.2015]

2.      Worbst R. Cryptology Unlocked Translated by Angelika Shafir, 2007. — 557 с.

3.      Шифр Хилла. // Академик. [Электронный ресурс]. [Режим доступа: http://dic.academic.ru/dic.nsf/ruwiki/1346299#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.87.D0.B0.D0.BD.D0.B8.D1.8F] [Проверено: 9.03.2014]

4.      Dennis L. Cryptology: From Caesar Ciphers to Public-Key Cryptosystems, 1997. — 17c.

Основные термины (генерируются автоматически): шифр Цезаря, ключевая матрица, Шифр, дешифрование текста, линейная алгебра, максимальный размер, обратная матрица, русский язык, секретная информация, Электронный ресурс.


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

шифрование, шифр Цезаря, шифрование, дешифрование, шифр Хилла, криптология

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

Реализация Windows-приложения, выполняющего шифрование по правилам криптосистемы RSA

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

Криптосистема Эль-Гамаля

Криптосистему Эль-Гамаля используют для того, чтоб сформировать электронную подпись, или для шифровки данных. В данной статье рассмотрены идея этого метода шифрования, описание алгоритма.

Создание криптографии с помощью модулярной математики

В данной статье рассматриваются основы криптографии, а также модулярной арифметики, которые легли в основу многих шифров. Особое место в криптографии занимает шифр Цезаря, который также строится на основах модулярной арифметики. Изучив механизм постр...

Исследование и разработка криптографических алгоритмов шифрования на языках С/С++ для микроконтроллеров с ядром RISC-V с применением дополнительных наборов команд по К-спецификации

В статье изучены существующие алгоритмы криптографии и хеширования, для которых есть специальные ассемблерные инструкции из спецификации «К», в частности рассмотрены инструкции «Кузнечик», «Стрибог», «3DES». Также все алгоритмы изучены с математическ...

Угрозы использования систем автоматического распознавания образов

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

Обзор и применение квантового алгоритма Шора в дешифровании в системах криптографии, основанных на эллиптических кривых

В данной работе рассмотрен метод дешифрования систем, основанных на эллиптических кривых — квантовый алгоритм Шора.

На страже информации. Криптография

В статье автор доказывает возможность защиты информации с помощью криптографии. Он осуществляет шифрование открытого сообщения двумя разными алгоритмами, используя шифровальные устройства. Один алгоритм — известный, другой алгоритм — самостоятельно р...

Неформальный алгоритм сортировки файла с применением битового сжатия в языке программирования C++

В статье автор рассматривает сортировку файла при помощи битового массива на C++. А также сравнивает затраты оперативной памяти без использования битового массива.

Направления развития гомоморфного шифрования в Российской Федерации

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

Взвешенная модификация алгоритма Round-Robin в задаче параллельного экспорта файлов

В статье описывается модифицированная версия алгоритма Round-Robin, применяемая в задаче параллельного экспорта файлов внутри распределенной системы хранения данных.

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

Реализация Windows-приложения, выполняющего шифрование по правилам криптосистемы RSA

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

Криптосистема Эль-Гамаля

Криптосистему Эль-Гамаля используют для того, чтоб сформировать электронную подпись, или для шифровки данных. В данной статье рассмотрены идея этого метода шифрования, описание алгоритма.

Создание криптографии с помощью модулярной математики

В данной статье рассматриваются основы криптографии, а также модулярной арифметики, которые легли в основу многих шифров. Особое место в криптографии занимает шифр Цезаря, который также строится на основах модулярной арифметики. Изучив механизм постр...

Исследование и разработка криптографических алгоритмов шифрования на языках С/С++ для микроконтроллеров с ядром RISC-V с применением дополнительных наборов команд по К-спецификации

В статье изучены существующие алгоритмы криптографии и хеширования, для которых есть специальные ассемблерные инструкции из спецификации «К», в частности рассмотрены инструкции «Кузнечик», «Стрибог», «3DES». Также все алгоритмы изучены с математическ...

Угрозы использования систем автоматического распознавания образов

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

Обзор и применение квантового алгоритма Шора в дешифровании в системах криптографии, основанных на эллиптических кривых

В данной работе рассмотрен метод дешифрования систем, основанных на эллиптических кривых — квантовый алгоритм Шора.

На страже информации. Криптография

В статье автор доказывает возможность защиты информации с помощью криптографии. Он осуществляет шифрование открытого сообщения двумя разными алгоритмами, используя шифровальные устройства. Один алгоритм — известный, другой алгоритм — самостоятельно р...

Неформальный алгоритм сортировки файла с применением битового сжатия в языке программирования C++

В статье автор рассматривает сортировку файла при помощи битового массива на C++. А также сравнивает затраты оперативной памяти без использования битового массива.

Направления развития гомоморфного шифрования в Российской Федерации

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

Взвешенная модификация алгоритма Round-Robin в задаче параллельного экспорта файлов

В статье описывается модифицированная версия алгоритма Round-Robin, применяемая в задаче параллельного экспорта файлов внутри распределенной системы хранения данных.

Задать вопрос