Реализация алгоритма шифрования DES на языке Delphi

Стандарт шифрования данных DES для защиты от несанкционированного доступа к информации в государственных и коммерческих организациях США. Особенности реализации алгоритма шифрования DES на языке Delphi. Разработка интерфейса программы и алгоритма работы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 16.09.2017
Размер файла 115,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования Республики Беларусь

Учреждение образования «Белорусский Государственный университет информатики и радиоэлектроники»

Филиал «Минский радиотехнический колледж»

Реализация алгоритма шифрования DES на языке Delphi

Содержание

Введение

1. Постановка задачи

1.1 Описание предметной области

1.2 Обзор существующих решений

1.3 Входные и входные данные

2. Проектирование задачи

2.1 Диаграмма вариантов использования

2.2 Разработка алгоритма работы программы

2.3 Разработка алгоритмов решения задачи

3. Программная реализация

3.1 Выбор и обоснование инструментов разработки

3.2 Структура программы

3.3 Описание разработанных процедур и функций

4. Применение программы

4.1 Назначение и условие применения программы

4.2 Руководство пользователя

Заключение

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

Введение

Стандарт шифрования данных DES опубликован в 1977 г. Национальным бюро стандартом США.

Стандарт DES предназначен для защиты от несанкционированного доступа к важной, но несекретной информации в государственных и коммерческих организациях США. Алгоритм, положенный в основу стандарта, распространялся достаточно быстро, и уже в 1980 г. Был одобрен Национальным институтом стандартов и технологий США. С этого момента DES превращается в стандарт не только по названию, но и фактически. Появляются программное обеспечение и специализированные микро ЭВМ, предназначенные для шифрования и расшифрования информации в сетях передачи данных.

Симметричные криптосистемы (также симметричное шифрование, симметричные шифры) -- способ шифрования, в котором для (за)шифрования и расшифровывания применяется один и тот же криптографический ключ. До изобретения схемы асимметричного шифрования единственным существовавшим способом являлось симметричное шифрование. Ключ алгоритма должен сохраняться в секрете обеими сторонами. Ключ алгоритма выбирается сторонами до начала обмена сообщениями.

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

Классическим примером таких алгоритмов являются симметричные криптографические алгоритмы, перечисленные ниже:

- простая подстановка;

- одиночная перестановка по ключу;

- двойная перестановка;

- перестановка "Магический квадрат";

- простая перестановка.

Полная утрата всех статистических закономерностей исходного сообщения является важным требованием к симметричному шифру. Для этого шифр должен иметь «эффект лавины» -- должно происходить сильное изменение шифроблока при 1битном изменении входных данных (в идеале должны меняться значения 1/2 бит шифроблока).

Также важным требованием является отсутствие линейности (то есть условия а(ф) чщк а(и) = а(ф чщк и))б в противном случае облегчается применение дифференциального криптоанализа к шифру.

В настоящее время симметричные шифры -- это блочные шифры. Обрабатывают информацию блоками определённой длины (обычно 64, 128 бит), применяя к блоку ключ в установленном порядке, как правило, несколькими циклами перемешивания и подстановки, называемыми раундами. Результатом повторения раундов является лавинный эффект -- нарастающая потеря соответствия битов между блоками открытых и зашифрованных данных.

- поточные шифры, в которых шифрование проводится над каждым битом либо байтом исходного (открытого) текста с использованием гаммирования. Поточный шифр может быть легко создан на основе блочного (например, ГОСТ 28147-89 в режиме гаммирования), запущенного в специальном режиме.

Существует множество (не менее двух десятков) алгоритмов симметричных шифров, существенными параметрами которых являются:

- стойкость;

- длина ключа;

- число раундов;

- длина обрабатываемого блока;

- сложность аппаратной/программной реализации;

- сложность преобразования.

В данном курсовом проекте предлагается программная реализация алгоритма шифровании DES(режим ЕСВ).

шифрование алгоритм интерфейс

1. Постановка задачи

1.1 Описание предметной области

В связи с явной сетевой направленностью языка Java потребовалось уделить должное внимание средствам защиты. В первую очередь это касается пересылки важных данных между, например, клиентом и сервером, а также запуска программ или апплетов. Такие средства были разработаны и встроены в набор стандартных библиотек (JDK security API).

