Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕТОДЫ И СРЕДСТВА ЗАЩИТЫ КОМПЬЮТЕРНОЙ ИНФОРМАЦИИ.doc
Скачиваний:
251
Добавлен:
01.05.2014
Размер:
619.52 Кб
Скачать

1.1.3. Гаммирование

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

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

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

Ti+1= (A. Ti+C) mod m

Та­кой дат­чик ПСЧ ге­не­ри­ру­ет псев­до­слу­чай­ные чис­ла с оп­ре­де­лен­ным пе­рио­дом по­вто­ре­ния, за­ви­ся­щим от вы­бран­ных зна­че­ний А и С. Зна­че­ние mобыч­но ус­та­нав­ли­ва­ет­ся рав­ным 2n , где n- дли­на машинного сло­ва в би­тах. Дат­чик име­ет мак­си­маль­ный пе­ри­од М до то­го, как ге­не­ри­руе­мая по­сле­до­ва­тель­ность нач­нет по­вто­рять­ся. По при­чи­не, от­ме­чен­ной ра­нее, не­об­хо­ди­мо вы­би­рать чис­ла А и С та­кие, что­бы пе­ри­од М был мак­си­маль­ным. Как по­ка­за­но Д. Кну­том, ли­ней­ный кон­гру­энт­ный дат­чик ПСЧ име­ет мак­си­маль­ную дли­ну М то­гда и толь­ко то­гда, ко­гда С - не­чет­ное, и А mod 4 = 1.

1.2. Порядок выполнения лабораторной работы

Порядок выполнения лабораторной работы заключается в следующем:

1) ознакомиться с разделами методических указаний к данной лабораторной работе;

2) получить у преподавателя вариант (варианты) заданий на исследование описанных выше шифров;

3) составить контрольный пример;

4) разработать и реализовать заданный(е) алгоритм(ы) шифрования/дешифрования;

5) на контрольном примере проверить правильность работы алгоритмов шифрования и дешифрования;

6) составить отчет.

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

1.3. Содержание отчета о выполненной работе

Отчет должен содержать следующие разделы:

1. Название и цель работы.

2. Исходные данные.

3. Контрольный пример.

4. Результаты работы программы с различными исходными текстами, ключами и другими параметрами.

5. Ответы на контрольные вопросы.

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

1. Какой шифр называется шифром подстановки?

2. Какой шифр называется шифром перестановки?

3. Какой шифр называется поворотной решеткой?

4. Какой шифр называется шифром вертикальной перестановки?

5. К какому классу шифров относится шифр Цезаря?

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

Основы блочного шифрования.

Цель работы. Изучение симметричных алгоритмов шифрования, основанных на блочных шифрах

2.1. Общие сведения

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

В принципе, блочный шифр – это шифр замены над очень большим алфавитом (из десятков и сотен бит). Количество бит в обрабатываемом блоке называется разрядностью блока, количество бит в ключе –размером ключа блока. Наиболее популярная разрядность блока на сегодняшний 64 и 128 бит. Размер ключа – это 128, 192 или 256 бит.

В общем виде процесс блочного шифрования описывается формулой:

Z=EnCript (X, Key),

где X– блок исходного текста,Z – зашифрованный блок,Key– ключ шифрования. Разрядность зашифрованного блока в классических блочных шифрах с разрядностью исходного блока, поэтому за этап собственно шифрования поток данных не увеличивается и не уменьшается в размерах. Дешифрование описывается соответственно формулой

Х=DeCript (Z, Key).

В тех случаях, когда и для шифрования и для дешифрования использeется одна и та же последовательность действий, т. е.EnCript = DeCript = Criptи, соответственно,Cript ( Cript (X, Key), Key) = Xблочный шифр называется абсолютно симметричным.

Основной идеей практически всех блочных шифров является тот факт, что последовательность бит любой длины Q можно представить в виде натурального числа из диапазона [0 … 2Q– 1]. Один и тот же объем данных, разбивая на блоки разными способами, можно представить как в виде большого набора небольших чисел, например от 0 до 15 или от 0до 255, так и в виде нескольких больших чисел, например, из диапазона [0 ….4294967295]. Здесь все зависит от от схемы разбиения потока данных на блоки бит. Вот над этими натуральными числами и производится множество простейших математических и алгоритмических преобразований, т. н. криптопримитивов – из числа тех, которые легко выполняются на современной архитектуре ЭВМ.

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

Таблица 2.1. Основные обратимые криптопримитивы

Операция

Условные

обозначения

Математическая

нотация

Примечания

Сложение

Х' = Х +V

При переполнении резуль-татом разрядности операндов бит переноса отбрасывается – потери информации при этом не происходит

Исключающее "ИЛИ"

