Зашифровка данных
Создание программы "Зашифровка данных" с применением программного продукта Borland Delphi 7. Выбор и структурирование обучающего материала. Основные конструкции языка проектирования. Среда разработки программы; требования к эргономичности интерфейса.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 23.11.2013 |
Размер файла | 2,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Дипломная работа является завершающим этапом в изучении алгоритмов шифрования и дешифрования данных, широко применяются в компьютерной технике в системах сокрытия конфиденциальной и коммерческой информации от злонамеренного использования сторонними лицами. Главным принципом в них является условие, что передатчик и приемник заранее знают алгоритм шифрования, а также ключ к сообщению, без которых информация представляет собой всего лишь набор символов, не имеющих смысла. В ходе, которого осуществляется обучение применению полученных знаний и умений при решении комплексных задач, связанных со сферой профессиональной деятельности.
Тема дипломной работы - Разработка программного продукта «Зашифровка данных».
Актуальность темы связанна с использованием в образовательном процессе программных средств обучения, обусловлена процессами компьютеризации и информатизации, которые сейчас происходят в нашей стране. Поэтому в настоящее время все более широкое распространение получают новые методы получения и передачи знаний. Характерной чертой научно-технического прогресса, определяющей мощный дальнейший подъем общественного производства, является широкое внедрение электроники во все отрасли народного хозяйства. Стремительное развитие промышленности и технологий, определило дальнейшее развитие науки на несколько поколений вперёд. Одним из самых приоритетных направлений науки является микроэлектроника, позволившая достичь высочайших технологий, которые, в свою очередь, нашли широчайшее применение, как в промышленности, так и в научной сфере. Стык этих двух сфер сформировал величайшее изобретение современности - цифровой электронный компьютер. Парк компьютеров разнообразного назначения растёт стремительными темпами. В настоящее время персональный компьютер является неотъемлемой частью любого предприятия, учебных заведений, вычислительных центров, и других учреждений. С каждым днем растут объемы передаваемой и принимаемой информации. В связи с этим становится особенно актуальной проблема сохранения целостности передаваемой и обрабатываемой информации. Память компьютера время от времени может делать ошибки из-за всплесков напряжения на линии электропередачи и по другим причинам. Передача информации также сопряжена с различного рода ошибками. Чтобы бороться с такими ошибками, были разработаны специальные способы кодирования информации, позволяющие обнаружить и исправить возможные ошибки. Существует большое количество видов помехоустойчивого кодирования. Некоторые виды настолько сложны, что требуют создания специального математического аппарата, другие же, напротив, достаточно просты и понятны. Эффективность разных способов кодирования существенно различается. Изучение методов кодирования часто становится проблемой из-за излишней математизированости материала и недостаточной наглядности.
Цель дипломной работы: является создание программы с применением программного продукта Borland Delphi 7 по теме: «Зашифровка данных».
Для достижения поставленной цели необходимо решить следующие задачи:
а) выбрать и структурировать обучающий материал;
б) выбрать среду разработки программы;
в) разработать эргономичный интерфейс, понятный обычному пользователю, дополнив его понятным руководством пользователя;
г) систематизировать, закрепить и расширить теоретические и практические знания по специальности.
Глава 1. Теоретическая часть
1.1 Основные понятия и задачи программного продукта
Испокон веков не было ценности большей, чем информация. ХХ век - век информатики и информатизации. Технология дает возможность передавать и хранить все большие объемы информации. Это благо имеет и оборотную сторону. Информация становится все более уязвимой по разным причинам:
* возрастающие объемы хранимых и передаваемых данных;
* расширение круга пользователей, имеющих доступ к ресурсам ЭВМ, программам и данным;
* усложнение режимов эксплуатации вычислительных систем.
Поэтому все большую важность приобретает проблема защиты информации от несанкционированного доступа (НСД) при передаче и хранении. Сущность этой проблемы - постоянная борьба специалистов по защите информации со своими "оппонентами".
Очевидная тенденция к переходу на цифровые методы передачи и хранения информации позволяет применять унифицированные методы и алгоритмы для защиты дискретной (текст, факс, телекс) и непрерывной (речь) информации.
Испытанный метод защиты информации от НСД - шифрование (криптография). Шифрованием (encryption) называют процесс преобразования открытых данных (plaintext) в зашифрованные (шифртекст, ciphertext) или зашифрованных данных в открытые по определенным правилам с применением ключей.
Описание шифра «лозунговый шифр»
Наиболее известными и часто используемыми шифрами являются шифры замены. Они характеризуются тем, что отдельные части сообщения (буквы, слова, ...) заменяются на какие-либо другие буквы, числа, символы и т.д. При этом замена осуществляется так, чтобы потом по шифрованному сообщению можно было однозначно восстановить передаваемое сообщение.
В лозунговом шифре запоминание ключевой последовательности основано на лозунге - легко запоминаемом слове. Например, выберем слово-лозунг «учебник» и заполним вторую строку таблицы по следующему правилу: сначала выписываем слово-лозунг, а затем выписываем в алфавитном порядке буквы алфавита, не вошедшие в слово-лозунг. Вторая строка примет вид:
у ч е б н и к а в г д ж з л м о
п р с т ф х ц ш щ ъ ы ь э ю я
В данном случае число вариантов ключа существенно больше числа букв алфавита.
Данный шифр имеет одну слабость. Если в открытом сообщении часто встречается какая-либо буква, то в шифрованном сообщении часто будет встречаться соответствующий ей символ или буква. Поэтому при вскрытии шифра замены обычно стараются наиболее часто встречающимся символам шифрованного сообщения поставить в соответствие буквы открытого сообщения с наибольшей предполагаемой частотой появления.
Задачи дипломной работы:
а) закрепить, углубить и обобщить теоретические знания, полученные по изучаемым дисциплинам, и применить эти знания к комплексному решению конкретной информационной задачи;
б) изучить особенности конкретной предметной области, относящиеся к теме дипломной работы;
в) проанализировать возможные подходы и методы решения с обоснованием выбранного метода;
г) развить навыки работы со справочной литературой, материалами ГОСТов;
д) научиться применять современные технические средства для разработки программного продукта;
е) разработка программной и эксплуатационной документации.
Программа по теме: «Зашифровка данных» дает возможность пройти обучение методом: «Шифрующие таблицы с перестановкой по числовым или буквенным ключам».
1.2 Описание предметной области
Программа может использоваться в учебных заведениях, по ФГОС третьего поколения, учебной дисциплины «Информатика и ИКТ», «Программно-аппаратные средства защиты информации», для специальности «Программирование в компьютерных системах». Данная программа представлена как электронное пособие, разделы которого предназначены не только для самостоятельного изучения темы, но и для непосредственной зашифровки сообщений.
Информатика - наука о методах и процессах сбора, хранения, обработки, анализа и оценивания информации, обеспечивающих возможность её использования для принятия решений. Она включает дисциплины, относящиеся к обработке информации в вычислительных машинах и вычислительных сетях: как абстрактные, вроде анализа алгоритмов, так и конкретные, например разработка языков программирования и протоколов передачи данных.
Классификация информации:
а) Информация подразделяется по форме представления на 2 вида:
1) дискретная форма представления информации - это последовательность символов, характеризующая прерывистую, изменяющуюся величину (количество дорожно-транспортных происшествий, количество тяжких преступлений и т.п.);
2) аналоговая или непрерывная форма представления информации - это величина, характеризующая процесс, не имеющий перерывов или промежутков (температура тела человека, скорость автомобиля на определенном участке пути и т.п.).
б) По области возникновения выделяют информацию:
1) элементарную (механическую), которая отражает процессы, явления неодушевленной природы;
2) биологическую, которая отражает процессы животного и растительного мира;
3) социальную, которая отражает процессы человеческого общества.
в) По способу передачи и восприятия различают следующие виды информации:
1) визуальную, передаваемую видимыми образами и символами;
2) аудиальную, передаваемую звуками;
3) тактильную, передаваемую ощущениями;
4) органолептическую, передаваемую запахами и вкусами;
5) машинную, выдаваемую и воспринимаемую средствами вычислительной техники.
г) Информацию, создаваемую и используемую человеком, по общественному назначению можно разбить на три вида:
1) личную, предназначенную для конкретного человека;
2) массовую, предназначенную для любого желающего ее пользоваться (общественно-политическая, научно-популярная и т.д.) ;
3) специальную, предназначенную для использования узким кругом лиц, занимающихся решением сложных специальных задач в области науки, техники, экономики.
По способам кодирования выделяют следующие типы информации:
а) символьную, основанную на использовании символов - букв, цифр, знаков и т.д. Она является наиболее простой, но практически применяется только для передачи несложных сигналов о различных событиях. Примером может служить зеленый свет уличного светофора, который сообщает о возможности начала движения пешеходам или водителям автотранспорта.
б) текстовую, основанную на использовании комбинаций символов. Здесь так же, как и в предыдущей форме, используются символы: буквы, цифры, математические знаки. Однако информация заложена не только в этих символах, но и в их сочетании, порядке следования. Так, слова КОТ и ТОК имеют одинаковые буквы, но содержат различную информацию. Благодаря взаимосвязи символов и отображению речи человека текстовая информация чрезвычайно удобна и широко используется в деятельности человека: книги, брошюры, журналы, различного рода документы, аудиозаписи кодируются в текстовой форме.
в) графическую, основанную на использовании произвольного сочетания в пространстве графических примитивов. К этой форме относятся фотографии, схемы, чертежи, рисунки, играющие большое значение в деятельности человек.
Информатика делится на ряд разделов.
Теоретическая информатика:
Теоретическая информатика занимается теорией формальных языков и автоматов, теориями вычислимости и сложности, теорией графов, криптологией, логикой (включая логику высказываний и логику предикатов), формальной семантикой и предлагает основы для разработки Компиляторов языков программирования.
Практическая информатика:
Практическая информатика обеспечивает фундаментальные понятия для решения стандартных задач, таких, как хранение и управление информацией с помощью структур данных, построения алгоритмов, модели решения общих или сложных задач.
Одной из центральных тем практической информатики является инженерия программного обеспечения. Речь идет о систематическом процессе разработок от идеи до готового программного обеспечения.
Практическая информатика предоставляет также необходимые инструменты для разработки программного обеспечения, например, компиляторы.
Кибернетика, определяемая, как «наука об общих закономерностях процессов управления и передачи информации в различных системах, будь то машины, живые организмы или общество» представляет собой близкое, но несколько иное научное направление. Так же, как математика основная часть современной информатики, оно вряд ли может быть отнесено к области естественных наук, так как резко отличается от них своей методологией.
1.3 Требования к программному продукту
Определение требований к программным продуктам один из наиболее ответственных этапов создания программного продукта -- этап постановки задачи. На этом этапе принимаются важные решения относительно функций создаваемого программного обеспечения, эксплуатационных ограничений, накладываемых на него; производится выбор архитектуры, среды разработки программного обеспечения, интерфейса пользователя и др. От этого выбора будет зависеть качество конечного программного продукта.
Функциональные требования описывают сервисы, предоставляемые программной системой, ее поведение в определенных ситуациях, реакцию на те или иные входные данные и действия, которые система позволит выполнять пользователям. Иногда сюда добавляются сведения о том, чего система делать не должна. Каждый программный продукт предназначен для выполнения определенных функций. Для того чтобы определить, подходит та или иная программа для решения задач, необходимо иметь четкий набор критериев, на основании которого можно сделать правильный выбор. При написании функциональных требований необходимо учитывать, что чем они будут подробнее, тем более точная оценка работ по срокам будет произведена перед разработкой технического задания на создание программного обеспечения. Если на дальнейших этапах разработки программного обеспечения не возникнет дополнений к изначально сформулированным функциональным требованиям, то эта оценка будет достаточно точной. В то же время при описании требований не надо углубляться в какие-то мелкие детали. Необходимо описывать именно функции программы, а не то, какую кнопочку надо нажать в верхнем левом углу окна программы, чтобы получить результат. Такие детали должны быть подробно проработаны уже в процессе разработки технического задания. Функциональные требования документируются в спецификации требований к программному обеспечению, где описывается как можно более полно ожидаемое поведение системы. Необходимо, чтобы функциональная спецификация программного средства была математически точной. Желательно даже, чтобы при ее разработке применялись математические методы и формализованные языки. Она должна базироваться на четких понятиях и утверждениях, однозначно понимаемых разработчиками и заказчиками программного продукта.
Компьютерные обучающие программы используются в образовании как дополнительные учебные средства достаточно давно. Однако при дистанционном обучении компьютер становится основным дидактическим инструментом и вместо разрозненных обучающих программ нужен цельный интерактивный курс, с достаточной полнотой, представляющий всю учебную информацию. Принцип интерактивности учебного материала - второй важный принцип, который следует учитывать при разработке учебно-методического обеспечения дистанционного образования.
Так же необходимо учитывать следующие принципы:
- принцип наглядности: каждый модуль должен состоять из коллекции кадров с минимумом текста и визуализацией, облегчающей понимание и запоминание новых понятий, утверждений и методов.
- принцип ветвления: каждый модуль должен быть связан гипертекстными ссылками с другими модулями так, чтобы у пользователя был выбор перехода в любой другой модуль.
- принцип регулирования: учащийся самостоятельно управляет сменой кадров, имеет возможность вызвать на экран любое количество примеров, решить необходимое ему количество задач, задаваемого им самим или определяемого преподавателем уровня сложности, а также проверить себя, ответив на контрольные вопросы и выполнив контрольную работу, заданного уровня сложности.
- принцип компьютерной поддержки: в любой момент работы учащийся может получить компьютерную поддержку, освобождающую его от рутинной работы и позволяющую сосредоточиться на сути изучаемого в данный момент материала, рассмотреть большее количество примеров и решить больше задач.
- принцип собираемости: электронный учебник (и другие учебные пакеты) должны быть выполнены в форматах, позволяющих компоновать их в единые электронные комплексы, расширять и дополнять их новыми разделами и темами, а также формировать электронные библиотеки по отдельным дисциплинам (например, для кафедральных компьютерных классов) или личные электронные библиотеки студента (в соответствии со специальностью и курсом, на котором он учится), преподавателя или исследователя.
Глава 2. Разработка программного продукта
2.1 Обоснование выбора средств разработки программного продукта
Данная программа была разработана на языке программирования Delphi. Delphi - это интегрированная среда, позволяющая разработать, выполнять, тестировать и отлаживать приложения. Delphi позволяет создать программу с простым и удобным интерфейсом. Этот язык программирования позволяет работать с различными типами файлов, от текстовых до анимационных.
Последняя версия языка Delphi 7 представляет собой интегрированную среду разработки -- IDE (IntegratedDevelopmentEnvironment). Это означает, что в Delphi 7 интегрирован набор инструментов, облегчающих и значительно ускоряющих процесс разработки готового приложения. Такая реализация языка Delphi 7 с полным правом позволяет отнести его к средствам быстрой разработки приложений -- RAD (RapidApplicationDevelopment) и ставит практически в один ряд с такими средствами разработки, как Visual C++ и другими.
Delphi являясь мощным программным средством, позволяет реализовать широкий спектр практических задач. Основное достоинство этого языка программирования состоит в том, что он оптимально сочетает в себе простоту использования, доступность и большой набор разнообразных возможностей. Это один из самых простых и популярных языков программирования.
Данная программа была разработана на языке программирования Delphi. Delphi - это интегрированная среда, позволяющая разработать, выполнять, тестировать и отлаживать приложения.Delphi позволяет создать программу с простым и удобным интерфейсом. Этот язык программирования позволяет работать с различными типами файлов, от текстовых до анимационных.
Последняя версия языка Delphi 7 представляет собой интегрированную среду разработки -- IDE (IntegratedDevelopmentEnvironment). Это означает, что в Delphi 7 интегрирован набор инструментов, облегчающих и значительно ускоряющих процесс разработки готового приложения. Такая реализация языка Delphi 7 с полным правом позволяет отнести его к средствам быстрой разработки приложений -- RAD (RapidApplicationDevelopment) и ставит практически в один ряд с такими средствами разработки, как Visual C++ и другими.
Delphi являясь мощным программным средством, позволяет реализовать широкий спектр практических задач. Основное достоинство этого языка программирования состоит в том, что он оптимально сочетает в себе простоту использования, доступность и большой набор разнообразных возможностей. Это один из самых простых и популярных языков программирования.
Система программирования Delphi версии 7 фирмы Enterprise (Borland) предоставляет наиболее широкие возможности для программирования приложений ОС Windows.
Delphi - это продукт Borland International для быстрого создания приложений. Процесс создания интерфейса будущей программы напоминает забаву с игровым компьютерным конструктором. Поэтому RAD-среды еще называют визуальными средами разработки: какими мы видим рабочие и диалоговые окна программы при проектировании, такими они и будут, когда программа заработает.
Высокопроизводительный инструмент визуального построения приложений включает в себя настоящий компилятор кода и предоставляет средства визуального программирования, несколько похожие на те, что можно обнаружить в Microsoft Visual Basic (она не является RAD-системой) или в других инструментах визуального проектирования. В основе Delphi лежит язык Object Pascal, который является расширением объектно-ориентированного языка Pascal. В Delphi также входят локальный SQL-сервер, генераторы отчетов, библиотеки визуальных компонентов, и прочее, необходимое для того, чтобы чувствовать себя совершенно уверенным при профессиональной разработке информационных систем или просто программ для Windows-среды.
Прежде всего 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:
а) Надо делать много инициализации (регистрировать класс окна, организовывать цикл обработки сообщений, создавать оконную функцию, пиктограмму и прочее…) и частично быть системным программистом. На Delphi-же системное программирование уже встроено и инициализация работает по умолчанию, поэтому программист главный упор делает на своих алгоритмах, а не на организации вспомогательных работ.
б) Значительно большая, по сравнению с Object Pascal, сложность языка, даже, несмотря на компактность кода, возникают сложности в его восприятии.
в) Одна особенность, на мой взгляд, языка С++ очень портит этот язык - он чувствителен к регистру символов, т.е. переменная A и переменная a - это разные переменные.
г) В Delphi классы (объекты) могут располагаться только в динамической памяти, а в C++ в любой памяти (статическая, стек, динамическая). Это добавляет безопасности программирования в Delphi.
Компонент Button это простая командная кнопка используется для реализации в программе команд с помощью обработчика события OnClick этого компонента.
Компонент Image дает отображение на форме графического изображения. Свойство Picture типа TPicture содержит отображаемую графическую составляющую у которой тип - битовая матрица, пиктограммы, метафайла или определенного пользователем типа.
Компонент delphiMainMenu-- не визуальный компонент delphi (место размещения которого на форме не имеет значения для пользователя так как он увидит не сам компонент, а меню, с генерированное им), предназначенный для вывода главного меню на форме.
XPManifest использует стандартные визуальные компоненты для данной ОС.
Panel представляет собой контейнер, в котором можно размещать другие элементы управления.
Компоненты TreeView служит для отображения иерархических данных в виде дерева на в котором пользователь может выбрать нужный ему узел или узлы.
Во многих современных программах необходимо работать с данными в формате HTML. В качестве средства для просмотра таких данных в Delphi применяется компонент TWebBrowser, который использует элемент управления ActiveXWebBrowser, входящий в состав MicrosoftInternetExplorer. Таким
образом, этот компонент имеется на любом компьютере, на котором установлен InternetExplorer. Все последние версии Windows содержат TWebBrowser в своем составе и без него практически неработоспособны.
Компонент Label предназначен для отображения статического текста, то есть надписей и меток на Форме, которые не меняются в течение всего времени работы программы
RadioGroup - Радиокнопки образуют группы взаимосвязанных индикаторов, из которых обычно может быть выбран только один. Они используются для выбора пользователем одной из нескольких взаимоисключающих альтернатив, например, отдела, в котором работает сотрудник, или пола сотрудника. Впрочем, радиокнопки могут использоваться и для отображения аналогичных данных. В этом случае управление кнопками осуществляется программно.
Компонент Timer (не визуальный компонент, который может размещаться в любом месте формы) позволяет задавать в приложении интервалы времени. Таймер находит многочисленные применения: синхронизация мультипликации, закрытие каких-то окон, с которыми пользователь долгое время не работает, включение хранителя экрана или закрытие связей с удаленным сервером при отсутствии действий пользователя, регулярный опрос каких-то источников информации, задание времени на ответ в обучающих программах -- все это множество задач, в которых требуется задавать интервалы времени, решается с помощью таймера.
Компонент DelphiEdit представляет собой однострочное текстовое поле, служащее для ввода данных пользователем.
Компонент DelphiMemo- это простой текстовый редактор.
DelphiMemo позволяет вводить многострочный текст с клавиатуры, загружать его из файла, редактировать и сохранять в файл текстового формата. При изучении работы с DelphiEdit советую посетить страничку работа со строками Delphi, так как там описываются функции Delphi для работы с данными, представленными в текстовой форме, с которыми и оперирует компонент Memo.
2.2 Описание и иерархия структуры программного продукта
Структура программного продукта (Рисунок 1).
Размещено на http://www.allbest.ru/
Рисунок 1 - Структурная схема проекта
Титульная форма (Рисунок 2) загружается автоматически при запуске программы. На форме располагаются кнопки навигации «О кодировании», «Выход» и «О программе». С помощью компонент Image загружена фоновая картинка.
Рисунок 2 - Главная форма
При нажатии на кнопку навигации «О кодировании», находящейся на главном меню (Рисунок 3) выводится новое окно. На этой форме размещен компонент WebBrowser, в который загружается теоретический материал о методе кодирования с помощью шифрующих таблиц.
procedure TForm3.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('C:/1.htm');
end;
Так же на форме находится кнопка «Скрыть», по нажатию которой данное окно закрывается и пользователь возвращается на главную форму.
procedure TForm3.Button1Click(Sender: TObject);
begin
Form3.Close;
end;
Рисунок 3-Форма «О кодировании»
Дополнительный элемент меню «О программе» на титульной форме выводит информацию о разработчике программы (Рисунок 4 ).
procedure TForm1.N2Click(Sender: TObject);
begin
Application.Title:='О программе';
ShowMessage('Программа выполнена студенткой группы ВТ-41-09 Онбоевой Аленой');
end;
Рисунок 4 - Кнопка навигации «О программе»
На главной форме «Зашифровка данных» производится ввод начальных данных необходимых для непосредственного шифрования. Необходимо заполнить все поля, иначе программа не будет работать. В поле размер шифрования вводим числовое значение (Рисунок 5).
Рисунок 5 - Ввод размера шифрования
После вводится ключевое слово по которому производится фильтрация таблицы шифрования (Рисунок 6).
Далее заполняется поле непосредственно кодируемого сообщения (Рисунок 7).
После нажатия кнопки «Кодировать» пользователю выводится окно с промежуточными данными, а на главной форме - зашифрованное сообщение (Рисунок 8).
Рисунок 6 - Ввод ключевого слова
Рисунок 7 - Ввод кодируемого сообщения
Рисунок 8 - Кодировка сообщения
Для того чтобы декодировать сообщение необходимо пользователю по аналогии заполнить первых два поля. А также последнее, в которое вводится сообщение для дешифрования (Рисунок 9).
Рисунок 9 - Ввод сообщения для дешифрования
При нажатии на кнопку «Декодировать» пользователю аналогично отображается форма с промежуточными данными и на главной форме расшифрованное сообщение (Рисунок 10).
Рисунок 10 - Дешифрование сообщения
2.3 Основные конструкции языка проектирования
Таблица 1.1
Основные конструкции языка, используемые в программе
Используемые конструкции, свойства, события и методы |
Описание |
|
1 |
2 |
|
Основные конструкции |
||
If<условие1>then [оператор1] Else[оператор2] |
Оператор условия |
|
Hide |
Скрыть |
|
Show |
Показать |
|
Close |
Закрыть |
|
MessageBox(`сообщение') |
Вылетающее сообщение |
|
ShowMessage('Hello '+#13#10+'World'); |
Показ сообщения разделенного на две строки |
|
Visible |
Видимость объекта |
|
Enabled |
Объект становится не активным |
|
While n<= m do begin, Тело цикла еnd; |
Повторяет инструкции, пока выполнится условие продолжения |
|
For i := 1 to n doтело цикла |
Начинает цикл, который выполняется конечное число раз |
Компонент Image дает отображение на форме графического изображения. Свойство Picture типа TPicture содержит отображаемую графическую сотавляющюю у которой тип - битовая матрица, пиктограммы, метафайла или определенного пользователем типа.
Компонент delphiMainMenu-- не визуальный компонент delphi (место размещения которого на форме не имеет значения для пользователя так как он увидит не сам компонент, а меню, с генерированное им), предназначенный для вывода главного меню на форме.
XPManifest использует стандартные визуальные компоненты для данной ОС.
Во многих современных программах необходимо работать с данными в формате HTML. В качестве средства для просмотра таких данных в Delphi применяется компонент TWebBrowser, который использует элемент управления ActiveXWebBrowser, входящий в состав MicrosoftInternetExplorer.
Таким образом, этот компонент имеется на любом компьютере, на котором установлен InternetExplorer. Все последние версии Windows содержат TWebBrowser в своем составе и без него практически неработоспособны.
Компонент Label предназначен для отображения статического текста, то есть надписей и меток на Форме, которые не меняются в течение всего времени работы программы.
Глава 3. Эксплуатационная документация
3.1 Руководство разработчика
Назначение разработки:
Основным назначением программы является облегчить процесс обучения учащихся дисциплины «Информатика и ИКТ», «Программно-аппаратные средства защиты информации», «Криптография».
Минимальные системные требования:
Центральный процессор P-3 450 МГц
30 Mb дискового пространства
Intel 400 МГц, AMD аналогичный
16 MbRAM, Video 16Mb
24xCDROM
USB 1.1 (если имеется, то в качестве носителя используется Flash-card)
Win 98/2000/XP
Рекомендуемые системные требования:
Центральный процессор P-3 700 МГц
50 Mb дискового пространства
Intel Celeron 800 MГц, АMD аналогичный
512 Mb RAM, Video 32Mb
32xCDROM
Win98/2000/XP
Данный программный продукт является бесплатным приложением и может свободно распространяться и передаваться третьему лицу.
Программный продукт находится на одном диске:
а) компилированная версия (.exe);
б) не компилированная версия (программный продукт, который можно запустить с помощью Borland Delphi 7), пояснительная записка, обучающий материал.
В качестве формуляра для хранения программы рекомендуется использовать CD-R диск, так как он является более долговечным, более ёмким и сравнительно дешевым и удалить программу с этого носителя нельзя.
Для достаточно долгого хранения носителя необходимо соблюдать следующие правила пользования:
а) Хранить при температуре от -5 до +550 С.
б) Относительная влажность 10-85%.
в) Не прикасаться пальцами к записывающей части диска.
г) Не клеить ничего на поверхность диска.
д) Диск не бросать, не гнуть, не царапать, не мочить.
е) Хранить диск в футляре.
Дипломная программа «Зашифровка данных» находится на CD-R носителе.
Для того чтобы запустить программу необходимо:
1. Вставить диск в дисковод
2. Зайти в «Мой компьютер» и выбрать диск «Зашифровка данных»;
3. Перенести папку с данной программой на диск С:\;
4. Нажать правой кнопкой мыши по файлу и создать ярлык на рабочем столе, затем запустить его.
Программа будет запущенна и на экране появится титульная форма проекта.
3.2 Руководство пользователя
Перед началом работы необходимо запустить приложение.
При запуске программы на экран выводится главная форма, которая содержит информацию о теме программы и о предмете.
На ней располагаются кнопки навигации «О кодировании», «Выход» и дополнительные элементы меню «О программе». «О кодировании» откроет форму, где будет подробно описано, как производится шифрование сообщений и дешифрование; «О программе» выведет сообщение, кем разработан данный проект; С помощью кнопки «Выход» будет выполнен выход из программы с выгрузкой из оперативной памяти.
Программа выполнена с применением программного продукта Borland Delphi 7, предназначена для зашифровки данных, методом: «Шифрующие таблицы с перестановкой по числовым или буквенным ключам».
Программа удобна для самостоятельного изучения. Также программа удобна тем, что в процессе шифрования пользователю показывает промежуточные результаты шифровки данных.
программа зашифровка delphi интерфейс
Заключение
Целью дипломной работы являлось создание программы «Зашифровка данных» с применением программного продукта Borland Delphi 7.
Для этого решены были следующие задачи:
а) выбран и структурирован обучающий материал;
б) выбрана среда разработки программы;
в) разработан эргономичный интерфейс, понятный обычному пользователю, дополнив его понятным руководством пользователя.
г) систематизированы, закреплены и расширены теоретические и практические знания по специальности.
Дипломная работа является завершающим этапом в изучении алгоритмов шифрования и дешифрования данных, широко применяются в компьютерной технике в системах сокрытия конфиденциальной и коммерческой информации от злонамеренного использования сторонними лицами. Главным принципом в них является условие, что передатчик и приемник заранее знают алгоритм шифрования, а также ключ к сообщению, без которых информация представляет собой всего лишь набор символов, не имеющих смысла. В ходе, которого осуществляется обучение применению полученных знаний и умений при решении комплексных задач, связанных со сферой профессиональной деятельности.
Данный программный продукт будет применяться студентами и преподавателями, что обеспечит повышение качества обучения по данной дисциплине.
На основании вышесказанного можно сделать вывод, что практическая цель работы достигнута, программа соответствует данной теме и всем заданным требованиям кафедры информатики ГБОУ СПО «БрПК».
Список использованных источников
1. Чеснокова О.В., Delphi 2007. Алгоритмы и программы. Самоучитель. - М.: НТ Пресс, 2008 - 368 с.
2. Бобровский С., Delphi 5: учебный курс, - СПб: Питер, 2001 - 640 с.
3. Карчевская М.П., Рамбургер О.Л., Тархов С.В., Хамзина Е.А., Разработка приложений в среде Borland Delphi: лабораторный практикум по дисциплине "Информатика",- Уфа: УГАТУ, 2005.
4. Электронная книга. Архангельский А.Я., 100 компонентов общего назначения библиотеки Delphi В.В. Фаронов., Система программирования DELPHI.,-СПб.: БХВ-Петербург, , 2005г.- 888 с.
5. А. Чиртик, В. Борисок, Ю. Корвель., Delphi. Трюки и эффекты.-СПб.- Питер, 2007г. -400 с.
6. А.В. Рудаков., Технология разработки программных продуктов -Москва.: Академия, 2010 г.-203 с.
7. Гатчин Ю.А., Коробейников А.Г. Основы криптографических алгоритмов. Учебное пособие. - СПб.: СПбГИТМО(ТУ), 2002. - 29 с.
8. Иванов М.А. Криптографические методы защиты информации в компьютерных системах и сетях. - М.: КУДИЦ-ОБРАЗ, 2001, - 368 с.
9. Левин М. Криптография. Руководство пользователя. - М.: Познавательная книга плюс, 2001 - 320 с.
10. Панасенко С.П. Алгоритмы шифрования. Специальный справочник BHV-Санкт-Петербург, 2009. - 576 с.
11. Гатчин Ю.А., Коробейников А. Г. Основы криптографических алгоритмов. Учебное пособие. - СПб.: СПбГИТМО(ТУ), 2002. - 29 с.
12. Главная редакция физико-математической литературы, 1974. 324 с.
13. Иванов М.А. Криптографические методы защиты информации в компьютерных системах и сетях. - М.: КУДИЦ-ОБРАЗ, 2001, - 368 с.
14. Кон П. Универсальная алгебра. - М.: Мир. - 1968. 351 с
15. Коробейников А.Г. Математические основы криптографии. Учебное пособие. СПб: СПб ГИТМО (ТУ), 2002. 41 с
16. Левин Максим. Криптография. Руководство пользователя. - М.: Познавательная книга плюс, 2001, - 320 с.
17. Левин М. Криптография. Руководство пользователя. - М.: Познавательная книга плюс, 2001, - 320 с.
18. Молдовян А.А., Молдовян Н.А., Советов Б. Я. Криптография. - СПб.: Издательство "Лань", 2001, - 224 с.
19. Панасенко С.П. Алгоритмы шифрования. Специальный справочник BHV-Санкт-Петербург, 2009. - 576с.
20. Смирнов В.И. Курс высшей математики, том III, часть I - М:. Наука,
21. Чмора А.Л. Современная прикладная криптография. 2-е изд. - М.: Гелиос, АРВ, 2002. - 256 с. ил.
Приложение А
Листинг программы
Титульная форма
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, jpeg, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
Image1: TImage;
Label4: TLabel;
Label6: TLabel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button2: TButton;
Label5: TLabel;
Edit4: TEdit;
Label7: TLabel;
lbl1: TLabel;
procedureFormClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3;
{$R *.dfm}
procedure TForm1.FormClick(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.Button1Click(Sender: TObject);
var k, i, j, i1, j1, m,m2,m3, n, d,zz, pp, l, l1 ,o, o1, dk: Integer;
//Строка для распечатки результатов.
StrTmp ,loz, alf, AlLoz, m1, slk, kod, kod2, t : String; sor: Char;
//Двумерный массив
Arr : array[1..100, 1..33] of String;
Sort : array[1..100, 1..33] of String;
begin
//Инициализируем генератор случайных чисел.
Randomize;
Form2.Memo1.Clear;
d:=1; o:=0;
dk:=1; i1:=1;
loz:=Edit2.Text;
slk:=Edit3.Text;
alf:='абвгдеёжзийклмнопростухфцчшщъыьэюя;
k:=StrToInt(Edit1.Text);
l:=length(loz);
//Удаление пробелов из кодируемого сообщения
for i:=1 to length(slk) do begin
if (slk[i]=' ') then
delete(slk,i,1);
end;
//Создание списка: ключ+сообщение
AlLoz:=loz+slk;
l1:=length(AlLoz);
//Задание массива размера
m1:=FloatToStr(l1/l);
if (m1[2]=',') then
begin
m1:=m1[1];
m:=StrToInt(m1);
m:=m+1;
end
else begin
if (m1[3]=',') then
begin
m1:=m1[1]+m1[2];
m:=StrToInt(m1);
m:=m+1;
end
else begin
if (m1[2]='') then
begin
m1:=m1[1];
m:=StrToInt(m1);
end;
end;
end;
//Генерируем массив
o1:=0;
for j:=1 to l do begin
if o1<=length(loz) then begin
o1:=o1+1;
Arr[1, j]:=loz[o1];
end;
end;
o:=0;
for j:=1 to length(loz) do begin
for i:=2 to m do begin
if o<=length(slk) then begin
o:=o+1;
Arr[i, j]:=slk[o];
end;
end;
end ;
//Распечатка исходного массива
Form2.Show;
Form2.Memo1.Lines.Add('Исходный массив:');
fori := 1 to m do begin
StrTmp:='';
for j := 1 to l do begin
StrTmp :=StrTmp + ' '+ Arr[i, j] ;
end;
Form2.Memo1.Lines.Add(StrTmp);
end;
//Сортировка ключевого слова по алфавиту
for i:=1 to Length(loz)-1 do
for j:=i+1 to Length(loz) do
ifloz[i]>loz[j] then
begin
sor:=loz[i];
loz[i]:=loz[j];
loz[j]:=sor;
end;
fori := 1 to m do begin
for j := 1 to l do begin
Sort[i,j]:=Arr[i,j];
end;
end;
//Сортировка первой строки
fori := 1 to m do begin
for j := 1 to l-1 do begin
for i1 := 1 to m do begin
for j1 := j+1 to l do begin
if (Sort[1, j]>Sort[1, j1]) then
begin
t:=Sort[i,j];
Sort[i, j] := Sort[i1, j1];
Sort[i1, j1] := t;
end;
end;
end;
end;
end;
//Сортировка остальных строк массива
for j := 1 to l do begin
for j1 := 1 to l do begin
if (Sort[1,j1]=Arr[1,j]) then
begin
for i:=2 to m do begin
Sort[i,j1]:=Arr[i,j] ;
end;
end;
end;
end;
//Распечатка отсортированного массива.
Form2.Show;
Form2.Memo1.Lines.Add('Отсортированный массив:');
fori := 1 to m do begin
StrTmp:='';
for j := 1 to l do begin
StrTmp :=StrTmp + ' '+ Sort[i, j] ;
end;
Form2.Memo1.Lines.Add(StrTmp);
end;
//Кодирование сообщения
i1:=0;
for i:=2 to m do begin
for j:=1 to l do begin
kod:=kod+Sort[i,j];
end;
end;
for i1 := 1 to Length(kod) do begin
if (i1 mod k)<>0 then
kod2:=kod2+kod[i1] else
kod2:=kod2+kod[i1]+' ';
end; Label3.Caption:=kod2;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
Application.Title:='О программе';
ShowMessage('Программа выполнена студенткой группы ВТ-41-09
Онбоевой Аленой');
end;
procedure TForm1.N1Click(Sender: TObject);
begin
Form3.Show;
end;
procedure TForm1.Button2Click(Sender: TObject);
vari, j, j1, l, l1, o, o1, m, k: integer;
decod, loz, loz2, AlLoz, m1, StrTmp: string; sor: Char;
//Двумерный массив
Arr : array[1..100, 1..33] of String;
Sort : array[1..100, 1..33] of String;
begin
//Инициализируем генератор случайных чисел.
Randomize;
decod:=Edit4.Text;
loz:=Edit2.Text;
loz2:=Edit2.Text;
l:=length(loz);
Form2.Memo1.Clear;
//Удаление пробелов из декодируемого сообщения
for i:=1 to length(decod) do begin
if (decod[i]=' ') then
delete(decod,i,1);
end;
//Сортировка ключевого слова по алфавиту
for i:=1 to Length(loz)-1 do
for j:=i+1 to Length(loz) do
ifloz[i]>loz[j] then
begin
sor:=loz[i];
loz[i]:=loz[j];
loz[j]:=sor;
end;
//Создание списка: ключ+сообщение
AlLoz:=loz+decod;
l1:=length(AlLoz);
//Задание размера массива
m1:=FloatToStr(l1/l);
if (m1[2]=',') then
begin
m1:=m1[1];
m:=StrToInt(m1);
m:=m+1;
end
else begin
if (m1[3]=',') then
begin
m1:=m1[1]+m1[2];
m:=StrToInt(m1);
m:=m+1;
end
else begin
if (m1[2]='') then
begin
m1:=m1[1];
m:=StrToInt(m1);
end;
end;
end;
//Генерируем массив
o1:=0;
for j:=1 to l do begin
if o1<=length(loz) then begin
o1:=o1+1;
Arr[1, j]:=loz[o1];
end;
end;
o:=0;
for i:=2 to m do begin
for j:=1 to length(loz) do begin
if o<=length(decod) then begin
o:=o+1;
Arr[i, j]:=decod[o];
end; end; end;
//Распечатка исходного массива
Form2.Show;
Form2.Memo1.Lines.Add('Исходный массив:');
fori := 1 to m do begin
StrTmp:='';
for j := 1 to l do begin
StrTmp :=StrTmp + ' '+ Arr[i, j] ;
end;
Form2.Memo1.Lines.Add(StrTmp);
end;
//Дублирование массивов
fori := 1 to m do begin
for j := 1 to l do begin
Sort[i,j]:=Arr[i,j];
end;
end;
//Сортировка первой строки массива
for j:=1 to l do begin
for i:=1 to l do begin
if (i=j) then
Sort[1,j]:=loz2[i];
end;
end;
//Сортировка остальных строк массива
for j := 1 to l do begin
for j1 := 1 to l do begin
if (Sort[1,j1]=Arr[1,j]) then
begin
for i:=2 to m do begin
Sort[i,j1]:=Arr[i,j] ;
end;
end;
end;
end;
//Распечатка отсортированного массива.
Form2.Show;
Form2.Memo1.Lines.Add('Отсортированный массив:');
fori := 1 to m do begin
StrTmp:='';
for j := 1 to l do begin
StrTmp :=StrTmp + ' '+ Sort[i, j] ;
end;
Form2.Memo1.Lines.Add(StrTmp);
end;
for j:=1 to l do begin
for i:=2 to m do begin
Label7.Caption:=Label7.Caption+Sort[i,j];
end;
end;
end;
end.
Массив генерации
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;
type
TForm2 = class(TForm)
Memo1: TMemo;
Image1: TImage;
procedureFormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1.Close;
end;
end.
О кодировании
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw, jpeg, ExtCtrls;
type
TForm3 = class(TForm)
WebBrowser1: TWebBrowser;
Button1: TButton;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedureFormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
Form3.Close;
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('C:/1.htm');
end;
end.
Приложение Б
Диск с программой
1) компилированная версия (.exe);
2) не компилированная версия (программный продукт, который можно запустить с помощью Borland Delphi 7);
3) пояснительная записка;
4) презентация
Размещено на Allbest.ru
Подобные документы
Составление программы для зашифровки текста (не более 255 символов), с использованием одного перемешанного алфавита, полученного случайной перестановкой всех букв исходного алфавита. Создание меню-интерфейса для навигации пользователя по программе.
курсовая работа [496,2 K], добавлен 17.05.2015Программа поиска в базе данных в среде Borland Delphi 7.0 Enterprise. Условия и блок-схемы задач. Ввод массива. Текст программ в Delphi, в Паскаль. Текст программы поиска в базе данных. Кодирование материала. Изготовление реляционной базы данных.
практическая работа [27,6 K], добавлен 11.10.2008Создание электронного учебника "Визуальные и не визуальные компоненты Delphi". Основные требования к организации интерфейса. Логическая структура и технические средства. Аппаратно–программный комплекс. Применение программы, тестирование и отладка.
курсовая работа [39,5 K], добавлен 03.12.2012Разработка информационной системы административного управления. Выбор языка и среды программирования. Структура взаимодействия информации. Требования к программно-аппаратному окружению. Создание программы в Delphi и связывание ее с базой данных.
курсовая работа [1010,9 K], добавлен 08.10.2015Сведения о языке Delphi. Основы разработки баз данных. Разработка конвертера таблицы Excel, интерфейса главной формы, модуля отображения, системы поиска информации, средств редактирования. Системные требования программы. Инструкция по эксплуатации.
курсовая работа [2,6 M], добавлен 29.12.2008Проектирование базы данных учета посещаемости и среда разработки программного продукта. Работа с базами данных Access в Delphi: компоненты доступа к данным, создание отчетов в Delphi и запросов на языке SQL. Программа и эксплуатационная документация.
дипломная работа [53,2 K], добавлен 16.07.2008Входные и выходные данные программы. Выбор языка программирования. Рабочая среда Delphi 7. Правила игры "Кости". Разработка пользовательского интерфейса. Экономическое обоснование программного продукта. Расчет расходов на содержание и эксплуатацию.
дипломная работа [960,6 K], добавлен 07.02.2016Особенности проектирования программы на языке С++ для обработки данных из таблиц базы данных. Основные функции программы, создание концептуальной модели базы данных и диаграммы классов, разработка интерфейса пользователя и запросов к базе данных.
курсовая работа [2,1 M], добавлен 08.06.2012Характеристика системы программирования. Главные составные части Delphi. Интерфейс программного приложения. Результаты работы программы. Руководство системного программиста и оператора. Язык программирования Delphi, среда компилятора Borland 7.0.
курсовая работа [1,6 M], добавлен 29.05.2013Анализ предметной области разрабатываемого программного продукта. Разработка интерфейса пользователя и структурной схемы игровой программы "Крестики-нолики". Отладка и тестирование. Проведение исследования компонентов программной среды Borland Delphi 6.0.
курсовая работа [660,4 K], добавлен 08.03.2015