Примером необходимости защиты может служить желание пользователя-получателя иметь возможность верификации, что дает определенные гарантии подлинности документа или кода. В качестве подписываемого объекта могут выступать апплеты, которые широко распространены в Интернете. В результате у получателя появляется уверенность, что информация получена именно от ожидаемого отправителя, а не возможного злоумышленника, и не была изменена в процессе пересылки. Для обеспечения такого рода безопасности служат цифровые подписи и сертификаты.

Симметрическое шифрование - способ шифрования, в котором для (за)шифрования и расшифрования применяется один и тот же криптографический ключ.

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

1.2 Обзор существующих решений

Существует только одно решение данной задачи с помощью сетей Фейстеля. Сеть Фейстеля -- это общий метод преобразования произвольной функции F в перестановку на множестве блоков. Она состоит из циклически повторяющихся ячеек -- раундов. Внутри каждого раунда блок открытого текста разделяется на две равные части. Раундовая функция берет одну половину (на рис. правую), преобразует её с использованием ключа Ki и объединяет результат с второй половиной посредством операции исключающее ИЛИ (XOR). Этот ключ задаётся первоначальным ключом K и различен для каждого раунда. Далее половинки меняются местами и подаются на следующий раунд.

1.3 Входные и входные данные

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

2. Проектирование задачи

2.1 Диаграмма вариантов использования

Диаграмма вариантов использования - это диаграмма, на которой изображаются отношения между актерами и вариантами использования.

Диаграмма вариантов использования - это исходное концептуальное представление или концептуальная модель системы в процессе ее проектирования и разработки. Создание диаграммы вариантов использования имеет следующие цели:

- Определить общие границы и контекст моделируемой предметной области на начальных этапах проектирования системы;

- Сформулировать общие требования к функциональному поведению проектируемой системы;

- Разработать исходную концептуальную модель системы для ее последующей детализации в форме логических и физических моделей;

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

В данном случае варианты использования - это те действия, которые пользователь

может осуществлять по отношению к данному продукту (смотрите рисунок 2.1).

Диаграмма 2.1 Варианты использования программы

2.2 Разработка алгоритма работы программы

Для реализации рекурсивного алгоритма «Шифр DES» необходимо решить следующие задачи:

- разработать рациональный алгоритм для эффективной работы программы;

- изучить теоретический материал по данной теме;

- разработать красивый, а главное - удобный интерфейс программы;

- раскрыть полностью свой творческий и профессиональный потенциал.

2.3 Разработка алгоритмов решения задачи

Для того, чтобы разработать эффективный алгоритм решения задачи, необходимо разобраться как решается эта задача.

DES осуществляет шифрование 64-битовых блоков данных с помощью 56-битового ключа. Расшифрование в DES является операцией обратной шифрованию и выполняется путем повторения операций шифрования в обратной последовательности (несмотря на кажущуюся очевидность, так делается далеко не всегда. Позже мы рассмотрим шифры, в которых шифрование и расшифрование осуществляются по разным алгоритмам).

Процесс шифрования каждого 64-битового блока исходных данных можно разделить на три этапа:

· начальная подготовка блока данных;

· 16 раундов "основного цикла";

· конечная обработка блока данных.

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

На следующем (основном) этапе блок делится на две части (ветви) по 32 бита каждая. Правая ветвь преобразуется с использованием некоторой функции F и соответствующего частичного ключа, получаемого из основного ключа шифрования по специальному алгоритму преобразования ключей. Затем производится обмен данными между левой и правой ветвями блока. Это повторяется в цикле 16 раз.

Наконец, на третьем этапе выполняется перестановка результата, полученного после шестнадцати шагов основного цикла. Эта перестановка обратна начальной перестановке.

3. Программная реализация

3.1 Выбор и обоснование инструментов разработки

Для того, чтобы начать работу, необходимо выбрать для этого подходящую среду, ведь от неё тоже будет зависеть качество продукта, в данном случае - курсового проекта. Среда в компьютере - программные средства, которые представляют собой совокупность программ, которые имеют определенное назначение и предназначены для работы на персональном компьютере.

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