(XOR)

X' = X V

или

X' = X XOR V

Операция обратима сама себе

Умножение по модулю 2N+1

X' = (X*V) mod (2N+1)

Данное преобразование обратимо. Сомножитель по известному произведению и другому сомножителю находится по алгоритму Евклида.

Циклический битовый сдвиг влево

X' = X ROL V

Операция является обратной к "циклическому сдвигу вправо"

Циклический битовый сдвиг вправо

X' = X ROR V

Операция является обратной к "циклическому сдвигу влево"

Произвольная перестановка бит

Данная операция рассчитана в основном на аппаратную реализацию, и поэтому сейчас в значительной степени устарела.

Табличная подстановка

S

X" = S – Box |X|

С помощью табличных подстановок(англ.Substitute-boxS-box)) реализуются наиболее общие законы изменения данных, зачастую не описываемые ни аналитически, ни алгоритмически.

Таблица 2.2. Основные необратимые криптопримитивы

Операция

Условные

обозначения

Математическая

нотация

Примечания

Умножение

*

Х' = (Х V) mod(2N)

Х' = (Х V) mod(2N)

Остаток (модуль) от деления

X' = X mod V

X' = X mod V

Арифметический битовый сдвиг влево

X' = X SHL V

X' = X SHL V

Арифметический битовый сдвиг вправо

X' = X SHR V

X' = X SHR V

Логическое "И"

X' = X AND V

X' = X AND V

Логическое "ИЛИ"

X' = X OR V

X' = X OR V

В качестве параметра Vв обратимых и необратимых операциях могут выступать, во-первых, фиксированные числовые константы.

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

Операции, в которых в качестве параметра Vиспользуется материал ключа, называются перемешивание с ключомилидобавлением ключа(никакой связи с арифметическим сложением данный термин не несет). Подобных операций за время шифрования одного блока производится достаточно много. Таким образом, решается одно из главных требований к шифрам – невосстановимость ключа. Действительно, если к блоку данных добавить одну и ту же информацию, но неоднократно и разными способами, то подобная операция будет необратима относительно добавленной информации, хотя обратимость относительно первого операнда остается. Например, пустьХиК– четырехбитные исходное число и ключ соответственно (диапазон возможных значений 0..15 каждого), тогда формула:

Х' = ((X + K) XOR (K + 7)) AND 11112

(нижний индекс показывает систему счисления)

является обратимой относительно X, но необратимой относительно Kпо известной пареХиХ'. Не существует аналитической формулы, выражающейКчерезХиХ'. Конечно, всегда можно составить табличную зависимость, перебрав при известномХ

все К и записав все получившиесяХ', но это легко сделать при нашем гипотетическом примере из 16 возможных значенийК. На практике при же при длине ключа в 128 бит для решения главной задачи не хватит ни ресурсов памяти для хранения, ни, что главное, вычислительных возможностей ЭВМ. Таким образом, многократное добавление материала ключа по сложной схеме является надежным средством защиты блочных шифров от атаки по известным парам открытый/зашифрованный текст.

Третьим возможным значением параметра V являетсязначение, вычисленное от независимой части шифруемого блока. Данный метод лежит в основе схемы блочного шифрования, называемой сетью Файстеля(Feistel network).

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

- сократить размер программного кода использованием цикла;

- унифицировать "алгоритмическую формулу" шифрования и, как следствие, упростить проверку стойкости шифра к известным видам криптоатак;

- сделать шифр легко усложняемым при необходимости (путем увеличения числа раундов);

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

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

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

схема является обратимой. Сеть Файстеля обладает тем свойством, что даже если в качестве образующей функции F будет использовано необратимое преобразование, то и в этом случае вся цепочка будет восстановима. Это происходит вследствие того, что для обратного преобразования сети Файстеля не нужно вычислять функциюF-1и при дешифрировании вычисляется только прямое значениеF. Обратимость требуется только для операции наложенияF на шифруемую в данном раунде ветвь, поэтому здесь чаще всего применяетсяXOR, реже арифметическое сложение.

Более того не трудно заметить, что сеть Файстеля, в которой для наложения значения Fиспользуется операцияXOR, симметрична. Исключающее ИЛИ обратимо своим же повтором, и потому инверсия последнего обмена ветвей делает возможным раскодирование блока той же сетью Файстеля, но только с обратным порядком параметровVi. Следует отметить, что для обратимости сети Файстеля не имеет значение, является ли число раундов четным или нечетным числом. В большинстве реализаций сети Файстеля прямое и обратное преобразования производятся одним и тем же фрагментом программного кода, оформленного в виде процедуры, которому в качестве параметра передается вектор величинVi либо в исходном, либо в инверсном (для дешифрирования) порядке.