Написание программы "Шифр Цезаря"
Понятие и предназначение криптографии, возможные алгоритмы шифрования информации. Разработка автоматизированной системы шифрования методом шифра Цезаря. Преимущества использования системы программирования Delphi. Сохранение кодированного текста в файл.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 28.03.2017 |
Размер файла | 398,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Курсовая работа
Дисциплина Программирование
Тема Написать программу «Шифр Цезаря»
Гридин Василий Александрович
Содержание
Введение
Основная часть
Постановка задачи
Разработка рабочего проекта
Заключение
Глоссарий
Список использованных источников
Приложения
Введение
Криптография -- это наука и искусство шифрования. По крайней мере, с этого все начиналось. Сегодня понятие криптографии расширилось и включает в себя аутентификацию, цифровые подписи и множество других элементарных функций безопасности. Криптография охватывает различные области математики, теории связи, технические дисциплины, создающие фундамент для построения защиты данных и взлома шифров.
Существует довольно много алгоритмов шифрования информации.
Наиболее известным из древних шифров замены является шифр Цезаря, названный так в честь римского императора Гая Юлия Цезаря, который использовал его для секретной переписки со своими генералами. Шифр Цезаря является одним из наиболее изученных в криптографии, и он очень полезен тем, что иллюстрирует принципы модульной арифметики, одной из математических основ кодированного письма. Принцип сокрытия информации в данном шифре довольно не сложен. Каждая буква в сообщении заменяется другой буквой, расположенной в алфавите на определенной позиции правее.
Чтобы расшифровать данное сообщение, нужно всего лишь знать на какое количество позиций необходимо сместить буквы. Специалисты расходятся во мнениях по поводу практического применения шифра Цезаря, кто-то, утверждает, что сам Гай Юлий Цезарь заменял букву текста, смещая на четыре позиции в алфавите, а кто-то говорит, что он смещал на 3 позиции относительно первоначальной буквы. Также нет точного ответа, в какую именно сторону необходимо было двигаться по алфавиту, вправо или влево.
Для написания программы «Шифр Цезаря» используется среда разработки приложений Delphi, которая является предпочтительной для разработки приложений для Windows.
Использование программного средства Delphi, для написания программы обусловлено тем, что оно имеет дружественный интерфейс и обладает возможностью размещения меню и окна в порядке, удобном для пользователя. Программное средство имеет достаточное количество функций, которые необходимы для правильного решения поставленных задач.
Общее направление разработки в Delphi достаточно несложное. В первую очередь создается интерфейс. На этот процесс требуется около восьмидесяти процентов времени от общей разработки программы. Необходимые компоненты помещаются на поверхность Windows-окна и с помощью специального инструмента Object Inspector настраиваются их свойства. Данный инструмент может связывать действия таких компонентов: выбор мышью элемента из списка, нажатие на кнопку, применение кода для обработки. Простое приложение готово. При этом разработчик имеет в своём распоряжении удобную контекстную справочную систему, серьёзные средства отладки, средства совместной работы над проектом и многое другое. Создание компонентов ActiveX без применения Microsoft IDL, расширяет возможность web-сервера, не зная практически ничего об ASP или HTML XML. Формирование распределённых приложений на базе CORBA и СОМ, intranet и интернет приложений, используется для доступа к данным ODBC-драйверы, Borland DataBase Engine или Microsoft ADO.
Язык Object Pascal используется в Delphi, он всё время дополняется и расширяется Borland. Данный язык по всем критериям поддерживает требования, которые предъявляются к объектно-ориентированному языку программирования. Перегрузка методов и подпрограмм (overload) в стиле C++, поддержка обработки исключительных ситуаций - относятся к числу не совсем удачных особенностей языка. Поддержка длинных строк в формате WideChar и AnsiChar стоит отнести к числу удачных особенностей. Тип AnsiStrmg даёт возможность использования всех успешных динамических размещений информации в памяти. Delphi автоматически производит выделение и сборку мусора, не доставляя никаких забот. Свободный стиль программирования имеет открытые варианты, массивы и вариантные массивы. Они позволяют размещать в памяти всё, что угодно и смешивают типы данных.
Использование Delphi подходит для создания самых простых приложений, на разработку которых потребуется не более трёх часов. Также можно создать и серьезный проект, предназначенный для работы десятков и сотен пользователей. Для этого используются самые новые разработки в мире компьютерных технологий, при этом затраты времени и сил минимальны.
Основная часть
Постановка задачи
Тема: Разработать программу для Windows «Шифр Цезаря».
Условие задачи: «Шифр Цезаря» реализует следующее преобразование текста: каждая буква исходного текста заменяется третьей после нее буквой в алфавите, который считается написанным по кругу.
Объект исследования -- шифрование и дешифрование текста, для обеспечения доступа к файлам определенному кругу лиц. За основу создания данной программы шифрования взята технология шифра Цезаря.
Задачи исследования:
1) Проанализировать научную литературу о криптографии.
2) Разработка автоматизированной системы шифрования методом шифра Цезаря.
Методологическую основу исследования составляет литература о различных методах шифрования и использовании их на практике.
Методы исследования. Для решения поставленных задач использовались методы эмпирического исследования: анализ литературы по теме исследования, сравнительно-сопоставительного анализ; обобщения и систематизации полученных данных, разработка программного обеспечения.
Практическая значимость исследования. Благодаря проделанной работе появилось программное обеспечение. Создание его позволило проникнуть в значимость информационной безопасности, понять ее аспекты и в дальнейшем использовать более продвинутые и более защищенные методы шифрования данных.
Назначение и условия применения программы. Программный продукт «Шифр Цезаря» предназначен для шифрования и дешифрования информации методом шифра Цезаря, запись зашифрованных данных в файл, а также открытие файла для просмотра его содержимого. Он, возможно, ориентирован на предприятия с малым количеством денежных средств, программа облегчает работу передачи конфиденциальной информации. Хотя проект в последующем требует доработок. Программа создана главным образом для малых предприятий с небольшим уровнем секретности.
Входные и выходные данные. В качестве входных данных выступает информация, которую необходимо зашифровать, вводимая в текстовые поля.
Перечень выходных данных:
1) Зашифрованное сообщение, которое можно записать в файл;
2) Прочитанное из файла зашифрованное сообщение;
3) Расшифрованная информация;
4) Файл с его полной записанной информацией.
Управление формой осуществляется с помощью кнопок, которые отвечают за различные действия с программой.
Цезарь применял следующий алгоритм, для шифрования своих посланий он брал первую букву открытого текста и сдвигал ее на 3 позиции вперед в алфавите, таким образом, получал букву шифралфавита. Шифр Цезаря относится к симметричным алгоритмам. Симметричные алгоритмы представляют собой алгоритмы, в которых ключ шифрования может бать рассчитан по ключу дешифрирования и наоборот (рис. 1.1). В большинстве симметричных систем ключи шифрования и дешифрирования одни и те же. Эти алгоритмы также называют алгоритмами с секретным ключом или алгоритмами с одним ключом. Для работы такой системы требуется, чтобы отправитель и получатель согласовали используемый ключ перед началом безопасной передачи сообщения (имели защищенный канал для передачи ключа). Безопасность симметричного алгоритма определяется ключом, т.о. раскрытие ключа дает возможность злоумышленнику шифровать и дешифрировать все сообщения.
Рис. 1.1. Алгоритм с одним ключом
Достоинством этой системы является простота шифрования и дешифрования. К недостаткам системы Цезаря следует отнести:
- подстановки, выполняемые в соответствии с системой Цезаря, не маскируют частот появления различных букв исходного и отрытого текста;
- сохраняется алфавитный порядок в последовательности заменяющих букв; при изменении значения ключа изменяются только начальные позиции такой последовательности;
- число возможных ключей мало;
- шифр Цезаря легко вскрывается на основе анализа частот появления букв в шифре.
В разрабатываемой программе ключ равен 3. Программа предусматривает вводить текст в окно программы или загружать из внешнего файла. На панели инструментов программы необходимо предусмотреть кнопки «Кодировать» и «Декодировать».
При нажатии кнопки «Кодировать» программа последовательно считывает символ, в случае, если данный символ является буквой русского алфавита, то программа заменяет его на следующую букву алфавита с шагом равным трем. Если символ не является буквой русского алфавита, то программа оставляет его без изменений. Буквы английского алфавиты остается также без изменений.
При нажатии кнопки «Декодировать» программа последовательно считывает символ, в случае, если данный символ является буквой русского алфавита, то программа заменяет его на предыдущую букву русского алфавита с шагом равным трем. Если символ не является буквой русского алфавита, то программа оставляет его без изменений.
Программа предусматривает кодирование/декодирование текста как набранного вручную, так и загруженного из файла. Закодированный или расшифрованный текст можно также сохранить во внешний файл.
Ниже приведен алгоритм работы программы (рис. 1.2):
Рис. 1.2. Алгоритм
Разработка рабочего проекта
Система программирования Delphi версии 7 фирмы Enterprise (Borland) предоставляет наиболее широкие возможности для программирования приложений ОС Windows.
Delphi - это продукт Borland International для быстрого создания приложений. Процесс создания интерфейса будущей программы напоминает забаву с игровым компьютерным конструктором. Поэтому RAD-среды еще называют визуальными средами разработки: какими мы видим рабочие и диалоговые окна программы при проектировании, такими они и будут, когда программа заработает.
Высокопроизводительный инструмент визуального построения приложений включает в себя настоящий компилятор кода и предоставляет средства визуального программирования, несколько похожие на те, что можно обнаружить в Microsoft Visual Basic (она не является RAD-системой) или в других инструментах визуального проектирования. В основе Delphi лежит язык Object Pascal, который является расширением объектно-ориентированного языка Pascal. В Delphi также входят локальный SQL-сервер, генераторы отчетов, библиотеки визуальных компонентов, и прочее, необходимое для того, чтобы чувствовать себя совершенно уверенным при профессиональной разработке информационных систем или просто программ для Windows-среды. криптография delphi шифр цезарь
Прежде всего Delphi предназначен для профессиональных разработчиков, желающих очень быстро разрабатывать приложения в архитектуре клиент-сервер. Delphi производит небольшие по размерам высокоэффективные исполняемые модули (.exe и .dll), поэтому в Delphi должны быть, прежде всего, заинтересованы те, кто разрабатывает продукты на продажу. С другой стороны небольшие по размерам и быстро исполняемые модули означают, что требования к клиентским рабочим местам существенно снижаются - это имеет немаловажное значение и для конечных пользователей.
Преимущества Delphi по сравнению с аналогичными программными продуктами.
- быстрота разработки приложения (RAD);
- высокая производительность разработанного приложения;
- низкие требования разработанного приложения к ресурсам компьютера;
- наращиваемость за счет встраивания новых компонент и инструментов в среду Delphi;
- возможность разработки новых компонентов и инструментов собственными средствами Delphi (существующие компоненты и инструменты доступны в исходных кодах);
- удачная проработка иерархии объектов.
Система программирования Delphi рассчитана на программирование различных приложений и предоставляет большое количество компонентов для этого. К тому же работодателей интересует, прежде всего, скорость и качество создания программ, а эти характеристики может обеспечить только среда визуального проектирования, способная взять на себя значительные объемы рутинной работы по подготовке приложений, а также согласовать деятельность группы постановщиков, кодировщиков, тестеров и технических писателей. Возможности Delphi полностью отвечают подобным требованиям и подходят для создания систем любой сложности.
Основным конкурентом Borland Delphi 7 является её родной брат - RAD-среда Borland C++ Builder, технология работы с которой полностью совпадает с технологией, принятой в Delphi 7. Только в Delphi программный код пишется на языке программирования Паскаль, точнее на его объектно-ориентированной версии ObjectPascal, а не на языке C++.
Для того чтобы обосновать, почему наш выбор остановился на Borland Delphi 7, достаточно просто перечислить некоторые недостатки языка С++ по сравнению с ObjectPascal:
1. Надо делать много инициализации (регистрировать класс окна, организовывать цикл обработки сообщений, создавать оконную функцию, пиктограмму и прочее…) и частично быть системным программистом. На Delphi-же системное программирование уже встроено и инициализация работает по умолчанию, поэтому программист главный упор делает на своих алгоритмах, а не на организации вспомогательных работ.
2. Значительно большая, по сравнению с Object Pascal, сложность языка, даже, несмотря на компактность кода, возникают сложности в его восприятии.
3. Одна особенность, на мой взгляд, языка С++ очень портит этот язык - он чувствителен к регистру символов, т.е. переменная A и переменная a - это разные переменные.
4. В Delphi классы (объекты) могут располагаться только в динамической памяти, а в C++ в любой памяти (статическая, стек, динамическая). Это добавляет безопасности программирования в Delphi.
Интегрированная среда разработки Delphi (Delphi IDE) является многооконной системой. Она включает в себя все необходимое для быстрой разработки Windows-приложений, и может гибко настраиваться.
Тем не менее, как и всякая другая программа, Delphi имеет некоторый стандартный, предусмотренный разработчиками вид, в котором она предстает вам при первом запуске. В таком "стандартном" варианте среда Delphi имеет 6 окон (рис. 2.1). Это: главное окно (Delphi 7 - Project1), окно дерева объектов (Object TreeView), окно инспектора объектов (Object Inspector), окно конструктора форм (Form1), а так же совмещенное окно редактора кода и проводника кода (на заднем плане, под Form1). При этом окно проводника пристыковано к левому краю окна редактора. Впрочем, ничего не мешает отсоединить проводник от редактора, или, наоборот, состыковать все окна, кроме главного и конструктора форм, в одном окне, или объединить их по какому-либо иному принципу.
Рис. 2.1. Вид Delphi 7 IDE по умолчанию.
К вопросу об удобстве следует отметить, что предлагаемая разработчиками компоновка годится, в принципе, для любого экранного разрешения. Но если у вас имеется возможность установить разрешение экрана в значение 1280 на 1024 точки, то вы можете скомпоновать все кнопки главного окна в одной строке, а все освободившееся внизу место выделить для палитры компонентов (рис. 2.2).
Рис. 2.2. "Оптимизированный" вид главного окна Delphi.
Такой шаг позволит иметь перед глазами гораздо большее количество категорий компонент, что положительно сказывается на продуктивности работы. В принципе, это можно сделать и при более низком разрешении, однако при этом частью кнопок на панелях инструментов придется пожертвовать.
Содержание и предназначение панелей инструментов, имеющихся в начальном виде, следующее:
- Debug - отладка. Позволяет запустить программу (Run), приостановить ее выполнение (Pause), а так же выполнять построчное выполнение программы;
- Standard - стандартные. Служит для таких операций, как сохранение, созда-ние, добавление и удаление файлов;
- View - вид. Используется для быстрого нахождения форм и файлов проекта;
- Desktops - рабочая среда. С помощью этих инструментов можно переклю-чаться между различными настройками рабочей среды Delphi;
- Custom - произвольная. Изначально содержит одну-единственную кнопку - для вызова справки;
- Component palette - палитра компонентов. Содержит все доступные для разработки приложений компоненты.
Отметим, что все инструментальные панели настраиваются: кнопки можно перемещать между панелями, добавлять на них новые, или же удалять. Для обычных панелей (Standard, View, Debug) это делается точно таким же образом, как во многих других современных Windows-приложениях (например, как в Word, т.е. при помощи окна настройки - Customize).
Заключение
В результате выполнения курсовой работы были получены навыки составления алгоритма для поставленной задачи и воплощения этого алгоритма в текст программы, написанной в среде Delphi. А также было разработано программное средство, успешно решающее поставленную задачу, т.е. была написана программа, работающая в двух режимах, позволяющая шифровать и расшифровывать тексты «методом Цезаря».
Основных методом, использованным при решении задачи, был метод перебора, вследствие чего скорость работы программы при больших исходных данных может уменьшаться.
В наше время кодирование информации стало очень популярной темой для обсуждения, так как оно необходимо для передачи информации по интернету (например, банковские операции), защите непосредственно компьютерных систем от несанкционированного доступа и т. п. На конференциях по криптографии поднимаются самые разные темы, связанные с компьютерной безопасностью, высшей математикой, квантовой физикой, статистикой, гражданским и уголовным правом, проектирование микросхем, экстремальным программированием, проблемами пользовательского интерфейса и т. п.
Мне кажется, в наше время надо больше уделять времени информационной безопасности. Хотя говорят, что не существует таких систем безопасности, которые нельзя было бы обойти, всегда найдется человек, который сможет это сделать. Но все равно надо стремиться огородить свою информацию от посторонних глаз. Сейчас Европа и другие страны планируют выделить деньги для защиты своей информации, для создания собственных автономных систем, таким образом снять зависимость от США.
Глоссарий
Понятие |
Определение |
||
1 |
Открытый текст |
Текст, который нужно зашифровать |
|
2 |
Шифроалфавит |
Буквы, которые подставляются за место открытого текста |
|
3 |
Алгоритм |
Совокупность инструкций, которые обеспечивают последовательность действий для точного решения задачи и достижения результата. |
|
4 |
Диалоговое окно |
Окно, предназначенное для вывода информации. Специальный элемент интерфейса. |
|
5 |
Кодирование |
Процесс преобразования сигнала из формы, удобной для непосредственного использования информации, в форму, удобную для передачи, хранения или автоматической переработки |
|
6 |
Декодирование |
Процесс обратного преобразования кода к форме исходной символической системы, для получения исходного сообщения. |
|
7 |
Шифрование |
Метод, используемый для преобразования данных в шифрованный текст для того, чтобы они были прочитаны только пользователем, обладающим соответствующим ключом |
|
8 |
Программирования стиль |
Совокупность методов и приёмов программирования, используемые опытными программистами. Для получения удобных в применении, эффективных, надежных, легко читаемых программ. |
|
9 |
Тестирование |
Операции по проверке точности функционирования программ. |
|
10 |
Диск |
Запоминающее устройство (устройство хранения информации) произвольного доступа, основанное на принципе магнитной записи. Является основным накопителем данных в большинстве компьютеров. |
Список использованных источников
1 |
Жуан Гомес Математики, шпионы и хакеры. Кодирование и криптография, 2014. -- 25--26 с. |
|
2 |
А.Д. Хоманенко, Средства программирования. Издат. "БХВ-Петербург" 2011г. |
|
3 |
Тилборг ван Х.К.А. Основы криптологии. Профессиональное руководство и интерактивный учебник, 2006. -- 19--20 с. |
|
4 |
Ростовцев А.Г., Маховенко Е.Б. Теоретическая криптография, 2005. -- 188--189 с. |
|
5 |
Фергюсон Н., Шнайер Б. Практическая криптография, 2004. -- 25 с. |
|
6 |
А. Н. Вальвачев, Д. А. Сурков, К. А. Сурков, Ю. М. Четырько. Программирование на языке Delphi. 2007г. |
|
7 |
Хавьер Пашеку Программирование в Borland Delphi 2006 для профессионалов. 2009г. |
|
8 |
Дж. Рубенкинг. Язык программирования Delphi для «чайников». 2011 г. |
|
9 |
В. Рубанцев. От простых приложений, решения задач и до программирования интеллектуальных игр, 2012г. |
|
10 |
Адаменко М.В. Основы классической криптологии: секреты шифров и кодов, 2012. -- 88 с. |
Размещено на Allbest.ru
Подобные документы
Понятие информационной безопасности. История развития криптографии. Функции информационных моделей. Переменные, используемые при разработке прикладной программы для шифрования и дешифрования сообщений с помощью шифра Цезаря. Блок-схема общего алгоритма.
курсовая работа [975,5 K], добавлен 11.06.2014История появления и развития шифрования текста. Проблема шифрования и дешифрования текстовых сообщений в современности. Создание программы для зашифровки и расшифровки вводимого текста пятью методами: Атбаш, Цезаря, Полибия, Гронсфельда и Винжера.
курсовая работа [923,6 K], добавлен 26.12.2011Разработка программы "Шифр Цезаря", позволяющая зашифровывать тексты методом Юлия Цезаря и дешифровать тексты, закодированные данным способом. Имеет возможность автоматического нахождения или выбора ключа и самостоятельного ввода ключа пользователем.
курсовая работа [710,9 K], добавлен 23.12.2010Проблема скрытия и защиты информации от несанкционированного использования. История создания шифра. Решения задачи шифрования текста и кодирования данных. Тестирование полученного приложения и анализ работы программы с точки зрения пользователя.
курсовая работа [3,0 M], добавлен 24.11.2013Схема работы и требования к программам шифрования и дешифрования. Алгоритмы и тексты программы шифрования и программы дешифрования, выполненные на языке программирования C/C++. Содержание файла с исходным текстом, с шифротекстом, с дешифрованным текстом.
курсовая работа [24,7 K], добавлен 20.10.2014Создание приложения для шифрования–дешифрования текста тремя алгоритмами (алгоритм "Цезаря","Модифицированного Цезаря", "Скитала"). Исходный текст компонента. Инструкция пользователя, возможность просмотра примерного алгоритма. Исходный текст программы.
курсовая работа [2,8 M], добавлен 27.02.2015Основные методы криптографической защиты информации. Система шифрования Цезаря числовым ключом. Алгоритмы двойных перестановок и магические квадраты. Схема шифрования Эль Гамаля. Метод одиночной перестановки по ключу. Криптосистема шифрования данных RSA.
лабораторная работа [24,3 K], добавлен 20.02.2014Разработка эскизного и технического проектов программы "Шифр Цезаря": назначение и область применения, описание алгоритма, организация входных и выходных данных. Выбор состава технических и программных средств, разработка, тест и внедрение программы.
курсовая работа [563,7 K], добавлен 15.07.2012Шифрование как метод защиты информации. История развития криптологии. Классификация алгоритмов шифрования, симметричные и асимметричные алгоритмы. Использование инструментов криптографии в Delphi-приложениях. Краткая характеристика среды Delphi 7.
курсовая работа [48,5 K], добавлен 19.12.2009Автоматизация процесса шифрования на базе современных информационных технологий. Криптографические средства защиты. Управление криптографическими ключами. Сравнение симметричных и асимметричных алгоритмов шифрования. Программы шифрования информации.
курсовая работа [795,7 K], добавлен 02.12.2014