Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Изучение симметричных алгоритмов шифрования

Тип Реферат
Предмет Информатика
Просмотров
1055
Размер файла
329 б
Поделиться

Ознакомительный фрагмент работы:

Изучение симметричных алгоритмов шифрования

Филиал государственного образовательного учреждения высшего профессионального образования

«Санкт-Петербургский государственный инженерно-экономический университет» в г.Чебоксары

Кафедра информационных систем и математики

Отчет по лабораторной работе №3

По дисциплине: Информационная безопасность

На тему: Изучение симметричных алгоритмов шифрования

Выполнила:

студентка
группы 92-06

Удалова Л.В.

Руководитель:
ст. преп. А.А.Алякина

Чебоксары, 2010

1. Цель работы:

Изучение симметричных алгоритмов

1.1 Порядок выполнения:

1. Изучить основы шифрования данных методом в соответствии с предложенным вариантом.

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

2. Индивидуальное задание.

2.1 Система биграммного шифрования Плейфера

Шифрующие таблицы позволяют шифровать сразу по две буквы. Такие шифры называются биграммными.

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

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

Процедура шифрования включает следующие шаги:

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

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

· Если обе буквы биграммы открытого текста не попадают на одну строку или столбец (как, например, буквы А и Й в табл. на рис.8), тогда находят буквы в углах прямоугольника, определяемого данной парой букв. (В нашем примере это буквы АЙОВ. Пара букв АЙ отображается в пару 0В. Последовательность букв в биграмме шифртекста должна быть зеркально расположенной по отношению к последовательности букв в биграмме открытого текста).

· Если обе буквы биграммы открытого текста принадлежат одному столбцу таблицы, то буквами шифртекста считаются буквы, которые лежат под ними. (Например, биграмма НС дает биграмму шифртекста ГЩ.) Если при этом буква открытого текста находится в нижней строке, то для шифртекста берется соответствующая буква из верхней строки того же столбца. (Например, биграмма ВШ дает биграмму шифртекста ПА.)

· Если обе буквы биграммы открытого текста принадлежат одной строке таблицы, то буквами шифртекста считаются буквы, которые лежат справа от них. (Например, биграмма НО дает биграмму шифртекста ДЛ.) Если при этом буква открытого текста находится в крайнем правом столбце, то для шифра берут соответствующую букву из левого столбца в той же строке. (Например, биграмма ФЦ дает биграмму шифртекста ХМ.).

Зашифруем текст

ВСЕ ТАЙНОЕ СТАНЕТ ЯВНЫМ

Разбиение этого текста на биграммы дает

ВС ЕТ АЙ НО ЕС ТА НЕ ТЯ ВН ЫМ

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

ГП ДУ ОВ ДЛ НУ ПД ДР ЦЫ ГА ЧТ

При расшифровании применяется обратный порядок действий.

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

БАНДЕРОЛ
ЬВГЖ3ИЙК
МПСТУФХЦ
ЧШЩЫЪЭЮЯ

Рис. 1. Шифрующая таблица с ключевым словом БАНДЕРОЛЬ

3. Блок-схемы биграммного шифрования Плейфера

3.1 Алгоритм функции шифрования

Приложение 1

Алгоритм функции шифрования




3.2 Алгоритм функции расшифровывания

Приложения 2

Алгоритм функции расшифровывания:



4. Текст программы биграммного шифрования Плейфера

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

Данная программа реализована на языке Delphi 7.

Delphi – Borland Delphi представляет собой средство разработки приложений для Microsoft Windows. Delphi является мощным и простым в использовании инструментом для создания автономных программ, обладающих графическим интерфейсом (GUI), или 32-битных консольных приложений (программ, которые не имеют графического интерфейса).

Ниже приведен текст программы «Биграммного шифрования Плейфейра»:

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, ComCtrls, Grids, ExtCtrls, Buttons, XPMan, Menus;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

Button8: TButton;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

Memo2: TMemo;

Memo3: TMemo;

Memo1: TMemo;

StringGrid1: TStringGrid;

GroupBox1: TGroupBox;

UpDown1: TUpDown;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

XPManifest1: TXPManifest;

StatusBar1: TStatusBar;

MainMenu1: TMainMenu;

File1: TMenuItem;

