Мәтіндерді шифрлау курстық жұмыс
Мазмұны - www.topreferat.com.kz
Кіріспе……………………………………………………………………………...4
Математикалық сипаттама...........5
Омофондар жүйесі..........5
Гаммалау арқылы шифрлау...........6
Вижинер кестесі бойынша шифрлау.............7
Бақылау мысалының шешуі.........9
2.1 Мәтіндерді шифрлау...............9
2.2 Мәтіндерге салыстырмалы энтропиялық анализ......10
Алгоритм және программа схемасы……………………………………..12
Бастапқы мәліметтер……………………………………………………...16
Нәтиже……………………………………………………………………..16
Қорытынды………………………………………………………………………17
Әдебиеттер тізімі………………………………………………………………...18
Қосымша 1 Программаның листингі…………………………………………...19
Жұмыс түрі: Курстық жұмыс
Жұмыс көлемі: 24 бет
Пәні: Соңғы қосылған курстық жұмыстар
-----------------------------------------------------------------------------------
КУРСТЫҚ ЖҰМЫСТЫҢ ҚЫСҚАРТЫЛҒАН МӘТІНІ
Мазмұны
Кіріспе……………………………………………………………………………...4
Математикалық сипаттама...........................................................................5
Омофондар жүйесі..................................................................................5
Гаммалау арқылы шифрлау...................................................................6
Вижинер кестесі бойынша шифрлау.....................................................7
Бақылау мысалының шешуі.........................................................................9
2.1 Мәтіндерді шифрлау...............................................................................9
2.2 Мәтіндерге салыстырмалы энтропиялық анализ..............................10
Алгоритм және программа схемасы……………………………………..12
Бастапқы мәліметтер……………………………………………………...16
Нәтиже……………………………………………………………………..16
Қорытынды………………………………………………………………………17
Әдебиеттер тізімі………………………………………………………………...18
Қосымша 1 Программаның листингі…………………………………………...19
Кіріспе
Ақпараттық жүйе – обьектіні басқару үшін қажетті ақпаратты
Ақпарат айналымын тиімді ұйымдастыру адамдардың күнделікті өмірінің табыстылығының
Осындай қарқынды өсім мен интенсивті айналым кезінде ақпараттың
Криптология ақпаратты оны түрлендіру арқылы қорғаумен шұғылданады. Ол
Соған қарамастан алдыңыздағы курстық жұмыста сол бағыттарды тең
Симметриялық шифрлау саласына жататын Вижинер кестесімен шифрлау, омофондар
Төмендегі жұмыста сол айырмашылықтар және өзгертулер нақты көрініс
Курстық жұмыста программалар Delphi программалау ортасында жазылды. Бұл
Программаны қолдану барынша жеңіл және түсінікті.
Осы жұмыс барысында негізгі пайдалану көзі болып табылатын
Жұмысты оқып шығу (тексеру) барысында қазақ тілінде осы
Іске сәт!
1.Математикалық сипаттама
1.1 Омофондар жүйесі
Шифрға жасалатын шабуылдардың ішіндегі ең қарапайымы бұл
Ауыстырулар (омофон деп аталады) 000 ден 999 дейінгі
Егер омофондар бірдей әріптің пайда болуы үшін кездейсоқ
Яғни әріптердің жай жиілігін санау ештеңе бермейді. Бірақта
1-кесте. Кең таралған Еуропа тілдерінде әріптердің
1.2 Гаммалау арқылы шифрлау
Бұл әдісте шифрланатын мәтіннің символдары гамма деп аталатын
Гаммалау арқылы шифрлаудың мәні мынада: жалған-кездейсоқ сандар бергішінің
Мына жағдайды атап өтуіміз керек. Шифрлау алдында ашық
Шифрлауды ашу процесі шифр гаммасын қайтадан генерациялау және
Осындай әдіспен алынған шифрмәтін, ашуға қиындық тудырады, өйткені
Жалғанкездейсоқ сандар генераторы ретінде сызықты конгруэнтті генераторды қолдануға
Бірақ сонымен қатар жалғанкездейсоқ сан жабық кілт болып
Жалған кездейсоқ сандар тізбегін генерациялау әдістері. Гаммалау
Жалғанкездейсоқ бүтін сандар тізбегін генрециялайтын белгілі процедуралар ішінде
1.3 Вижинер Кестесі бойынша шифрлау
Вижинер жүйесі Цезарь жүйесі жүйесіне ұқсайды. Шифрлау кестесі
Шифрлау (және кері шифрлау) үшін Вижинер кестесін қолдануға
2-кесте. Вижинер кестесі
Шифрлау былайша жүзеге асырылады: шифрланатын мәтіннің әрбір әрпінің
1-сурет. Жұмыс матрицасы және шифрланған мәтін.
2. Бақылау мысалының шешілуі
2.1 Мәтіндерді шифрлау
Шифрланатын мәтін: Kazakhstan is great country
Вижинер кестесін қолданып мәтінді шифрлау. Бұл жағдайда алдымен
мұндағы K=26, ағылшын алфавитіндегі әріп саны.
Сонда
K A Z
11 1 26 1
K A R
11 1 18 20
(11+11) MOD 26 =22 V
(1+1) MOD 26 = 2
(18+26) MOD 26 = 18 R
(1+20) MOD 26 = 21
(11+2) MOD 26 =13
(8+1) MOD 26 =9
(19+25) MOD 26 = 18 R
(20+5) MOD 26 = 25
(1+22) MOD 26 =23
(14+11) MOD 26= 25 Y
(9+1) MOD 26= 10
(18+19) MOD 26=11 K
(7+20) MOD 26=1
(18+2) MOD 26=20 T
(5+1) MOD 26 =6
(1+25) MOD 26=26
(20+5) MOD 26=25
(3+22) MOD 26=25
(15+11) MOD 26=26 Z
(21+1) MOD 26=22
(14+18) MOD 26=6
(20+20) MOD 26=14 N
(18+2) MOD 26=20
(25+1) MOD 26=26
Кері шифрлаудың формуласы мынадай:
Омофондар әдісімен шифрлау. Бұл әдіспен шифрлағанда шифрлау біралфавитті
KAZAKHSTAN (салыстыру) ABCDEFGHIJKLMNOPQRSTUVWXYZ
Егер салыстыру тура болса оның ауыстыруын шифрланған мәтінге
Мысалы, бастапқы шифрдан Kazakhstan сөзін алайық.
A B C D
9 23 20 13 23 2 9
z i s i
Бұлай шифрлағанда кері шифрлау үшін қарсы жаққа ауыстырулар
Гаммалаумен шифрлау Бұл шифрда бастапқы текстке қосып
Бұл тізбек бір рет жасалады. Оны кері шифрлау
Мысалы үшін бастапқы сөзді алайық,
K A Z
11 1 26 1
оған гаммалар тізбегін басамыз.
12 24 18 13 16
w y r
2.2 Мәтіндерге салыстырмалы энтропиялық анализ
Алдымен ағылшын алфавиті үшін әріптерге келетін энтропияны көрсетейік.
e0.26
t 0.25
a 0.24
I0.23
O0.22
N0.21
h 0.20
s0.19
r0.18
l0.17
d0.16
m 0.15
u 0.14
c0.13
f0.12
w0.11
y0.10
g0.09
p0.08
b0.07
v0.06
k0.05
x0.04
j0.03
q0.02
z0.01
Бұл энтропия символдардың кездесу жиілігіне орай бөлінген.
Бастапқы мәтін үшін максималды энтропияны табайық.
K A Z
Hmax=log2m=log210=2.3
ht=(pi =1.68
ht
V B R U M I
ht =(pi=1.5
Бастапқы текст энтропиясына жуық. Максималды энтропиядан аз.
Омофондар арқылы шифрлауда
z i s i
ht =(pi =1.3
Вижинер текст энтропиясынан кіші. Максималды энтроиядан аз.
Гаммалау арқылы шифрлауда
w y r
ht =(pi =1,25
Омофон текст энтропиясынан кіші. Максималды энтропиядан аз.
Энтропияларды салыстыру.
2-сурет. Энтропияларды салыстыру
Салыстыру нәтижесінде жоғарыдағыдай график алынды. Бұл графиктен біз
Информацияның тексте келуі оның энтропиясын не төмендетеді, не
Информацияның тексте келуінің өзі ондағы анықталмаушылықты классикалық түсінік
3.Алгоритм, программа блок-схемасы
Вижинер Кестесімен шифрлау программасына
Омофондар шифры үшін
Гаммалау арқылы шифрлау
4.Бастапқы мәліметтер
Шифрланатын мәтін: Kazakhstan great country;
5.Нәтиже
3-сурет. Программаның беті
4-сурет. Вижинер кестесі программасы
5-сурет.Гаммалау шифры
6-сурет. Омофондар шифры
Қорытынды
Мен осы жұмысты жасай отырып бірқатар тәжірибелік білімдер
Қазіргі кезде криптография дамып келе жатқан саланың
Менің курстық жұмысымда орын алған шифрларды класификацияласақ, оларды
Осылайша криптографиядан зор пайдалы білімдерді ала отырып, мен
Болашақта ақпаратты қорғау саласында жұмыс тәжірибесін алуда бұл
Сол саланың ақпараттық жүйелер негізіне кірігуін сипаттай аламыз.
Яғни, менің жұмысымның болашақта тигізер пайдасы зор.
Әдебиеттер тізімі
А.Ш.Тұрым, Б.М. Мұстафина Ақпарат қорғау және қауіпсіздендіру негіздері:
Анин Б.Ю. Защита компьютерной информации. – СПб.:БХВ –
Крис Касперский. Техника современных атак. – М.:Солон:2001.
Қосымша 1
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,unit2,unit3,unit4,jpeg;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Image1: TImage;
Button4: TButton;
procedure Button4Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button4Click(Sender: TObject);
begin
close
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.Show;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
form4.show;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
form3.Show;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
image1.picture.LoadFromFile('aman.jpg');
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Label3: TLabel;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
var
i,j,k:integer;
alf:array[1..26]of char;
inds:array[1..256] of integer;
indk:array[1..256] of integer;
s:string;
key:string ;
procedure TForm2.Button1Click(Sender: TObject);
begin
s:=edit1.Text;
key:=edit2.Text;
for i:=1 to length(s) do
for j:=1 to 26 do
if s[i]=alf[j] then
inds[i]:=j;
for i:=1 to length(key) do
for j:=1 to 26 do
if key[i]=alf[j] then
indk[i]:=j;
i:=1; j:=1; k:=1;
while iif jbegin
k:=(inds[i]+indk[j])mod 26;
label4.caption:=label4.Caption+alf[k];
inc(i);
inc(j);
end
else j:=1;
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
close
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
edit1.Clear;
edit2.Clear;
label4.caption:='';
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
s:='abcdefghijklmnopqrstuvwxyz';
for i:=1 to 26 do
alf[i]:=s[i];
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm3 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure onclose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
type
letter=record
let:char;
zam:array [1..10] of integer;
focus:integer;
end;
var
str:string;
i,j,k,num_f:integer;
ar_alf:array[1..256] of letter;
alf:array[1..26] of char;
a:array[1..256] of integer;
f_f:text;
procedure TForm3.Button3Click(Sender: TObject);
begin
close
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
edit1.Clear;
label2.Caption:='';
end;
procedure TForm3.Button1Click(Sender: TObject);
begin
str:= edit1.Text;
i:=1;
randomize();
for i:=1 to 26 do
begin
for j:=1 to 10 do
ar_alf[i].zam[j]:=random(26)+1;
k:=random(10)+1;
ar_alf[i].focus:=ar_alf[i].zam[k];
end;
for i:=1 to 26 do
for j:=1 to 26 do
if ar_alf[i].focus=j then
ar_alf[i].let:=alf[j];
for j:=1 to 26 do
write(f_f,ar_alf[j].focus,' ');
for i:=1 to length(str) do
for j:=1 to 26 do
if str[i]=alf[j] then
label2.Caption:=label2.Caption+ar_alf[j].let ;
write(f_f,label2.caption,' ');
write(f_f,'conec');
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
assignfile(f_f,'zamena.txt');
rewrite(f_f);
str:='abcdefghijklmnopqrstuvwxyz';
for i:=1 to 26 do
alf[i]:=str[i];
end;
procedure TForm3.onclose(Sender: TObject; var Action: TCloseAction);
begin
closefile(f_f);
end;
end.
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm4 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Button2: TButton;
Button3: TButton;
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure onclose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
var
alf:array [1..26] of char;
gamma:array [1..256] of integer;
bukva:array [1..256] of integer;
f_g:text;
i,j,k:integer;
s:string;
procedure TForm4.Button3Click(Sender: TObject);
begin
close
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
edit1.clear;
label2.Caption:='';
end;
procedure TForm4.Button1Click(Sender: TObject);
begin
{eto pro gammirovanie}
randomize;
s:=edit1.Text;
for i:=1 to length(s) do
begin
gamma[i]:=random(26)+1;
write(f_g,gamma[i],' ');
end;
for i:=1 to length(s) do
for j:=1 to 26 do
if s[i]=alf[j] then
bukva[i]:=j;
for i:=1 to length(s) do
begin
k:=(gamma[i]+bukva[i])mod 26;
write(f_g,alf[k],' ');
label2.Caption:=label2.Caption+alf[k];
end;
end;
procedure TForm4.FormCreate(Sender: TObject);
begin
assignfile(f_g,'gamma.out');
rewrite(f_g);
s:='abcdefghijklmnopqrstuvwxyz';
for i:=1 to 26 do
alf[i]:=s[i];
end;
procedure TForm4.onclose(Sender: TObject; var Action: TCloseAction);
begin
closefile(f_g);
end;
end.
2
басы
мәтінді алу
кілт алу
1-ден текст ұзындығына дейін цикл
1-ден 26ға
алфавиттік цикл
Егер ұқсас болса
Шифр текст символын нөмірлеу
3
1
2
3
4
5
Кілт ұзындығы бойынша цикл
1-ден 26-ға ұқсастыққа тексеру циклы
Егер ұқсас болса
Кілт символдарын нөмірлеу
7
6
7
8
9
6
10
10
6
Текстке цикл
Кілтке тексеру
К ұзын.ын табу
Символды
шығару
Кілттің басына өту
10
13
10
соңы
10
11
12
13
басы
Тексті алу
1-ден 26-ға цикл
1-ден10-ға цикл
3
5
3
Ауыстыруды анықтау
4
3
2
4
1
2
4
3
Текст ұзын.на цикл
1-ден 26-ға цикл
2
Алфавитпен салыстыру
Сәйкес ауыстыруды қою
6
5
6
7
8
6
5
8
6
9
Тексті файлға шығару
5
соңы
9
басы
Текст ұзын.на цикл
Гаммалар құрау, файлға жазу
Текст ұзын.на цикл
1-ден 26-ға цикл
әріптерді нөмірлеу
Ұқсас. тексеру
Текст ұзын.на цикл
К-ны анықтау, символды файлға және шығысқа шығару
7
3
4
6
4
соңы
8
7
6
5
4
3
2
1
4