Автор: Пользователь скрыл имя, 24 Октября 2011 в 17:52, дипломная работа
Осыған орай дипломдық жұмыстың мақсаты – RSA алгоритмін қазіргі таңдағы технологияларды пайдалана отырып, ақпаратты қорғау саласында кеңінен қолдана алатын автоматтандыру жүйесін құру.
Жұмыстың мақсаты дипломдық жұмыс барысында шешілген келесі міндеттерді анықтады:
Сандар теориясын, оның бөлімдерінің бірі жан сандарды зерттеу. Өте үлкен жай сандарды іздеу
Екілік жүйедегі сандармен жұмыс жасау
Ашық және жабық кілттердің құрылымын зерттеу
Бір компьютерден екінші бір компьютерге ақпаратты шифрлеп жібергенде, барлық қауіпсіздік ережелерін сақтау және зерттеу
КІРІСПЕ 3
КРИПТОГРАФИЯ НЕГІЗДЕМЕСІ 5
1 Криптографияның негізгі түсініктемелері мен тарихы 5
2 Математикалық негіздемелер 9
2.1 Күрделілік теориясы 9
2.2 Сандар теориясы 13
2.3 Жай сандар генерациясы 18
3 Криптожүйелердің жұмыс істеу принциптері 20
3.1 Криптографиялық кілттерді басқару 21
3.2 Симметриялық (құпиялы) әдістемелер мен алгоритмдер 22
3.3 Асимметриялық (ашық) әдістемелер мен алгоритмдер 25
4 АШЫҚ КІЛТТІ ҚОЛДАНАТЫН АЛГОРИТМДЕР 29
4.1 Ашық кілтті қолданатын алгоритмдердің қауіпсіздігі 29
4.2 Қол қапшық алгоритмы 30
4.3 RSA алгоритмі 33
4.4. RSA шифрлеу жүйесі 35
4.5 RSA алгоритмінің жұмыс істеу жылдамдығы 39
4.6 RSA қауіпсіздігі 40
4.7 RSA бағдарламалық жабдықтаманың сипаттамасы 48
5 .Эллиптикалық криптография ??
5.1 ??
5.2 . ??
5.3 . ??
5.4 ??
5.5 . ??
6 .Программалық коды ??
6.1 Эллиптикалық қисықтың программалық коды ??
6.2 RSA жүйесінің программалық коды . ??
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ
until t*j mod m=1;
lam:=i*t mod m;
x3:=lam*lam mod m;
x3:=(m+m+x3-x1-x2) mod m;
y3:=(m+x1-x3) mod m;
y3:=lam*y3 mod m;
y3:=(m+y3-y1) mod m;
if y1<>y2 then begin
x3:=0;
y3:=0; end;
Edit8.Text:=floattostr(x3);
Edit9.Text:=floattostr(y3);
Grid2.Cells[1,ss-2]:=inttostr(
Grid2.Cells[1,ss-1]:=inttostr(
Grid2.Cells[0,ss-2]:=inttostr(
Grid2.Cells[0,ss-1]:=inttostr(
Grid2.Cells[tt,ss-2]:=
Grid2.Cells[tt,ss-1]:=
Grid2.RowCount:=grid2.
ss:=ss+2;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
Var i,j:integer;
begin
{i:=2+random(grid1.
edit6.Text:=inttostr(
edit8.Text:=inttostr(
edit7.Text:=inttostr(
edit9.Text:=inttostr(
end;
end.
6.2 RSA криптографияның программдық коды
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
Grids, StdCtrls;
type
TForm1 = class(TForm)
Grid1: TStringGrid;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Edit3: TEdit;
Grid2: TStringGrid;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Label4: TLabel;
Label5: TLabel;
Edit6: TEdit;
Label6: TLabel;
Edit7: TEdit;
Label7: TLabel;
Edit8: TEdit;
Button3: TButton;
Edit9: TEdit;
Label8: TLabel;
Button4: TButton;
Label9: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit6Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1:
TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
Label 10;
Var i,j,k:integer;
begin
j:=2;
k:=0;
Grid1.Cells[0,0]:='2';
While k<2 do begin
10:
j:=j+1;
For i:=2
to j-1 do begin
if j mod
i=0 then goto 10;
end;
k:=k+1;
Grid1.Cells[k,0]:=Inttostr(j);
Grid1.ColCount:=Grid1.
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
Label 10,11;
Var i,j,k,p,a,aa,Sum:longint;
begin
Randomize;
10:
p:=170+random(346);;
If p mod
2 =0 then goto 10;
For i:=0 to Grid1.ColCount-2 do begin
If p mod
Strtoint(Grid1.Cells[i,0])=0 then goto 10;
For j:=1 to 1 do begin
a:=3+random(p-3);
k:=0;
Grid2.ColCount:=1;
aa:=trunc((p-1)/2);
repeat
If aa mod 2 =1 then begin
Grid2.Cells[k,0]:=Inttostr(a);
end;
If aa mod 2 =0 then begin
Grid2.Cells[k,0]:=Inttostr(1);
end;
a:=a*a mod
p;
aa:=trunc(aa/2);
k:=k+1;
Grid2.ColCount:=Grid2.
until aa<2;
Sum:=a;
For i:=0 to Grid2.ColCount-2 do begin
Sum:=sum*Strtoint(Grid2.cells[
If (Sum<>1)
and (Sum<>p-1) then Goto 10;
If edit1.Text='' then
Edit1.Text:=Inttostr(p)
else
Edit2.Text:=Inttostr(p)
end;
procedure TForm1.Button2Click(Sender: TObject);
Label 10;
Var p,q,a,b,Fi,N,kal,s,t:integer;
begin
Randomize;
p:=StrToInt(Edit1.Text);
q:=StrToInt(Edit2.Text);
N:=p*q;
Edit3.Text:=Inttostr(N);
Fi:=(p-1)*(q-1);
10:
S:=Fi;
a:=2+random(p-2);
t:=a;
repeat
kal:=S mod t;
//s:=kal;
S:=t;
t:=kal;
until kal=0;
if S<>1 then goto 10;
b:=1;
repeat
b:=b+1;
Until b*a
mod Fi =1;
edit4.Text:=inttostr(a);
Edit5.Text:=inttostr(b);
end;
procedure TForm1.Edit6Click(Sender: TObject);
Var Fi,a,b,s:integer;
begin
a:=strtoint(edit4.Text);
b:=Strtoint(edit5.Text);
Fi:=(Strtoint(edit1.Text)-1)*(
s:=a*b mod Fi;
edit6.Text:=Inttostr(s);
end;
procedure TForm1.Button3Click(Sender: TObject);
Var a,k,aa,n,sum,i:integer;
begin
a:=Strtoint(Edit9.Text);
k:=0;
Grid2.ColCount:=1;
aa:=Strtoint(Edit4.Text);
N:=Strtoint(Edit3.Text);
repeat
If aa mod 2 =1 then begin
Grid2.Cells[k,0]:=Inttostr(a);
end;
If aa mod 2 =0 then begin
Grid2.Cells[k,0]:=Inttostr(1);
end;
a:=a*a mod
N;
aa:=trunc(aa/2);
k:=k+1;
Grid2.ColCount:=Grid2.
until aa<2;
Sum:=a;
For i:=0 to Grid2.ColCount-2 do begin
Sum:=sum*Strtoint(Grid2.cells[
Edit7.Text:=Inttostr(sum);
end;
procedure TForm1.Button4Click(Sender: TObject);
Var a,k,aa,n,sum,i:integer;
begin
a:=Strtoint(Edit7.Text);
k:=0;
Grid2.ColCount:=1;
aa:=Strtoint(Edit5.Text);
N:=Strtoint(Edit3.Text);
repeat
If aa mod 2 =1 then begin
Grid2.Cells[k,0]:=Inttostr(a);
end;
If aa mod 2 =0 then begin
Grid2.Cells[k,0]:=Inttostr(1);
end;
a:=a*a mod
N;