Шифрование данных

Автор: Пользователь скрыл имя, 02 Декабря 2011 в 18:34, курсовая работа

Описание работы

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

Содержание

ВВЕДЕНИЕ 2
1. ОСНОВНЫЕ ПОНЯТИЯ ЗАЩИТЫ ИНФОРМАЦИИ 4
1.1. Принципы ООП 5
2. АНАЛИЗ ТЕХНИЧЕСКОГО ЗАДАНИЯ И ПОСТАНОВКА ЗАДАЧИ ПРОЕКТИРОВАНИЯ. 12
2.1. Постановка задачи. 12
2.2. Разработка экранных форм и алгоритма программы 13
2.3. Описание программы. 14
Заключение. 16
Список использованной литературы. 17
Приложение 1. 18

Работа содержит 1 файл

Основными понятиями объектно.docx

— 92.26 Кб (Скачать)

    Begin

    . . .

    End;

    Var

    01, 02, 03: TSimpleObject; {создаем три объекта  – то есть набора полей}

    xl,yl: integer;

    Begin

    . . .

    01.SetXY(10,20) ; {устанавливаем значения полей  первого объекта}

    02.SetXY(ll,22) ; { устанавливаем значения полей  второго объекта }

    03.SetXY (-10, 0) ; { устанавливаем значения полей  третьего объекта }

    02.GetXY(xl,yl); {xl,yl примут значения 11,22, т.к. работаем  с объектом 02}

    End;

    Как видно из примера, указатель Self явно используется крайне редко, хотя и постоянно  подразумевается.

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

    Разрешено опережающее объявление классов, как  в следующем пример

    Type

    TFirstObject = class;

    TSecondObject = class (TOsject);

    First: TFirstOsject;

    . . .

    end;

    TFirstObject = class (TObject)

    . . .

    end;

    Чтобы использовать новый тип в программе, нужно, как минимум, объявить переменную этого типа, которая как уже  было сказано называется экземпляром  класса или объектом:

    Var

    AMyObject: TMyObject;

    Вызов методов класса и доступ к его  полям осуществляется аналогично доступу  к полям записи. Например:

    AMyObject.Field:=10;

    Writeln(AMyObject.MyMethod);

    Между терминами класс и объект существует четка граница: класс - это описание, объект - то, что создано в соответствии с этим описанием.

    Рассмотрим  следующий пример: стек, который  является широко распространенным в  программировании объектом. Стек, как  известно можно организовать либо на основе динамического списка, либо путем использования статического или динамического массива. Но, в  любом случае операции над данными  будут те же. А именно: добавить элемент  в стек, прочитать элемент из стека, если он не пуст. Эти две операции будут методами класса.

    TObStack= class(TObject)

    procedure InStack(Elem:TElem);

    function OutStack(var Elem:TElem):boolean;

    . . .

    End;

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

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

    procedure InStack(var Stack:TStack,var TopStack:integer, Elem: TElem);

    function OutStack(var Stack:TStack,var TopStack:integer, var Elem: TElem) : boolean;

    При использовании динамики:

    procedure InStack(var TopStack:TTopStack, Elem:TElem);

    function OutStack(var TopStack:TTopStack, var Elem: TElem) :boolean;

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

    Описание  объекта не является полным, отсутствуют  элементы, отвечающие за создание и  уничтожение объекта. .

    Описание  объекта также не является полным.

    Использование:

    Var

    DSStack:TDObStack;

    SStack:TSObStack;

    . . .

    A:TElem;

    Begin

    . . .

    DStack.InStack(a);

    SStack.InStack(a);

    . . .

    if not (DStack.OutStack(a)) writeln(‘Динамический стек пуст’);

    if not (SStack.OutStack(a)) writeln(‘Статический стек пуст’);

    . . .

    End;

    Программисту, использующему любой из этих объектов достаточно создать один или несколько  экземпляров объекта (как именно рассмотрим далее) и вызывать нужный метод. Особенности реализации стека  при этом остаются скрытыми и не оказывают влияния на написание  программы. Связь между конкретным набором данных (конкретным стеком с занесенными в него элементами) и вызываемыми методами, как уже  было сказано ранее будет выполняться  автоматически за счет того, что  при вызове им передается указатель  на тот объект, который их вызвал. Рассмотрим далее, что такое свойство.

    Правило инкапсуляции утверждает, что для  обеспечения надежности нежелателен  прямой доступ к полям объекта: чтение и обновление их содержимого должно производиться вызовом соответствующих  методов. В языке Object Pascal имеется  соответствующая конструкция, которая  позволяет запретить прямой доступ к полю - пользователь объекта может быть полностью отгорожен от полей при помощи свойств. Обычно свойство определяется тремя элементами: объявлением собственно свойства и двумя методами, которые осуществляют его чтение и запись 
 
 

 

    

  1. АНАЛИЗ  ТЕХНИЧЕСКОГО ЗАДАНИЯ  И ПОСТАНОВКА ЗАДАЧИ ПРОЕКТИРОВАНИЯ.
    1. Постановка  задачи.

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

    Программа должна обладать интуитивно понятным интерфейсом и иметь возможность  кодирования\декодирования текстовой  информации.

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

    «Borland Delphi» может использовать объекты, содержащее множество однотипных элементов, которые называются массивами. Массив – это формальное обледенение нескольких однотипных объектов (чисел, символов, строк и т.п.), рассматриваемое как единое целое. Для хранения содержимого типизированного файла и обработки удобно использовать массивы с элементами типа запись. Удобство массивов заключается в том, что можно обращаться к отдельному элементу массива по номеру. Дополнительное удобство привносят динамические массивы, отличительной особенностью которых является возможность динамического изменения размерности массива, то есть динамическое выделение или освобождение памяти под требуемое в данный момент количество элементов массива.

    Поскольку данная программа является приложением Windows, то для ее реализации будем  использовать стандартный подход при  написании программ под Windows с использованием графического интерфейса. Так отдельно создадим форму с визуальными  компонентами, для различных визуальных компонент сопоставляем процедуры  – обработчики. Далее, как только происходит событие на каком-то из визуальных компонент, (щелчок мыши, нажатие на кнопку или пункт меню), операционная система посылает приложению соответствующее  сообщение, и запускается соответствующий  обработчик именно для этого события. Тогда решение задачи можно разбить  на 3 этапа:

  1. Разработка визуального интерфейса пользователя, на основе экранных форм среды Delphi и визуальных компонент, предназначенных для ввода исходных данных, запуска действий по обработке исходных данных, вывода результата обработки, вывода результатов на экранную форму. Еще можно предусмотреть вывод информации разработчике и задании курсового проекта.
  2. Разработка обработчиков событий от элементов экранных форм, разработка алгоритмов и программных кодов действий обработки текстового файла согласно заданию.
  3. Подготовка данных и отладка программы.

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

  • загрузки и сохранения файла;
  • просмотра исходного и шифрованного сообщения;
  • удобный и понятный интерфейс;
  • несколько видов шифрования информации.
    1. Разработка  экранных форм и алгоритма  программы

    Как было описано выше, дня начала необходимо разработать внешний вид окна программы. Внешне окно будет разделено на три функциональные части: в двух из них будет отображаться текст(исходный и прошедший кодировку), а в правой части будут располагаться вкладки выбора и функциональные кнопки. Так же в верхней части окна будет располагаться традиционная для Windows – приложений строка меню. 

    

    Рис.1 Внешний вид окна программы.

    Таблица 1.1. – Объекты экранной формы, отображенной на рис.1.

    Имя     Назначение
    RichEdit1     Поле  ввода исходного сообщения
    RichEdit2     Поле  вывода сообщения после кодировки
    RadioButton1- RadioButton8     Пункт выбора способа шифрования\дешифрования
    Button1     Кнопка  запуска процесса
    TabSheet1     Вкладка выбора действий
    TabSheet2     Вкладка выбора действий
    TabSheet3     Вкладка выбора действий
    1. Описание  программы.

    После формирования интерфейса и  написания  кода программы (приложенного к данной курсовой работе в Приложении 1). На выходе мы получаем исполняемый файл DeCoder.exe размером 602112 байт.

    При запуске данного файла открывает  диалоговое окно. Можно либо вести  исходный текст вручную, либо открыть  необходимый текстовый документ на жестком диске. Для этого необходимо зайти в меню «Файл»  и выбрать  пункт «Открыть. Его содержимое автоматически  отобразится в верхней части  рабочего окна программы.

    После этого необходимо выбрать наиболее подходящий способ шифрования и нажать кнопку «Начать»

    В нижней части окна появится зашифрованное  сообщение, которое можно сохранить  в файл.

    В меню «Дополнительно» содержится информация о разработчике программы.

 

    

    Заключение.

 

    Данный  курсовой проект был выполнен в полном соответствии поставленному заданию  и отлажен в среде DELPHI 7.0. В ходе выполнения курсовой работы была разработана  программа для шифрования файлов и текстовых сообщений с графическим интерфейсом.

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

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

 

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

  1. А.Федоров. Delphi 2.0 для всех. М.: ТОО фирма "КомпьютерПресс", 1997. 464 с. введение в Delphi "с нуля". Может служить начальным пособием, но кое-какие куски книги доступны и нужны только системным программистам. К рекомендациям и примерам данной книги стоит относиться с большой осторожностью: автор часто придумывает в качестве примеров проблемы, которые не нужно решать.
  2. П.Г.Дарахвелидзе, Е.П.Марков.Delphi4. Среда визуального программирования.-СПб.:БХВ – Санкт-Петербург, 1999. – 816 с.      профессиональное справочное руководство. Не заменяет, а дополняет предыдущую книгу. Незаменима при разработке ActiveX и приложений на основе COM.
  3. Молдовян А. А., Молдовян Н. А., Советов Б. Я. Криптография. СПб.: «Лань», 2000.
  4. Рябко Б.Я., Фионов А.Н. Основы современной криптографии для специалистов в информационных технологиях. М.: Научный мир, 2004. ISBN 5-89176-233-1.

Информация о работе Шифрование данных