Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_1 защита информации.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
300.54 Кб
Скачать

18

Содержание

1 Методы шифрования (краткий обзор)

4

2 Шифрование методами перестановки и замены (подстановки)

5

2.1 Шифры перестановки

5

2.2 Шифры замены (подстановки)

9

3 Формулировка задания

16

Список литературы

18

1 Методы шифрования (краткий обзор)

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

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

Использование криптографии - один из распространенных методов, значительно повышающих безопасность передачи данных в сетях ЭВМ, данных, хранящихся в удаленных устройствах памяти, и при обмене информацией между удаленными объектами. Для преобразования (шифрования) обычно используется некоторый алгоритм или устройство, реализующее заданный алгоритм, которые могут быть известны широкому кругу лиц. Управление процессом шифрования осуществляется с помощью периодически меняющегося кода ключа, обеспечивающего каждый раз оригинальное представление информации при использовании одного и того же алгоритма или устройства. Знание ключа позволяет просто и надежно расшифровать текст. В противном случае эта процедура может быть практически невыполнима даже при известном алгоритме шифрования.

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

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

Методы перестановки и подстановки обычно характеризуются короткой длиной ключа, а надежность их защиты определяется сложностью алгоритмов преобразования. Аддитивным методам присущи простые алгоритмы преобразования, а их криптостойкость основана на увеличении длины ключа.

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

2 Шифрование методами перестановки и замены (подстановки)

2.1 Шифры перестановки

Шифр, преобразования из которого изменяют только порядок следования символов исходного текста, но не изменяют их самих, называется шифром перестановки (ШП).

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

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

где i1 - номер шифртекста, на которое попадает первая буква исходного сообщения при выбранном преобразовании, i2 - номер места для второй буквы и т.д. В верхней строке таблицы выписаны по порядку числа от 1 до n , а в нижней - те же числа, но в произвольном порядке. Такая таблица называется подстановкой степени n.

Зная подстановку, задающую преобразование, можно осуществить как зашифрование, так и расшифрование текста. Например, если для преобразования используется подстановка

1

2

3

4

5

6

5

4

3

1

2

6

и в соответствии с ней зашифровывается слово ПРИМЕР, то получится МЕИРПР.

Следующий фрагмент программного кода (на языке Object Pascal) демонстрирует использование шифра перестановки для шифрования исходного сообщения и его расшифровки:

…………………………………………….

const Lmax=100;

…………………………………………….

type TArr=array[1..Lmax] of integer;

…………………………………………….

{процедура-функция шифрования текста

входные параметры: txt - исходный текст, password - ключ

результат функции - строка зашифрованного текста}

function SH_TO(txt:string;password:TArr):string;

var i,l:integer;

shifr:array[1..Lmax] of char;

s:string;

begin

l:=length(txt);

for i:=1 to l do

shifr[password[i]]:=txt[i];

for i:=1 to l do

s:=s+shifr[i];

result:=s;

end;

…………………………………………….

{процедура-функция расшифровки текста

входные параметры: txt - зашифрованный текст, password - ключ

результат функции - строка расшифрованного текста}

function SH_FROM(txt:string;password:TArr):string;

var i,l:integer;

s:string;

begin

l:=length(txt);

for i:=1 to l do

s:=s+txt[Password[i]];

result:=s;

end;

…………………………………………….

Широкое распространение получили шифры перестановки, использующие некоторую геометрическую фигуру. Преобразования из этого шифра состоят в том, что в фигуру исходный текст вписывается по ходу одного «маршрута», а затем по ходу другого выписывается с нее. Такой шифр называют маршрутной перестановкой. Например, можно вписывать исходное сообщение в прямоугольную таблицу, выбрав такой маршрут: по горизонтали, начиная с левого верхнего угла поочередно слева направо и справа налево. Выписывать же сообщение - по другому маршруту: по вертикали, начиная с верхнего правого угла и двигаясь поочередно сверху вниз и снизу вверх.