Exit1: TMenuItem;

Open1: TMenuItem;

Save1: TMenuItem;

N1: TMenuItem;

Savedecrypt1: TMenuItem;

Edit1: TMenuItem;

Crypt1: TMenuItem;

Decrypt1: TMenuItem;

Clear1: TMenuItem;

About1: TMenuItem;

About2: TMenuItem;

procedure Button2Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);

procedure Memo1KeyUp(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure Exit1Click(Sender: TObject);

procedure Save1Click(Sender: TObject);

procedure Savedecrypt1Click(Sender: TObject);

procedure Open1Click(Sender: TObject);

procedure Clear1Click(Sender: TObject);

procedure Crypt1Click(Sender: TObject);

procedure Decrypt1Click(Sender: TObject);

procedure About2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

a: array of array of char;

rowk,colk:integer;

alf:string;

implementation

uses AboutF;

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);

begin

if OpenDialog1.Execute then

begin

memo1.Lines.LoadFromFile(OpenDialog1.FileName);

statusbar1.Panels[0].Text:='Текст загружен';

end;

end;

procedure TForm1.Button7Click(Sender: TObject);

begin

Memo1.Clear;

Memo2.Clear;

Memo3.Clear;

Memo1.SetFocus;

button4.Enabled:=false;

button5.Enabled:=false;

button6.Enabled:=false;

statusbar1.Panels[2].Text:=inttostr(length(memo1.Text));

statusbar1.Panels[0].Text:='Поле с открытым текстом очищенно';

form1.Decrypt1.Enabled:=false;

form1.Savedecrypt1.Enabled:=false;

form1.Save1.Enabled:=false;

end;

procedure TForm1.Button8Click(Sender: TObject);

begin

close;

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

if savedialog1.Execute then

begin

Memo2.Lines.SaveToFile(savedialog1.FileName);

statusbar1.Panels[0].Text:='Зашифрованый текст сохранен';

end;

end;

procedure TForm1.Button6Click(Sender: TObject);

begin

if savedialog1.Execute then

begin

memo3.Lines.SaveToFile(savedialog1.FileName);

statusbar1.Panels[0].Text:='Расшифрованый текст сохранен';

end;

end;

//заполняем матрицу символами

procedure TForm1.Button1Click(Sender: TObject);

var

i,j,k:integer;

begin

k:=1;

colk:=form1.StringGrid1.ColCount;

rowk:=stringgrid1.RowCount;

setlength(a,colk,rowk);

alf:=#039+'ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя !@#№$;%^:&?*()-_+=[]/{}<>.,123456789|~"Ї°±™ґµ¶'+#13#10;

for i:=0 to colk-1 do

for j:=0 to rowk-1 do

begin

a[i,j]:=alf[k];

with StringGrid1 do

begin

Cells[i,j]:=a[i,j];

inc(k);

end;

end;

button3.Enabled:=true;

statusbar1.Panels[3].Text:='Матрица загружена';

end;

function prob(ss:string;lenn:integer): string;

var

s1:string;

i,j,k:integer;

begin

k:=0;

while k<2 do begin

For i:=1 to lenn do

if (ss[i]=ss[i+1]) then

begin

s1:='';

for j:=1 to i do

s1:=s1+ss[j];

s1:=s1+'µ';

for j:=i+1 to lenn do

s1:=s1+ss[j];

ss:=s1;

lenn:=Length(ss);

end;

inc(k);

Result:=ss;

end;

end;

procedure TForm1.Button3Click(Sender: TObject);

var

s,t:string;

k, i, j, len, x1, y1, x2, y2, c:integer;

begin

t:=memo1.Text;

len:=Length(t);

if len>1 then

begin

s:=prob(t,len);

len:=Length(s);

if (len mod 2)=1 then

s:=s+' ';

for i:=1 to len do

if (i mod 2 = 1) then

begin

for j:=0 to colk-1 do

for c:=0 to rowk-1 do

begin

if s[i]=a[j,c] then

begin

x1:=j;

y1:=c;

end;

if s[i+1]=a[j,c] then

begin

x2:=j;

y2:=c;

end;

end;

if (x1=x2) then

begin

if y1=rowk-1 then s[i]:=a[x1,0]

else s[i]:=a[x1,y1+1];

