Защита информации методом шифрования и кодирования

Автор работы: Пользователь скрыл имя, 21 Ноября 2011 в 12:41, курсовая работа

Краткое описание

Цель: исследование криптографического метода защиты информации.
Задачи:
Рассмотреть различные методы защиты информации;
Подробно изучить криптографический метод;
Выявить области применения кодирования инфрмации.

Содержание работы

Введение……………………………………………………………2
Глава I Современные методы защиты информации…………….3
§1. Классификация методов защиты информации………………3
1.1. Организационные методы…………………………………….3
1.2. Технические методы………………………………………….6
§2 Криптография………………………………………………….10
Шифрование………………………………………………..10
2.2. Кодирование………………………………………………….17
Глава II Реализация шифра Цезаря в Делфи……………………22
Заключение………………………………………………………..29
Литература…………………………………………………………30

Содержимое работы - 1 файл

курсовая.docx

— 445.35 Кб (Скачать файл)

        2.2. Кодирование 

        Для экономии памяти при работе с текстом имеет смысл уплотнение текста. Существуют несколько способов уплотнения текста.

  1. Переход от естественных обозначений к более компактным. Этот способ применяется для сжатия записи дат, номеров. Например: дата пишется в виде 01. 01. 01. , что требует 6 байт, но для представления дня достаточно 5 бит, месяца- 4, года- 7, т.о. вся дата может быть записана в 2-х байтах. 
  2. Подавление повторяющихся символов. В различных информационных текстах часто встречаются цепочки повторяющихся символов. Если имеется группа повторяющихся символов длиной более 3, то ее длину можно сократить до трех символов. Сжатая таким образом группа повторяющихся символов представляет собой триграф S P N , в котором S – символ повторения; P – признак повторения; N- количество символов повторения.

        Кодирование часто используемых элементов данных. Этот способ уплотнения данных также основан на употреблении неиспользуемых комбинаций кода. Например: для кодирования можно использовать комбинации из двух байтов диграф PN, где P – признак кодирования символа, N – номер символа. Таким образом может быть  закодировано 256 символов. Другой способ: отыскание в текстах наиболее  часто встречающихся сочетании букв и даже слов и замене их  на неиспользуемые  байты кода ДКОИ.

  1. Посимвольное кодирование. Семибитовые и восьмибитовые коды не обеспечивают достаточно компактного кодирования символьной информации. Более пригодными для этой цели являются 5 - битовые коды, например международный телеграфный код МГК-2. Перевод информации в код МГК-2 возможен с помощью программного перекодирования или с использованием специальных элементов на основе больших интегральных схем (БИС). Пропускная способность каналов связи при передаче алфавитно-цифровой информации в коде МГК-2 повышается по сравнению с использованием восьмибитовых кодов почти на 40%.
  2. Коды переменной длины: часто используемые символы кодируются короткими кодами, а редко используемые - длинными кодами (код Хаффмана).

        Наилучший результат  достигается при использовании обоих методов.

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

        Применение  кодирования

        Кодирование двоичным кодом

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

        В вычислительной технике существует своя система – двоичное кодирование, основанная на представлении данных последовательностью двух знаков: 0 и 1 (бит). Одним битом могут быть выражены два понятия: 0 или 1 (да или нет, чёрное или белое, истина или ложь). Если количество битов увеличить до двух, то уже можно выразить четыре различных понятия. Тремя битами можно закодировать восемь различных значений.

        Кодирование целых и действительных чисел

        Для кодирования  целых чисел от 0 до 255 достаточно иметь 8 разрядов двоичного кода (8 бит). 16 бит позволяют закодировать целые числа от 0 до 65535, 24 более 16,5 миллионов различных значений.

        Для кодирования  действительных чисел используют 80-разрядное  кодирование. При этом число предварительно преобразовывают в нормализованную  форму:

        3,1414926 = 0,31415926 × 101

        300 000     = 0,3 × 106

        Первая часть числа  - мантисса,  вторая – характеристика. Большую часть из 80 бит отводят для хранения мантиссы (вместе со знаком) и некоторое фиксированное количество разрядов отводят для хранения характеристики.

        Кодирование текстовых данных

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

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

        Для английского  языка противоречия уже сняты. Институт стандартизации США ввёл в действие систему кодирования ASCII (American Standard Code for Information Interchange – стандартный код информационного обмена США). В системе ASCII закреплены две таблицы кодирования базовая и расширенная. Базовая таблица закрепляет значения кодов от 0 до 127, а расширенная относится к символам с номерами от 128 до 255.

        Первые 32 кода базовой  таблицы, начиная с нулевого, отданы производителям аппаратных средств. В  этой области размещаются управляющие  коды, которым не соответствуют ни какие символы языков. Начиная  с 32 по 127 код размещены коды символов английского алфавита, знаков препинания, арифметических действий и некоторых  вспомогательных символов.

        Кодировка символов русского языка, известная как кодировка  Windows-1251, была введена «извне» - компанией Microsoft, но, учитывая широкое распространение операционных систем и других продуктов этой компании в России, она глубоко закрепилась и нашла широкое распространение.

        Другая распространённая кодировка носит название КОИ-8 (код  обмена информацией, восьмизначный) –  её происхождение относится к  временам действия Совета Экономической  Взаимопомощи государств Восточной  Европы. Сегодня кодировка КОИ  – 8 имеет широкое распространение в компьютерных сетях на территории России и в российском секторе Интернета.

        Международный стандарт, в котором предусмотрена кодировка  символов русского языка, носит названия ISO (International Standard Organization – Международный институт стандартизации). На практике данная кодировка используется редкоф. [Приложение 1]

        Универсальная система кодирования  текстовых данных

        Если проанализировать организационные трудности, связанные  с созданием единой системы кодирования  текстовых данных, то можно прийти к выводу, что они вызваны ограниченным набором кодов (256). В то же время, очевидно, что если, кодировать символы  не восьмиразрядными двоичными числами, а числами с большим разрядом то и диапазон возможных значений кодов станет на много больше. Такая  система, основанная на 16-разрядном  кодировании символов, получила название универсальной – UNICODE.  Шестнадцать разрядов позволяют обеспечить уникальные коды для 65 536 различных символов – этого поля вполне достаточно для размещения в одной таблице символов большинства языков планеты.

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

        Глава II Реализация шифра Цезаря в Делфи.

        Как было уже сказано, Шифр Це́заря — один из древнейших шифров; при шифровании каждый символ заменяется другим, отстоящим от него в алфавите на фиксированное число позиций.

        Текст программы  в делфи: 

        unit Unit1; 

        interface 

        uses

          Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

          Dialogs, ActnList, StdCtrls, Buttons, ExtCtrls; 

        type

          TForm1 = class(TForm)

            Label1: TLabel;

            Label2: TLabel;

            BitBtn1: TBitBtn;

            BitBtn2: TBitBtn;

            BitBtn3: TBitBtn;

            BitBtn4: TBitBtn;

            BitBtn5: TBitBtn;

            OpenDialog1: TOpenDialog;

            SaveDialog1: TSaveDialog;

            Shfcezar: TActionList;

            zzcezar: TAction;

            rrcezar: TAction;

            clear: TAction;

            BitBtn6: TBitBtn;

            memo1: TMemo;

            memo2: TMemo;

            procedure zzcezarExecute(Sender: TObject);

            procedure rrcezarExecute(Sender: TObject);

            procedure clearExecute(Sender: TObject);

            procedure BitBtn1Click(Sender: TObject);

            procedure BitBtn2Click(Sender: TObject);

            procedure BitBtn3Click(Sender: TObject);

            procedure BitBtn4Click(Sender: TObject);

            procedure BitBtn5Click(Sender: TObject);

            procedure BitBtn6Click(Sender: TObject);

          private

            { Private declarations }

          public

            { Public declarations }

          end; 

        var

          Form1: TForm1; 

        implementation 
 

        function zcezar(s:string;key:byte):string;

        var

        i:integer;

        a,b:char;

        c:string;

        begin

        c:='';

        for i:=1 to length(s) do

        begin

        a:=s[i];

        b:=chr(ord(a)+key);

        c:=c+b;

        end;

        zcezar:=c;

        end; 
 

        function rcezar(s:string;key:byte):string;

        var

        i:integer;

        a,b:char;

        c:string;

        begin

        c:='';

        for i:=1 to length(s) do

        begin

        a:=s[i];

        b:=chr(ord(a)-key);

        c:=c+b;

        end;

        rcezar:=c;

Информация о работе Защита информации методом шифрования и кодирования