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

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

Шифрование с помощью перестановок

Вариант №1

Выполнила:

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

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

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

Программа шифрования с помощью перестановки:

program TRANS; {программа шифрования с помощью перестановки}

uses WinCrt,Windos;

var

i,j,k,m:integer;

f1,f2:file;

numf1,numf2:string;

nr,nw:word;

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

const

kluch:array[1..9] of integer=(1,5,4,2,7,6,9,3,8);

{ключ - набор неповторяющихся чисел от 1 до 9}

begin

{$I-}

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

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

readln(numf1);

assign(f1,numf1);

reset(f1,1);

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

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

readln(numf2);

assign(f2,numf2);

rewrite(f2,1);

writeln('введите ключ – строку из десяти неповторяющихся цифр от 1 до 9');

for i:=1 to 9 do kluch[i]:=(ord(readkey)-48)mod 10;

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

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

writeln;

repeat

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

for i:=1 to nr div 9 do

begin

for j:=1 to 9 do

begin

k:=9*(i-1)+j;

m:=9*(i-1)+kluch[j];

buf2[k]:=buf1[m];

end;

end;

blockwrite(f2,buf2,nr,nw);

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

close(f1);

close(f2);

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

{$I+}

end.

Программа дешифрования:

program STRANS; {программа дешифрования}

uses Crt,Windos;

var

i,j,k,m:integer;

f1,f2:file;

numf1,numf2:string;

nr,nw:word;

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

const

kluch:array[1..9] of integer=(1,5,4,2,7,6,9,3,8);

{ключ - набор неповторяющихся чисел от 1 до 9}

begin

{$I-}

writeln(' программа дешифрования чисел с помощью перестановок ');

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

readln(numf1);

assign(f1,numf1);

reset(f1,1);

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

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

readln(numf2);

assign(f2,numf2);

rewrite(f2,1);

writeln('введите ключ – строку из десяти неповторяющихся цифр от 1 до 9');

for i:=1 to 9 do kluch[i]:=(ord(readkey)-48)mod 10;

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

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

writeln;

repeat

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

for i:=1 to nr div 9 do

begin

for j:=1 to 9 do

begin

k:=9*(i-1)+j;

m:=9*(i-1)+kluch[j];

buf2[m]:=buf1[k];

end;

end;

blockwrite(f2,buf2,nr,nw);

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

close(f1);

close(f2);

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

{$I+}

end.

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