if y2=rowk-1 then s[i+1]:=a[x1,0]

else s[i+1]:=a[x1, y2+1];

end;

if (y1=y2) then

begin

if x1=colk-1 then s[i]:=a[0,y1]

else s[i]:=a[x1+1,y2];

if x2=colk-1 then s[i+1]:=a[0,y1]

else s[i+1]:=a[x2+1,y2];

end;

if (y1<>y2) and (x1<>x2) then

begin

s[i]:=a[x1,y2];

s[i+1]:=a[x2,y1];

end;

end;

memo2.text:=s;

button4.Enabled:=true;

button5.Enabled:=true;

statusbar1.Panels[0].Text:='Текст зашифрован';

form1.Decrypt1.Enabled:=true;

form1.Save1.Enabled:=true;

end

else

begin

MessageDlg('Введите больше символов!', mtInformation, [mbOk], 0);

memo1.SetFocus;

statusbar1.Panels[0].Text:='Ошибка ввода откр.текста';

end;

end;

procedure TForm1.Button4Click(Sender: TObject);

var

s,s1:string;

k, i, j, len, x1, y1, x2, y2, c:integer;

begin

s:=memo2.Text;

len:=Length(s);

for i:=1 to len do

if (i mod 2 = 1) then

begin

for j:=0 to colk-1 do

for c:=0 to rowk-1 do

begin

if s[i]=a[j,c] then

begin

x1:=j;

y1:=c;

end;

if s[i+1]=a[j, c] then

begin

x2:=j;

y2:=c;

end;

end;

if (x1=x2) then

begin

if y1=0 then s[i]:=a[x1,rowk-1]

else s[i]:=a[x1,y1-1];

if y2=0 then s[i+1]:=a[x1,rowk-1]

else s[i+1]:=a[x1,y2-1];

end;

if (y1=y2) then

begin

if x1=0 then s[i]:=a[colk-1,y1]

else s[i]:=a[x1-1,y2];

if x2=0 then s[i+1]:=a[colk-1,y1]

else s[i+1]:=a[x2-1,y2];

end;

if (y1<>y2) and (x1<>x2) then

begin

s[i]:=a[x1,y2];

s[i+1]:=a[x2,y1];

end;

end;

len:=Length(s);

For i:=1 to len do begin

if (s[i]='µ') then

begin

s1:='';

for j:=1 to i-1 do

s1:=s1+s[j];

for j:=i+1 to len do

s1:=s1+s[j];

s:=s1;

end; end;

len:=Length(s);

memo3.text:=s;

button6.Enabled:=true;

statusbar1.Panels[0].Text:='Текст расшифрован';

form1.Savedecrypt1.Enabled:=true;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

statusbar1.Panels[0].Text:='Введите текст для шифрования';

Memo1.Clear;

Memo2.Clear;

Memo3.Clear;

button3.Enabled:=false;

button4.Enabled:=false;

button5.Enabled:=false;

button6.Enabled:=false;

form1.Decrypt1.Enabled:=false;

form1.Savedecrypt1.Enabled:=false;

form1.Save1.Enabled:=false;

form1.Button1.Click;

end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

Finalize(a);

end;

procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);

var

fv:integer;

begin

fv:=updown1.Position;

if (fv=1) then

begin

form1.Width:=907;

end;

if (fv=0) then

begin

form1.Width:=466;

end;

end;

procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

statusbar1.Panels[2].Text:=inttostr(length(memo1.Text));

end;

procedure TForm1.Exit1Click(Sender: TObject);

begin

close;

end;

procedure TForm1.Save1Click(Sender: TObject);

begin

if savedialog1.Execute then

begin

Memo2.Lines.SaveToFile(savedialog1.FileName);

statusbar1.Panels[0].Text:='Зашифрованый текст сохранен';

end;

end;

procedure TForm1.Savedecrypt1Click(Sender: TObject);

begin

if savedialog1.Execute then

begin

memo3.Lines.SaveToFile(savedialog1.FileName);

statusbar1.Panels[0].Text:='Расшифрованый текст сохранен';

end;

end;

procedure TForm1.Open1Click(Sender: TObject);

begin

if OpenDialog1.Execute then

begin