операционная система Windows 10;

визуальная среда разработки программ Borland Delphi 7.0 Lite Edition;

текстовый редактор Microsoft Word.

Для работы была выбрана операционная система Windows 10. Среди прочих причин использования операционной системы Windows стоит отметить наличие большого выбора хорошего бесплатного программного обеспечения под нее. Одним из таких примеров может служить текстовый процессор Microsoft Word, который использовался мной для написания пояснительной записки и чтения различных материалов, которые помогали мне при написании курсового проекта. Word предоставляет возможность быстро и качественно обрабатывать текстовую и графическую информацию, предоставляет средства для работы с таблицами. Данное программное обеспечение помогло оформить пояснительную записку, особенно инструмент стили форматирования. Благодаря нему параметры задаются один раз и больше не требуется постоянное форматирование текста под ГОСТ.

Для написания данной программы выбрана среда разработки Borland Delphi 7 Lite Edition под операционную систему Microsoft Windows-среды.

Преимущества языка программирования Delphi:

удобный интерфейс программного обеспечения;

низкие программные требования приложения;

возможность создания своего собственного и неповторимого интерфейса программы;

удобная система отладки программы (возможность пошагового просмотра выполнения программы).

3.2 Структура программы

При создании форм приложения был использован класс - TForm.

На формах располагаются следующие компоненты:

TButton;

TLabel;

TEdit

Button используется для реализации в программе команд с помощью обработчика события OnClick этого компонента. Один и тот же обработчик может обрабатывать события нескольких компонентов TButton (да и не только TButton, но и даже компонентов других типов). Для определения того, событие какого именно компонента нужно обрабатывать, используется встроенная переменная Sender типа TObject, обозначающая объект, вызвавший данное событие.

Delphi компонент Label предназначен для отображения статического текста, то есть надписей и меток на форме, которые не меняются в течение всего времени работы программы. Конечно, текст надписи, отображаемый компонентом Label можно изменить, но не непосредственно, а только программно. Свойством компонента Label, которое используется для задания отображаемого текста, является Caption.

Компонент Delphi Edit представляет собой однострочное текстовое поле, служащее для ввода данных пользователем. Основным свойством компонента Delphi Edit, передающим введённую информацию, является свойство Edit1.Text типа String. При изучении работы с Delphi Edit советую посетить страничку работа со строками Delphi, так как там описываются функции Delphi для работы с данными, представленными в текстовой форме.

3.3 Описание разработанных процедур и функций

Рассмотрим раздел «Оптимальное решение», который включает в себя следующие процедуры:

Function ConToBin выполняет преобразование в бинарный вид.

Function ConToInt выполняет преобразование в числовой вид.

Function MakePerest1, Function MakePerest2 выполняют начальную и конечную перестановку соответственно.

Function GetHighPart, Function GetLowPart выполняют получение первых и последних 32 бит соответственно.

Function MakeXOR операция исключающая ИЛИ.

Function ShiftLeft - функция сдвига битов

Рrocedure MakeSubKeys - процедура для использования подключей.

Function StrToBin, Function BinToStr - фукнция для преобразования текста в бинарный вид, и из бинарного в текстовый.

Function CodeDES- функция реализующая сам алгоритм.

procedure TForm1.cmdCodeClick(Sender: TObject);- кнопка для реализации шифрования.

Код программы представлен в приложении Б.

4. Применение программы

4.1 Назначение и условие применения программы

Данная программа представляет собой реализацию алгоритма «Шифр DES».

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

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

4.2 Руководство пользователя

При запуске программы пользователь может ознакомиться с понятием по данному шифру, выбрав в меню раздел «DES -это ». Чтобы вернуться в главное меню необходимо воспользоваться кнопкой «ОК».

Пользоваться данной программой очень легко. На форме расположены все компоненты для работы. Чтобы зашифровать текст для начала нужно ввести пароль в специальную форму, а также и текст, далее нажать кнопку «Шифровать». В итоге получиться зашифрованный текст. Для расшифровки проводятся те же действия. Главный момент в расшифровки текста то, что пароль при шифровке и расшифровки должен быть одинаковый. Если пароль совпадать не будет, расшифровать текст не получится.

