У вас вопросы?
У нас ответы:) SamZan.net

На тему - Изучение алгоритмов RS генерации секретного и открытого ключа По дисциплине- ldquo; Основы защит

Работа добавлена на сайт samzan.net: 2016-03-30

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 10.6.2025

Министерство образования и науки Украины

Севастопольский национальный технический университет

Кафедра КИБЕРЕНЕТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

ОТЧЕТ

по Лабораторной работе № 3

На тему :

«Изучение алгоритмов RSA - генерации секретного и открытого ключа»

По дисциплине: “ Основы защиты информации

Выполнил:

студент группы М-52д

Мирошниченко С.В.

Принял:

Севастополь

5


Цель работы:

Освоить механизм шифрования и дешифрования данных в криптографической системе с открытыми ключами RSA.

Теоретические сведения.

RSA-система с открытым ключом.

Криптографические системы с открытым ключом позволят создать в 90-х годах новую защищенную систему телефонной связи  с  числом абонентов до 3 миллионов. Компании АТ&Т, Motorola, RCA производят аппараты, допускающие совместную работу;  компания GTE разрабатывает систему управления ключами.  Поставки первых 75000 телефонов начались в 1987 году. Разработана специализированная интегральная схема IDS-P2 (МВ8763), реализующая алгоритм DH и вычисляющая секретный ключ за 0,9 с.  Программная реализация алгоритма RSA  осуществлена компанией RSA Data Security, аппаратная реализация того же алгоритма и специализированная  интегральная  схема  выполнены фирмой Sandia.  Фирма  Cylink выпустила специализированную интегральную схему CY1024,  реализующую алгоритм RSA и  обеспечивающую скорость шифрования 1000 бит/с.

Алгоритм шифрования и дешифрования RSA.

Выберем два очень больших простых  p и q.

Определим n=p*q.

Выберем большое случайное число, которое назовем d. Это число должно быть взаимно простым с результатом (p-1)*(q-1).

Определим такое число е, для которого является истинным соотношение (e*d) mod((p-1)*(q-1))=1.

Назовем открытым ключом числа e и n, а секретным ключом  -числа d и n.

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

разбить шифруемый текст на блоки, каждый из которых может быть представлен в виде числа М(i)= 0,1,...,n-1;

зашифровать текст, рассматриваемый как последовательность чисел M(i)  по формуле:

C(i) = (M(i)e)*mod n;

Чтобы расшифровать эти данные, используется секретный ключ {d,n}  и выполняются следующие вычисления:

M(i) = (C(i)d) *mod n.

В результате получают исходный текст M(i).

Вывод:

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

ТЕКСТ  ПРОГРАММЫ.

var

Form1: TForm1;

flof:boolean;

alf1:string;

p,q,n,m,d,e:longword;

f1,f3,f2:TextFile;

s:real;

mi:char;

mc:byte;

implementation

{$R *.dfm}

procedure TForm1.N1Click(Sender: TObject);

begin

alf1:=('.,абвгдежзийклмнопрстуфхцчшщьъыэюя АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯ');

flof:=false;

if OpenDialog1.Execute then

begin

flof:=true;

end; end;

procedure TForm1.N3Click(Sender: TObject);

begin

if (P_par.Text>'0')and(Q_par.Text>'0')then

begin

if flof then

begin

GetKey;

Code;

end

else ShowMessage('Файл не выбран');

end

else ShowMessage('Заданы не все параметры');

end;

procedure TForm1.GetKey;

label l;

var i:integer;

begin

p:=StrToInt(P_par.Text);

q:=StrToInt(Q_par.Text);

n:=p*q;

m:=(p-1)*(q-1);

randomize();

l:  d:=random(50)+1;

for i:=2 to d do if(d mod i = 0)and(M mod i=0) then goto l;

e:=1;

while (((e*d)mod(m)<>1)) or(e=d)do inc(e);

D_par.Text:=IntToStr(d);

N_par.Text:=IntToStr(n);

N1_par.Text:=IntToStr(n);

E_par.Text:=IntToStr(e);

end;

procedure TForm1.Code;

var j,k:integer;

mj,s:Int64;

begin

assignFile(f1,OpenDialog1.FileName);

assignFile(f2,'c:\code.cod');

rewrite(f2);

reset(f1);

while not eof(f1) do

begin

read(f1,mi);

k:=1;

while mi<>alf1[k] do inc(k);

mj:=k;s:=k;

for j:=1 to e-1 do begin s:=s*mj;s:=s mod(n);end;

mc:=s;

write(f2,alf1[mc]);

end;

Closefile(f2);

CloseFile(f1);

end;

procedure TForm1.N5Click(Sender: TObject);

begin

if (D_par.Text>'0')and(N_par.Text>'0')then

begin

if flof then

begin

d:=StrToInt(D_par.Text);

n:=StrToInt(N_par.Text);

Decode;

end

else ShowMessage('Error read file !');

end

else ShowMessage('Параметры заданы неверно !');

end;

procedure TForm1.Decode;

var j,k,mr:integer;

s:Int64;

c,mj:char;

begin

assignFile(f2,OpenDialog1.FileName);

assignFile(f3,'c:\decode.txt');

rewrite(f3);

reset(f2);

while not eof(f2) do

begin

read(f2,mj);

k:=1;

while mj<>alf1[k] do inc(k);

s:=k;mr:=k;

for j:=1 to d-1 do begin s:=s*mr;s:=s mod(n);end;

c:=alf1[s];

write(f3,c);

end;

Closefile(f3);

Closefile(f2);

end;

end.




1. дипломная практика ~ неотъемлемая часть учебного процесса в подготовке квалифицированных специалистов
2. Разработка приложения позволяющего проводить тестирование по разделу
3. холостяцки- увлекались женщинами игрой насколько позволял кошелёк когда же не представлялось ничего лучше
4. Нормирование качества воздуха
5. Экстремумы функций многих переменных
6. УТВЕРЖДАЮ
7. Тема 56. Створення публікацій для навчальнонаукового проекту
8. УТВЕРЖДАЮ.html
9.  Понятие и порядок ведения Единой товарной номенклатуры внешнеэкономической деятельности
10. Антигуа