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

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

Блочное шифрование

Вариант №1

Выполнила:

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

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

Цель работы: изучение методов блочного шифрования.

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

Ключ

1

3r8tl34ri

С помощью программы шифрования AVTOKEY.exe зашифрован файл D3.doc с ключом 3r8tl34ri, полученный файл с именем D3_s.doc расшифрован по этому же ключу, в итоге полученный файл D3_DSH.doc совпал с исходным.

Программа блочного шифрования:

program avto;

uses WinCrt,Windos;

var

i,j,k,m,nb:integer;

f1,f2:file;

numf1,numf2:string;

nr,nw:word; {county}

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

bf:char;

const

kluch:array[0..9] of integer=(5,8,12,54,3,9,77,44,32,88);

begin

{$I-}

writeln('программа шифрования по автоключу');

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

readln(numf1);

assign(f1,numf1);

reset(f1,1);

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

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

readln(numf2);

assign(f2,numf2);

rewrite(f2,1);

writeln('введите ключ – строку из десяти символов');

for i:=0 to 9 do kluch[i]:=ord(readkey);

writeln;writeln('ваш ключ ');

for i:=0 to 9 do write(chr(kluch[i]),' ');

writeln;

nb:=1;

repeat

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

{writeln('количество блоков в исходном файле',nr);}

for i:=1 to nr do

begin

if nb=1 then begin

buf2[i]:=buf1[i] xor kluch[i mod 10];

end;

if nb>1 then begin

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

end;

buf3[i]:=buf1[i];

end;

blockwrite(f2,buf2,nr,nw);

{writeln('количество блоков в зашифрованном файле',nw);}

nb:=nb+1;

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

close(f1);

close(f2);

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

{$I+}

end.

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