Шифрование и дешифровка информации с помощью программы

XXI Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Шифрование и дешифровка информации с помощью программы

Чеванин И.А. 1
1МОУ "СОШ № 5 УИМ" г. Магнитогорска
Шишина В.В. 1
1МОУ "СОШ № 5 УИМ" г. Магнитогорска
Автор работы награжден дипломом победителя III степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

Актуальность нашего проекта заключается в том, что в наше время шифрование используется во многих сферах жизни: в финансовых операциях, для сохранение личных данных, в конфиденциальности общения, в безопасном подключении, в электронном документообороте, в государственных службах, в военных переговорах. [7]

Цель проекта - нашего проекта состоит в том, чтобы написать программу, способную шифровать и дешифровывать поступающую ей информацию, основываясь на определённых шифрах: азбуке Морзе, шифр Цезаря, шифр 1AZ26.

Мы определили следующие задачи:

  1. изучить, что такое цифр.

2. проанализировать различные способы шифрования информаций.

3. выбрать всё, что потребуется для написания программы.

Проектным продуктом является программа

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

Глава 1. Шифры

На первом этапе мы расмотрели историю шифров и их разновидности

Шифрование — это кодирование информации, делающее её непонятной для тех, кому она не предназначена[1]. Соответственно шифр – это закодированная информация. Шифры изучает наука, криптография, что с древнегреческого переводиться как “тайнопись”[2]. Из-за этого тексты, написанные на неизвестном получателю языке, тоже являются шифром. Примером шифра может выступить спартанская скитала. Это шифр, который представляет собой цилиндр, на который намотана лента с буквами. Пока лента обмотана вокруг цилиндра с нужным диаметром, буквы на ней выстраиваются в предложения. Если ленту снять или обмотать её на цилиндр с другим диаметром, то информацию узнать не удаться. [3]

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

Самые известные шифры строятся на подмене букв. Самый простой способ – это заменить буквы на другие или на новые. Так мы можем отнести к шифрам азбуку Морзе.[4]

Азбука Морзе – особый алфавит, в котором буквы заменяются на последовательность звуков: длинного и короткого, обозначаемых тире и точкой соответственно. Это схоже с двоичным кодом.

Также стоит упомянуть, что под каждый язык азбука Морзе своя, то есть одна и та же комбинация чёрточек и точек может расшифроваться по-разному. Почти всегда это означает, что если не угадать с языком, то получишь бессмыслицу при дешифровке.

Двоичный код – это язык компьютера . Двоичный код очень схож с азбукой Морзе. В нём также каждый символ кодируется последовательностью различной длины, состоящий только из двух символов: “0” и “1”.[5]

Намного лучше в качестве шифра выступает шифр Цезаря.

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

Так например текст “абвг” может превратиться в “клмн” или в “бвгд”. Сдвиг выбирает тот, кому нужно зашифровать. Также можно шифровать каждое слово предложения с разным сдвигом. Но такое сложно будет дешифровать тому, кому и была адресована информация. Один из вариантов сделать так, чтобы сдвиг являлся длиною слова. [6]

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

Шрифт A1Z26 мало известен. Он заключается в том, что каждая буква кодируется своим номером в алфавите. Если знать про этот шифр или догадаться, то он очень прост для дешифровки, много времени не займёт. [5]

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

Глава 2. Программа для работы с шифрами

Программа - инструмент для выполнения нужных действий с информацией. Программа содержит коды команд, которые следуют определённому алгоритму. Именно этот алгоритм нам и предмтоит разработать. [8]

Главное преимущество программы это автоматизация. Программа быстрее, почти мгновенно, шифрует и дешифрует информацию без помощи человека.

Таким образом написанная программа позволит значительнно облегчить процесс обмена информации, которую требуеться скрыть

На втором этапе нашего проекта мы перешли к написанию программы. Теперь стоит определиться со всем, что понадобиться для написания программы, а именно язык, среду программирования, место размещения программы, шифры.

Языком программирования был выбран Python. Особо сложный или узконаправленный код нам писать на надо, то есть с этой задачей можно справиться на любом языке программирования одинаково хорошо. Так как Python-ом я владею лучше всего, было выбрано программировать на нём.

