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

4 курс / ЗащИнф / лаб-р-защ-1 / Лаб.раб

.1.doc
Скачиваний:
28
Добавлен:
27.04.2015
Размер:
111.45 Кб
Скачать

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

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

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

Введение

В общем случае пеpестановкой набоpа целых чисел (0,1,...,N-1) называется его пеpеупоpядочение, то есть транспозиция с фиксированным периодом d. Для шифрования сообщение делится на группы символов длины d и к каждой группе применяется одна и та же перестановка. Эта перестановка является ключом. Перестановка может быть задана некоторой последовательностью d целых чисел, где очередное число определяет порядковый номер символа, который должен быть переставлен на место данного символа. Например, для d = 5 в качестве перестановки можно взять 31542. Это означает, что сообщение

s1s2s3s4s5 s6s7s8s9s10...

переходит в

s3s1s5s4s2 s8s6s10s9s7...

Последовательное применение двух или более транспозиций называется составной транспозицией. Если периоды этих транспозиций равны d1,...,ds, то, очевидно, в результате получится транспозиция периода d, где d - наименьшее общее кратное d1,...,ds. Для того чтобы показать, что целое i пеpемещено из позиции i в позицию (i), используется запись

((0), (N-1(1),...,)).

Для оценки криптостойкости этого метода необходимо учитывать , что общее число пеpестановок из (0,1,...,N-1) pавно N!=1*2*...*(N-1)*N , то есть быстро возрастает с увеличением длины ключа

Пример программы:

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

Листинг программы

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=(4,6,3,7,1,8,5,2,9);

{ ключ - набор неповторяющихся чисел от 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.

Задание к лабораторной работе

1 Разобрать программу TRANS.PAS которая осуществляет:

- поблочное чтение шифруемого файла

- шифрования блока с помощью перестановки,

задаваемой ключом c d=9;

- поблочную запись шифрованного файла.

2 Зашифровать файл D1.doc c помощью программы

TRANS.PAS и получить зашифрованный файл

D1_S.doc .

Варианты ключей приведены в таблице 1:

Таблица 1

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

Ключ

1

1,5,4,2,7,6,9,3,8

2

9,5,6,7,4,1,8,3,2

3

2,6,4,3,7,1,9,5,8

4

8,4,7,6,2,5,1,3,9

5

3,7,4,5,2,9,6,7,8

6

7,3,4,5,6,9,1,2,5

7

4,8,6,5,9,3,2,1,7

8

6,2,5,4,8,1,3,9,7

9

5,9,8,6,4,9,1,7,3

10

1,5,4,3,9,8,7,2,6

3. На основе программы TRANS.PAS сделать программу

дешифрования файла TRANS_DSH.PAS .

4. Расшифровать файл D1_S.doc и получить

расшифрованный файл D1_DSH.doc . Просмотреть

файлы D1.doc и D1_DSH.doc и сравнить их.

5. Предложить собственный ключ шифрования с d=9 и с его

помощью зашифровать и расшифровать самостоятельно

подготовленные файлы

7. Прочитать и разобрать описания устройств, содержащихся в файле

D1.doc :

- назначение устройства

- принцип действия устройства

- характеристики устройств (габариты, потребляемая мощность, способ установки, режимы работы и др.)

Выполнение лабораторной работы

1. Получить задание у преподавателя.

2. Написать и отладить на компьютере программу расшифрования

файла.

  1. Получить и представить преподавателю результат выполнения пунктов 1-7.

Содержание отчета

Отчет включает:

1. краткое теоретическое введение

2. содержание задания;

3. листинги программ и. результаты выполнения пунктов 1-7

задания.

Контрольные вопросы

  1. Заданы две перестановки с периодами d1 и d2 , применяемые последовательно, причем d1=99. Каково должно быть значение d2 <100 для того, чтобы общий период был наибольшим ?

  2. От каких угроз защищают устройства, описанные в файле

D1.doc .?

PAGE 1

Соседние файлы в папке лаб-р-защ-1