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

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

Гаммирование

Вариант №2

Выполнила:

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

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

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

Вариант

G(0)

A

C

Длина последовательности

Оценка

2

56

765

0

1001

2

С помощью программы DATCHIK.exe в соответствии с таблицей проверены датчики ПСП.

С помощью программы GAMMA.pas зашифрован файл D4.doc собственным ключом, полученный файл с именем D4_s.doc расшифрован по этому же ключу, в итоге полученный файл D4_dsh.doc совпал с исходным.

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

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.

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