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

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

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

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

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

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

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

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

Блочные шифры могут работать в нескольких режимах.

В режиме электронной кодовой книги исходный текст разбивается на блоки, равные размеру блока шифра. Каждый блок шифруют независимо от других с использованием одного ключа шифрования. Недостаток этого режима заключается в том, что одинаковые блоки открытого текста преобразуются в одинаковые блоки шифротекста, что может дать определенную информацию о содержании сообщения. Основным достоинством этого режима является простота реализации.

В режиме сцепления блоков шифротекста ликвидируется недостатки предыдущего режима , так как каждый последующий блок зависит от всех предыдущих.

В этом режиме исходный текст также разбивается на блоки, которые обрабатываются следующим образом:

- первый блок складывается по модулю 2 с некоторым значением (начальным вектором ), который является ключом.

  • полученный блок подрергается шифрованию и служит начальным вектором для следующего блока исходного текста.

Наиболее известные примеры блочного шифрования это российский (ГОСТ 28147-89) и американский(DES) стандарты шифрования.

Одним из примеров блочного шифрования является шифр с автоключом. Шифр с автоключом - это шифр типа Виженера, в котором или само сообщение или результирующая криптограмма используются в качестве "ключа". Шифрование начинается с помощью "первичного ключа" (который является настоящим ключом) и продолжается с помощью сообщения или криптограммы, смещенной на длину первичного ключа. Размер блока может быть выбран кратным длине первичного ключа. Таким образом, первый блок шифруется с помощью первичного ключа, а последующие - с использованием в качестве ключа предыдущего блока.

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

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

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

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.

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

1 Разобрать программу AVTOKEY.pas , которая осуществляет

шифрование файла с помощью автоключа

с помощью первичного ключа с d=10 .

2 С помощью программы AVTOKEY.pas зашифровать файл

D3.doc и получить файл D3_s.doc

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

дешифрования AVTOKEY_DSH.pas

4 Расшифровать файл D3_S.doc и получить дешифрованный файл D3_DSH.doc . Сравнить файлы D3.doc и D3_DSH.doc .

5 Предложить собственный ключ и проверить ее

шифровкой и дешифровкой файлов.

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

Ключ

1

3r8 tl34ri

2

934423m35n

3

U98o43vu45

4

kvmdkf4r5v

5

mcgife0tr9

6

ale90243fd

7

Dmveir5834

8

03tnfdvwt7

9

Mcxovi8w39

10

v90bzrtvnd

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

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

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

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

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

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

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

файла.

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

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

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

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

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

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

задания.

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

1. Для шифрования очередного блока (кроме первого) используется в качестве ключа предыдущий блок . Для шифрования этот блок может быть использован в уже зашифрованном или еще не зашифрованном виде . Как это производится в программе AUTO_KEY.PAS ?

  1. Каковы принципы действия устройств , описанных в файле D3.doc.?

5

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