В настоящее время именно в информационном пространстве происходит так называемая «гонка вооружений» во всём мире. Это связано в первую очередь с развитием информационных технологий. Следствием этого развития являются увеличение количества угроз, возникновение новых понятий, таких как «кибертерроризм», «информационная война» и др., а также развитие методов и средств защиты информации. В любом государстве одной из важнейших задач является именно надёжная защита информации. Также в повседневной жизни многие люди довольно часто сталкиваются с необходимостью шифрования данных. Например, для создания аккаунтов на различных сайтах в сети Интернет пользователю нередко необходимо ввести свои персональные данные, придумать логин и пароль. Разумеется, ни один пользователь не захочет, чтобы его конфиденциальные данные оказались в публичном доступе. В связи с этим, криптография[1] нашла широкое распространение в современном мире.
[1] Криптография – это наука о методах обеспечения конфиденциальности и аутентичности информации, то есть недопущения её прочтения посторонними лицами, не имеющими права доступа, а также целостности и подлинности авторства и невозможности отказа от него.
Шифрование применяется для хранения важной информации в ненадёжных источниках и передачи её по открытым каналам связи. Такая передача данных представляет из себя два взаимообратных процесса:
· Перед отправлением по линии связи или перед помещением на хранение данные шифруются.
· Для восстановления исходных данных из зашифрованных к ним применяется процедура дешифровки.
Шифрование изначально использовалось только для передачи конфиденциальной информации. Однако впоследствии шифровать информацию начали для хранения без затрат на дополнительную защиту.
2. История шифра Цезаря
Шифр назван в честь римского полководца Гая Юлия Цезаря, который использовал его для передачи стратегически важной информации военноначальникам. Изначально шифр применялся без вариаций со сдвигом в три буквы. Буква А обозначалась как D и так далее.
3. Применение
В XIX веке личная секция рекламных объявлений в газетах иногда использовалась, чтобы обмениваться сообщениями, зашифрованными с использованием простых шифров. Кан (1967) описывает случаи когда любители участвовали в секретных коммуникациях, зашифрованных с использованием шифра Цезаря в «Таймс». Даже позднее, в 1915, шифр Цезаря находил применение: российская армия использовала его как замену для более сложных шифров, которые оказались слишком сложными для войск. По сей день шифр Цезаря используется для зашифровки важных текстов.
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
Вывод: "работа"
Заключение
Мною было проведено изучение истории появления и применения шифра Цезаря. На основе полученных данных я создал программу для шифрования и дешифровки сообщений средствами языка Python.