Наглядный пример программы представлен на рисунках 4.2.1, 4.2.2, 4.2.3.

На рисунке 4.2.1 представлена форма программы с помощью которой реализуется шифр.

На рисунке 4.2.2 даётся определения, что такое шифр DES.

На рисунке 4.2.3 представлен пример шифрования.

Рис. 4.2.1

Рис. 4.2.2

Рис. 4.2.3

Заключение

Цель данного курсового проекта - реализация алгоритма шифрования DES на языке Delphi.

Передо мной стояли следующие задачи:

- разработать рациональный алгоритм для эффективной работы программы;

- изучить теоретический материал по данной теме;

- разработать удобный интерфейс программы;

- раскрыть полностью свой творческий и профессиональный потенциал.

В первом разделе «Постановка задачи» я описал предметную область, так же были перечислены существующие решения данной задачи и входные/выходные данные. Описание алгоритмов работы программы и алгоритмов решения задачи, также диаграмма вариантов использования данного программного средства представлена в разделе «Проектирование задачи». Выбор и обоснование инструментов разработки программы, ее структура и все разработанные процедуры и функции были представлены в разделе «Программная реализация». В заключительном, четвертом разделе «Применение программы» было перечислено назначение и условие применения программы, руководство по использованию каждой функции приложения.

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

С помощью данного курсового проекта мне удалось развить и получить новые навыки работы с языком Delphi. Этим польза проекта не ограничилась, эта работа помогла мне самостоятельно проанализировать ход работы и разбить её на подзадачи, которые необходимо было реализовывать. Это может пригодиться не только при написании подобных работ, но и в обычной жизни для анализа различных ситуаций.

В результате проделанной работы мне удалось реализовать поставленную задачу.

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

1. Ященко В.В., Справочное пособие: Введение в криптографию, 2016 г. --235 с: ил.

2. Харин Ю.С., Берник В.И., Матаеев Г.В., Математические основы криптологии, Минск, 1999. - 309 с., ил;

3. Алферов А.П., Основы криптографии, 2002. - 469 с.: цв. ил.;

4. Культин Н.Б. Delphi в задачах и примерах. - СПб.:БХВ-Петербург, 2003. - 288 с.: ил.

Размещено на Allbest.ru

...

