Найти в Дзене
World of CINEMA

ИЗУЧЕНИЕ И РЕАЛИЗАЦИЯ ПРОГРАММНЫМ ПУТЕМ ШИФРА ЦЕЗАРЯ

В настоящее время именно в информационном пространстве происходит так называемая «гонка вооружений» во всём мире. Это связано в первую очередь с развитием информационных технологий. Следствием этого развития являются увеличение количества угроз, возникновение новых понятий, таких как «кибертерроризм», «информационная война» и др., а также развитие методов и средств защиты информации. В любом государстве одной из важнейших задач является именно надёжная защита информации. Также в повседневной жизни многие люди довольно часто сталкиваются с необходимостью шифрования данных. Например, для создания аккаунтов на различных сайтах в сети Интернет пользователю нередко необходимо ввести свои персональные данные, придумать логин и пароль. Разумеется, ни один пользователь не захочет, чтобы его конфиденциальные данные оказались в публичном доступе. В связи с этим, криптография[1] нашла широкое распространение в современном мире. [1] Криптография – это наука о методах обеспечения конфиденци

В настоящее время именно в информационном пространстве происходит так называемая «гонка вооружений» во всём мире. Это связано в первую очередь с развитием информационных технологий. Следствием этого развития являются увеличение количества угроз, возникновение новых понятий, таких как «кибертерроризм», «информационная война» и др., а также развитие методов и средств защиты информации. В любом государстве одной из важнейших задач является именно надёжная защита информации. Также в повседневной жизни многие люди довольно часто сталкиваются с необходимостью шифрования данных. Например, для создания аккаунтов на различных сайтах в сети Интернет пользователю нередко необходимо ввести свои персональные данные, придумать логин и пароль. Разумеется, ни один пользователь не захочет, чтобы его конфиденциальные данные оказались в публичном доступе. В связи с этим, криптография[1] нашла широкое распространение в современном мире.

[1] Криптография – это наука о методах обеспечения конфиденциальности и аутентичности информации, то есть недопущения её прочтения посторонними лицами, не имеющими права доступа, а также целостности и подлинности авторства и невозможности отказа от него.

Шифрование применяется для хранения важной информации в ненадёжных источниках и передачи её по открытым каналам связи. Такая передача данных представляет из себя два взаимообратных процесса:

· Перед отправлением по линии связи или перед помещением на хранение данные шифруются.

· Для восстановления исходных данных из зашифрованных к ним применяется процедура дешифровки.

Шифрование изначально использовалось только для передачи конфиденциальной информации. Однако впоследствии шифровать информацию начали для хранения без затрат на дополнительную защиту.

2. История шифра Цезаря

Шифр назван в честь римского полководца Гая Юлия Цезаря, который использовал его для передачи стратегически важной информации военноначальникам. Изначально шифр применялся без вариаций со сдвигом в три буквы. Буква А обозначалась как D и так далее.

-2

3. Применение

В XIX веке личная секция рекламных объявлений в газетах иногда использовалась, чтобы обмениваться сообщениями, зашифрованными с использованием простых шифров. Кан (1967) описывает случаи когда любители участвовали в секретных коммуникациях, зашифрованных с использованием шифра Цезаря в «Таймс». Даже позднее, в 1915, шифр Цезаря находил применение: российская армия использовала его как замену для более сложных шифров, которые оказались слишком сложными для войск. По сей день шифр Цезаря используется для зашифровки важных текстов.

-3

3. Принцип работы

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

Шифр Цезаря — это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, находящимся на некотором постоянном числе позиций левее или правее него в алфавите. Например, в шифре со сдвигом вправо на 3, А была бы заменена на Г, Б станет Д, и так далее.

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

Реализация в программной среде

Для разработки программы был использован язык программирования Python.

Переменные:

Alphabet – двойной алфавит на кириллице;

Vvod -входная строка

Vvvod – зашифрованная строка

Index - сдвиг

lVvod – длина входной строки

fin –i-тый элемент входной строки

index1 – номер зашифрованного элемента

Принцип работы:

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

Программа-дешифратор работает аналогичным образом.

Программа шифратор:

alphabet = ‘абвгдеёжзийклмнопрстуфхцчшщъыьэюяабвгдеёжзийклмнопрстуфхцчшщъыьэюя’

print(‘Введите сообщение’)

vvod = input()

vvod = vvod.lower()

vvvod =””

print(‘Введите сдвиг’)

index = input()

index = int(index)

lVvod = len(vvod)

I = 0

While I < lVvod:

If(vvod[i] != ‘’):

fin = vvod[i]

index1 = int(alphabet.find(fin)) + index

vvvod += alphabet[index1]

else:

vvvod += ‘’

I += 1

print(vvvod)

Программа дешифратор:

alphabet = ‘абвгдеёжзийклмнопрстуфхцчшщъыьэюяабвгдеёжзийклмнопрстуфхцчшщъыьэюя’

print(‘Введите сообщение’)

vvod = input()

vvod = vvod.lower()

vvvod =””

print(‘Введите сдвиг’)

index = input()

index = int(index)

lVvod = len(vvod)

I = 0

While I < lVvod:

If(vvod[i] != ‘’):

fin = vvod[i]

index1 = int(alphabet.find(fin)) - index

vvvod += alphabet[index1]

else:

vvvod += ‘’

I += 1

print(vvvod)

Результаты тестов шифратора:

Входное сообщение: "Привет мир"

Сдвиг: 3

Вывод: "тулезхплу"

Результаты тестов шифратора:

Входное сообщение:"сбвпуб"

сдвиг:1

Вывод: "работа"

-4

Заключение

Мною было проведено изучение истории появления и применения шифра Цезаря. На основе полученных данных я создал программу для шифрования и дешифровки сообщений средствами языка Python.