Разновидностью шифра маршрутной перестановки является «шифр вертикальной перестановки» (ШВП). Запись исходного текста сообщения вписывается обычным способом в некоторую матрицу (по строкам слева направо). Выписываются буквы по вертикали, а столбцы при этом берутся в порядке, определяемом ключом. Таким образом, для матрицы размерностью 8x8 возможно 1,6x109 ключей, что позволяет на современных ЭВМ путем перебора расшифровать заданный текст. Но для матрицы 16x16 уже имеется 1,4x1026 ключей и их перебор затруднителен.

Пусть, например, с помощью ключа: (5,4,1,7,2,6,3) надо зашифровать сообщение:

ВОТПРИМЕРШИФРАВЕРТИКАЛЬНОЙПЕРЕСТАНОВКИ

Впишем сообщение в прямоугольник, столбцы которого пронумерованы в соответствии с ключом:

5

1

4

7

2

6

3

В

О

Т

П

Р

И

М

Е

Р

Ш

И

Ф

Р

А

В

Е

Р

Т

И

К

А

Л

Ь

Н

О

Й

П

Е

Р

Е

С

Т

А

Н

О

В

К

И

-

-

-

-

Теперь, выбирая столбцы в порядке, заданном ключом, и выписывая последовательно буквы каждого из них сверху вниз, получаем такую криптограмму:

ОРЕЬЕКРФИЙА-МААЕО-ТШРНСИВЕВЛРВИРКПН-ПИТОТ-

Число ключей ШВП не более m!, где m - число столбцов таблицы. Как правило, m гораздо меньше, чем длина текста n (сообщение укладывается в несколько строк по m букв).

Интересна схема перестановки, напоминающая тасовку колоды карт. Так, если S=A+B+C представляет собой исходный блок текста, переставляемый побайтно, то результатом такой перестановки будет S=C+B+A, где разбиение на фрагменты A, B и C делается случайным образом. После нескольких тасовок символы исходного текста оказываются основательно перемешаны. Эта тасовка в состоянии после многократного повторения осуществить любую перестановку.

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

Прием перестановки тасовкой демонстрирует следующий фрагмент программного кода:

…………………………………………….

const

Lmax=100;

…………………………………………….

type

TArr=array[1..Lmax] of integer;

…………………………………………….

{процедура-функция генерации ключа для шифрования тасовкой

входной параметр L - длина блока исходного текста для зашифровки}

function Passwrd(L:integer):TArr;

var

i:integer;

arr:TArr;

begin

for i:=1 to 2 do

arr:=PerestRnd(L); // function PerestRnd(l:integer):TArr; -

// функция (определяемая пользователем) формирования

// случайным образом L неповторяющихся целых чисел

// в диапазоне от 1 до L,

// результат - в виде массива;

result:=arr;

end;

{**********************************************************}

{процедура-функция шифрования исходного текста txt,

результат типа string - зашифрованный текст}

function SHTasov_TO(txt:string;passw:TArr):string;

var

i,j,w,n,m:integer;

s:string;

begin

j:=0; s:=txt;

for i:=1 to length(txt) do

begin

j:=i*2;

n:=passw[j-1];

m:=passw[j];

if n>m then

begin

w:=n; n:=m; m:=w;

end;

s:=copy(s,m+1,length(txt)-m)+copy(s,n+1,m-n)+copy(s,1,n);

end;

result:=s;

end;

{**********************************************************}

{процедура-функция расшифровки текста txt,

результат типа string - расшифрованный текст}

function SHTasov_FROM(txt:string;passw:TArr):string;

var

i,j,w:integer;

n,m:longint;

s:string;

begin

j:=0; s:=txt;

for i:=length(txt) downto 1 do

begin

j:=i*2;

n:=passw[j-1];

m:=passw[j];

if n>m then

begin

w:=n; n:=m; m:=w;

end;

s:=copy(s,length(txt)-n+1,n)+copy(s,length(txt)-m+1,m- n)+copy(s,1,length(txt)-m);

end;

result:=s;

end;

После выполнения получим:

- исходный текст: ПРИМЕР ПЕРЕСТАНОВКИ ТАСОВКОЙ

- шифрованный

текст: ТСВРЕОРКОСОИАМНТЙП ЕИЕАП ВРК

- результат

расшифровки: ПРИМЕР ПЕРЕСТАНОВКИ ТАСОВКОЙ

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

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