memo1.Lines.LoadFromFile(OpenDialog1.FileName);

statusbar1.Panels[0].Text:='Текст загружен';

end;

end;

procedure TForm1.Clear1Click(Sender: TObject);

begin

Button7.Click;

end;

procedure TForm1.Crypt1Click(Sender: TObject);

begin

Button3.Click;

end;

procedure TForm1.Decrypt1Click(Sender: TObject);

begin

Button4.Click;

end;

procedure TForm1.About2Click(Sender: TObject);

begin

form2.showmodal;

end;

end.

5. Работа программы биграммного шифрования Плейфера

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

Рис. 2. Интерфейс системы биграммного шифрования Плейфера

Зашифруем исходное сообщение «Первоисточник» для этого введем это сообщение в программе, в окошке «Введите открытый текст». После чего нажмем кнопку «Зашифровать». И увидим, что во втором окошке «Зашифрованный текст» увидим результат шифрования.
Результат шифрования приведен ниже на рисунке 3.

Рис. 3. Результат шифрования текста

Также можно выполнить расшифрование текста, нажав на кнопку «Расшифровать» (рис. 4).

Рис. 4. Результат расшифрования текста

При необходимости можно сохранить зашифрованные данные нажав кнопку «Сохранить файл». И при помощи кнопки «Выход» происходит закрытие программы.

6. Выводы по работе

Испокон веков не было ценности большей, чем информация. ХХ век - век информатики и информатизации. Технология дает возможность передавать и хранить все большие объемы информации. Это благо имеет и оборотную сторону. Информация становится все более уязвимой по разным причинам:

· возрастающие объемы хранимых и передаваемых данных;

· расширение круга пользователей, имеющих доступ к ресурсам ЭВМ, программам и данным;

· усложнение режимов эксплуатации вычислительных систем.

Поэтому все большую важность приобретает проблема защиты информации от несанкционированного доступа (НСД) при передаче и хранении.

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


Нет нужной работы в каталоге?

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

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

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

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Филиал государственного бюджетного образовательного учреждения высшего образования Московской област
Спасибо Елизавете за оперативность. Так как это было важно для нас! Замечаний особых не бы...
star star star star star
РУТ
Огромное спасибо за уважительное отношение к заказчикам, быстроту и качество работы
star star star star star
ТГПУ
спасибо за помощь, работа сделана в срок и без замечаний, в полном объеме!
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

решить 6 практических

Решение задач, Спортивные сооружения

Срок сдачи к 17 дек.

только что

Задание в microsoft project

Лабораторная, Программирование

Срок сдачи к 14 дек.

только что

Решить две задачи №13 и №23

Решение задач, Теоретические основы электротехники

Срок сдачи к 15 дек.

только что

Решить 4задачи

Решение задач, Прикладная механика

Срок сдачи к 31 дек.

только что

Выполнить 2 задачи

Контрольная, Конституционное право

Срок сдачи к 12 дек.

2 минуты назад

6 заданий

Контрольная, Ветеринарная вирусология и иммунология

Срок сдачи к 6 дек.

4 минуты назад

Требуется разобрать ст. 135 Налогового кодекса по составу напогового...

Решение задач, Налоговое право

Срок сдачи к 5 дек.

4 минуты назад

ТЭД, теории кислот и оснований

Решение задач, Химия

Срок сдачи к 5 дек.

5 минут назад

Решить задание в эксель

Решение задач, Эконометрика

Срок сдачи к 6 дек.

5 минут назад

Нужно проходить тесты на сайте

Тест дистанционно, Детская психология

Срок сдачи к 31 янв.

6 минут назад

Решить 7 лабораторных

Решение задач, визуализация данных в экономике

Срок сдачи к 6 дек.

7 минут назад

Вариационные ряды

Другое, Статистика

Срок сдачи к 9 дек.

8 минут назад

Школьный кабинет химии и его роль в химико-образовательном процессе

Курсовая, Методика преподавания химии

Срок сдачи к 26 дек.

8 минут назад

Вариант 9

Решение задач, Теоретическая механика

Срок сдачи к 7 дек.

8 минут назад

9 задач по тех меху ,к 16:20

Решение задач, Техническая механика

Срок сдачи к 5 дек.

9 минут назад
9 минут назад
10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно