Автор: Пользователь скрыл имя, 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 жүйесінің программалық коды . ??
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ
Edit8.Text:=floattostr(x3);
Edit9.Text:=floattostr(y3);
Edit6.Text:=inttostr(x3);
Edit7.Text:=inttostr(m-y3);
Edit8.Text:=inttostr(strtoint(
Edit9.Text:=inttostr(strtoint(
m:=strtoint(edit4.Text);
for
k:=1 to 1 do
x1:=Strtoint(edit6.Text); x2:=Strtoint(edit8.Text);
y1:=Strtoint(edit7.Text);
y2:=Strtoint(edit9.Text);
if (x1<>x2) then
i:=(m+y2-y1) mod m;
j:=(m+x2-x1) mod m;
t:=0;
repeat
t:=t+1;
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 (x1=x2) then
zz:=y1+y2;
if zz=0 then begin
x3:=0;y3:=0; end
else
if y1=y2 then
begin
i:=3*x1 mod m;
i:=i*x1 mod m;
i:=(i+Strtoint(edit1.Text)) mod m;
j:=2*y1 mod m;
t:=0;
repeat
t:=t+1;
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);
edit25.Text:=inttostr(x3);
edit26.Text:=inttostr(y3);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
Label 10;
Var lam,x1,y1,x2,y2,x3,y3,i,j,m,t,
begin
begin
//edit3.Text:='';
randomize;
m:=strtoint(edit4.Text);
x1:=Strtoint(edit6.Text);
edit8.Text:=inttostr(strtoint(
y1:=Strtoint(edit7.Text);
edit9.Text:=inttostr(strtoint(
repeat
x1:=2+random(m-2);
y2:=x1;
y1:=m+1;
repeat
x2:=y1 mod x1;
y1:=x1;
x1:=x2;
until
x2=0;
until y1=1;
//if x1<>1 then goto 10 ;
edit12.Text:=inttostr(y2);
//edit12.Text:=inttostr(
for k:=1 to Strtoint(Edit12.Text)-1 do begin
x1:=Strtoint(edit6.Text); x2:=Strtoint(edit8.Text);
y1:=Strtoint(edit7.Text);
y2:=Strtoint(edit9.Text);
if (x1<>x2) then
i:=(m+y2-y1) mod m;
j:=(m+x2-x1) mod m;
t:=0;
repeat
t:=t+1;
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 (x1=x2) then
zz:=y1+y2;
if zz=0 then begin
x3:=0;y3:=0; end
else
if y1=y2 then
i:=3*x1 mod m;
i:=i*x1 mod m;
i:=(i+Strtoint(edit1.Text)) mod m;
j:=2*y1 mod m;
t:=0;
repeat
t:=t+1;
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);
end;
text:=x3+y3;
if text=0 then
edit3.Text:='jkkj';
end;
end;
procedure TForm1.CheckBox3Click(Sender: TObject);
begin
if checkbox3.Checked then
timer1.Enabled:=true;
end;
procedure TForm1.CheckBox4Click(Sender: TObject);
begin
if checkbox4.Checked then
timer1.Enabled:=false;
end;
procedure TForm1.Button7Click(Sender: TObject);
Var lam,x1,y1,x2,y2,x3,y3,i,j,m,
begin
ss:=2;
m:=strtoint(edit4.Text);
For
s:=2 to grid1.ColCount-1 do
x1:=strtoint(grid1.cells[
y1:=strtoint(grid1.cells[
x2:=strtoint(grid1.cells[
y2:=strtoint(grid1.cells[
edit6.Text:=inttostr(x1);
edit7.Text:=inttostr(y1);
edit8.Text:=inttostr(x1);
edit9.Text:=inttostr(y1);
For
tt:=2 to Grid1.colcount-1 do
edit12.Text:=inttostr(tt)
edit8.text:=inttostr(
edit9.text:=inttostr(
for
k:=1 to Strtoint(Edit12.Text)-1 do
x1:=Strtoint(edit6.Text); x2:=Strtoint(edit8.Text);
y1:=Strtoint(edit7.Text);
y2:=Strtoint(edit9.Text);
if (x1<>x2) then
i:=(m+y2-y1) mod m;
j:=(m+x2-x1) mod m;
t:=0;
repeat
t:=t+1;
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 (x1=x2) then
zz:=y1+y2;
if zz=0 then begin
x3:=0;y3:=0; end
else
if y1=y2 then
begin
i:=3*x1 mod m;
i:=i*x1 mod m;
i:=(i+Strtoint(edit1.Text)) mod m;
j:=2*y1 mod m;
t:=0;
repeat
t:=t+1;