Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
29
Добавлен:
27.04.2015
Размер:
19.31 Кб
Скачать

Лабораторная работа №5

Системы с открытым ключом

Вариант №2

Выполнила:

студентка группы 08-АС

Смирнова А.А.

Цель работы: исследование метода шифрования информации с использованием открытых ключей.

Расчет закрытого и открытого ключа из таблицы:

Номер варианта

P

Q

N

K

E

d

2

31

17

527

480

37

25

p = 31

q = 17

N = pq = 527

K = (p-1)(q-1) = 480

С помощью программы S_RSA.pas зашифрован файл D.txt, полученный файл с именем D_s.txt расшифрован, в итоге полученный файл D_DSH.txt совпал с исходным.

Программы датчика случайных чисел и гаммирования:

program Datchic;

uses WinCrt,Windos;

var

G0,A,G,C,i:longint;

Y:char;

const

M:longint=65536;

label 1;

begin

i:=0;

writeln(' программа - датчик случайных чисел ');

writeln(' G(i+1)=(A*G(i)+C) mod 65535');

1:

writeln('введите A,C и G(0) (числа до 65535)');

readln(A,C,G0);

i:=0; G:=G0;

repeat

if i=1000 then G0:=G;

G:=(A*G+C) mod M;

i:=i+1;

until (G=G0)or(i=65535);

writeln;

writeln('длина псевдослучайной последовательности чисел ',i);

writeln('продолжить ? Y - да');

Y:=readkey; if Y='y' then goto 1;

writeln('конец программы')

end.

program GAMMA; {программа гаммирования }

uses WinCrt;

var

i,j,k:integer;

f1,f2:file;

numf1,numf2:string;

nr,nw:word;

buf1,buf2:array[1..2048]of shortint;

bf:char;

G,C,A:integer;

function DAT:integer;

begin

G:=(G*A+C) mod 65535;

DAT:=G;

end;

begin

writeln(' программа гаммирования');

writeln(' введите имя шифруемого(расшифруемого) файла ');

readln(numf1);

assign(f1,numf1);

reset(f1,1);

writeln('файл открыт');

writeln(' введите имя зашифрованного(расшифрованного) файла');

readln(numf2);

assign(f2,numf2);

rewrite(f2,1);

writeln('введите A,C и G(0) (числа до 65535)');

readln(A,C,G);

repeat

blockread(f1,buf1,sizeof(buf1),nr);

for i:=1 to nr do

buf2[i]:=buf1[i] xor DAT;

blockwrite(f2,buf2,nr,nw);

until (nr=0) or (nw<>nr);

close(f1);

close(f2);

writeln(' файл зашифрован(расшифрован) ');

end.

Соседние файлы в папке ЗащИнф