Средой программирования и местом размещения программы было решено выбрать Google Colab по ряду причин. Во-первых, доступность. Любой, кто владеет ссылкой, может начать использовать программу через браузер без сторонних установок. Во-вторых, это блочная структура кода. Возможность запускать куски кода отдельно друг от друга сильно облегчает и упрощает как работу с программой, так и её написание. Если бы программа была написана единым кодом, пришлось бы вводить множество проверок на то, каким шифром хочет воспользоваться пользователь. Это бы выглядело некрасиво и громоздко. Google Colab позволяет подписать каждый блок кода, из-за чего у потребителя не возникнет трудностей с программой.

Помимо этого, если в будущем будет решено дополнить программу новым шифром, или внести правки, или исправить ошибки, то нам не придётся отправлять новую версию программы пользователям.

Для написания программы нам потребовался ноутбук, с выходом в интернет. На написание программы у нас ушло 8 часов.

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

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

Помимо блоков кода, GoogleColab позволяет создавать блоки текста, поэтому было уделено время на подписание блоков кода, написанию заметок и подсказок, чтобы пользователю было удобнее работать с программой.

Обмениваясь зашифрованной информацией с друзьями, было найдено и исправлено множество ошибок. Всё же любую программу следует проверять и тестировать. Также, на случай нахождения ошибки, я оставил свою почту. С программой можно ознакомиться по ссылке в Литературе”[9]

Заключение

В заключении расмотрим отзывы о нашей программе, сформерованные по проведённому нами опросу.

После написания программы мы предложили воспользоваться ею и получили следующие отзовы:

22,5% пользователей оценили программу на оценку очень хорошо

40,0% на оценку хорошо

20,5% затруднились ответить

17,5% на оценку не понравилось

Далее в нашем опросе мы попросили отметить то, что больше всего понравилось. Результаты были таковы:

35,0% понравилась доступность программы

12,5% понравилось многообразие шифровок

10,0% понравилось наличие обратной связи с автором

42,5% не выдилили что-то одно или затруднились с ответом

Основываясь на результатах опроса можно подвести итоги. 62,5% пользователей были довольны нашей программой. Решение об размещении пргграммы в Google Colab было хорошим, ведь 35% пользователей оценнили доступность нашего проекта.

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

Список использованных источников и литературы

[1]Шифр - секретный код URL: https://foxford.ru/wiki/informatika/shifr-sekretnyj-kod?utm_referrer=https%3A%2F%2Fyandex.ru%2F (дата обращения 13.01.2024)

[2]Криптография: история шифровального дела 29 июня 2020 URL: https://rostec.ru/news/kriptografiya-istoriya-shifrovalnogo-dela/ (Дата обращения 13.01.2024)

[3] Скитала 6 июня 2022 URL: https://vuc.urfu.ru/ru/junarmija/kakie-byvajut-shifry/skitala/ (дата обращения 13.01.2024)

[4]Азбука Морзе URL: https://наука.рф/initiatives/nauchnye-detskie-ploshchadki/gumanitarnye-i-sotsialnye-nauki/azbuka-morze/ (дата обращения 13.01.2024)

[5] Александр Курилкин 10 популярных кодов и шифров 23 ноября 2015 URL: https://tproger.ru/translations/10-codes-and-ciphers (дата обращения 13.01.2024)

[6 ]Шрифт Цезаря — история, особенности и принципы работы распространенного метода шифрования 13 декабря 2023 URL:https://w3.ecities.ru/srift-cezarya-istoriya-osobennosti-i-principy-raboty-rasprostranennogo-metoda-sifrovaniya/#:~:text=Шрифт%20Цезаря%20—%20это%20один,вперед%20или%20назад%20в%20алфавите (дата обращения 16.01.2024)

[7] Что такое криптография и как она стала чыстью нашей жизни 23 августа, 2023 URL:https://practicum.yandex.ru/blog/chto-takoe-kriptografiya/8.php (дата обращения 16.01.2024)

  1. https://foxford.ru/wiki/informatika/chto-takoe-programma?utm_referrer=https%3A%2F%2Fyandex.ru%2F

[9]-Наша программа:https://colab.research.google.com/drive/1RyDRCkGyZjADUyiTU0zirnkVcVGPs-I?usp=sharing

Просмотров работы: 76