Подобные документы

  • Симметричные и асиметричные методы шифрования. Шифрование с помощью датчика псевдослучайных чисел. Алгоритм шифрования DES. Российский стандарт цифровой подписи. Описание шифрования исходного сообщения асимметричным методом с открытым ключом RSA.

    курсовая работа [101,1 K], добавлен 09.03.2009

  • Разработка приложения для шифрования данных с помощью алгоритма DES5: процесс шифрования, расшифрования, получение ключей. Спецификация программы, процедуры и функции; описание интерфейса пользователя. Реализация задачи в среде программирования DELPHI.

    курсовая работа [812,6 K], добавлен 27.03.2012

  • Симметричные криптосистемы; алгоритмы шифрования и дешифрования данных, их применение в компьютерной технике в системах защиты конфиденциальной и коммерческой информации. Основные режимы работы алгоритма DES, разработка программной реализации ключа.

    курсовая работа [129,6 K], добавлен 17.02.2011

  • Исследование симметричных алгоритмов блочного шифрования. Минусы и плюсы алгоритма IDEA. Разработка программы аутентификации пользователя и сообщений на основе алгоритма IDEA. Выбор языка программирования. Тестирование и реализация программного средства.

    курсовая работа [314,2 K], добавлен 27.01.2015

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

    контрольная работа [56,5 K], добавлен 26.09.2012

  • История возникновения алгоритма симметричного шифрования, условия и особенности его применения на современном этапе. Принципы и функции исследуемой технологии. Анализ главных преимуществ и недостатков использования алгоритма, оценка его уязвимости.

    курсовая работа [301,9 K], добавлен 29.10.2017

  • Шифрование как метод защиты информации. История развития криптологии. Классификация алгоритмов шифрования, симметричные и асимметричные алгоритмы. Использование инструментов криптографии в Delphi-приложениях. Краткая характеристика среды Delphi 7.

    курсовая работа [48,5 K], добавлен 19.12.2009

  • Реализация алгоритма DES и режимов шифрования для любой длины сообщения и любой длины ключа. Шифрование сообщений различной длины и ключа с замериванием времени и скорости шифрования. Реализация алгоритма RSA. Сохранение зашифрованного файла на диск.

    курсовая работа [398,4 K], добавлен 26.01.2010

  • Симметричные криптосистемы как способ шифрования, в котором для шифрования и расшифровывания применяется один и тот же криптографический ключ. Разбор и реализация шифрования алгоритма: простая и двойная перестановка, перестановка "магический квадрат".

    курсовая работа [3,3 M], добавлен 11.03.2013

  • Написание программы для работы с клиентами средствами языка Delphi, которая предусматривает ввод, редактирование и удаление информации. Разработка алгоритма решения задачи, описание переменных, вспомогательных процедур, входных и выходных данных.

    курсовая работа [355,7 K], добавлен 21.09.2010

  • Разработка программы, реализующей процедуры шифрования и расшифрования текста по стандарту DES (Data Encryption Standard). Структура алгоритма шифрования, схема выработки ключевых элементов. Использование криптографического программного средства.

    курсовая работа [1,7 M], добавлен 15.06.2013

  • Разработка программы тестирования студентов по MS PowerPoint с кодом на языке Delphi. Создание алгоритма для решения функциональных требований задачи. Описание переменных, вспомогательных процедур, входных и выходных данных для реализации программы.

    курсовая работа [1,5 M], добавлен 21.09.2010

  • Автоматизация процесса шифрования на базе современных информационных технологий. Криптографические средства защиты. Управление криптографическими ключами. Сравнение симметричных и асимметричных алгоритмов шифрования. Программы шифрования информации.

    курсовая работа [795,7 K], добавлен 02.12.2014

  • Программа на языке Turbo Pascal для шифрования данных с помощью шифра Тритемиуса. Входные, выходные данные. Схема алгоритма и текст программы. Порядок ввода исходных данных и описание получаемых результатов. Тестовых задания и анализ их функционирования.

    курсовая работа [4,0 M], добавлен 06.01.2011

  • Разработка программы шифрования данных с использованием алгоритма DES. Структура алгоритма, режимы его работы. Электронный шифровальный блокнот. Цепочка цифровых блокнотов. Цифровая и внешняя обратная связь. Структура окна: функции основных кнопок.

    лабораторная работа [830,3 K], добавлен 28.04.2014

  • Проблема скрытия и защиты информации от несанкционированного использования. История создания шифра. Решения задачи шифрования текста и кодирования данных. Тестирование полученного приложения и анализ работы программы с точки зрения пользователя.

    курсовая работа [3,0 M], добавлен 24.11.2013

  • Схема работы и требования к программам шифрования и дешифрования. Алгоритмы и тексты программы шифрования и программы дешифрования, выполненные на языке программирования C/C++. Содержание файла с исходным текстом, с шифротекстом, с дешифрованным текстом.

    курсовая работа [24,7 K], добавлен 20.10.2014

  • Симметрическое шифрование как способ шифрования, в котором применяется один и тот же криптографический ключ. Функции стандартного диалогового окна открытия и сохранения файла. Характерная схема действий при генерации подписи. Цифровая подпись файла.

    курсовая работа [641,5 K], добавлен 14.06.2011

  • Стандарт шифрования Advanced Encryption Standard как официальный стандарт правительства США для симметричного шифрования. Таблицы подстановки для S-Box и InvS-Box. Преобразование MixColumns, SubWord, RotWord. Процедура расширения ключа 128, 192, 256 бит.

    презентация [2,2 M], добавлен 12.12.2013

  • Разработка программы обработки типизированных файлов с кодом на языке Object Pascal, с использованием компонентов Delphi для ввода и вывода данных. Разработка экранных форм и алгоритма программы. Описание программных модулей и инструкция оператору.

    курсовая работа [1,5 M], добавлен 08.02.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.