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

Рацеев.Лабораторные по криптографии

.pdf
Скачиваний:
124
Добавлен:
18.04.2015
Размер:
921.63 Кб
Скачать

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Криптографические методы защиты информации»

 

 

 

 

 

ЛАБОРАТОРНЫЕ РАБОТЫ по курсу

«Криптографические методы защиты информации»

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

Тема: симметричные криптосистемы.

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

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

2.Определить алфавит A криптосистемы (открытого текста и шифртекста). Если алфавит A не задан в варианте, выбрать его самостоятельно, так, чтобы он включал в себя символы используемого в примере открытого текста. Например, русский, английский, ASCII. Поставить символам исходного алфавита A в соответствие символы из алфавита Zn (n – основание алфавита).

3.Написать функцию генерации случайных ключей шифра, оценить размерность ключевого пространства.

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

5.Написать функцию для реализации алгоритма расшифрования полученного шифрованного файла при известном ключе.

Варианты заданий.

1.Шифр простой замены.

2.Шифр сдвига с числовым ключом. Алфавит A – ASCII..

3.Шифр сдвига с символьным ключом. Алфавит A – латинские буквы и символ пробела.

4.Аффинный шифр.

5.Преобразование биграмм аффинным шифром. (не путать с аффинным блочным шифром)

6.Преобразование триграмм аффинным шифром. (не путать с аффинным блочным шифром)

7.Шифр Виженера с ключевым словом. Алфавит A – латинские буквы и символ пробела.

8.Шифр Виженера с числовым ключом. Алфавит A – ASCII.

9.Многопетлевые подстановки. Алфавит A – латинские буквы и символ пробела.

10.Многопетлевые подстановки. Алфавит A – ASCII.

11.Аффинный блочный шифр для 3-грамм.

12.Аффинный блочный шифр для 4-грамм.

Форма А

Страница 1из 24

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Криптографические методы защиты информации»

 

 

 

 

 

13.Шифр Хилла для 3-грамм.

14.Шифр гаммирования с линейным конгруэнтным генератором ключей. Алфавит A – латинские буквы и символ пробела.

15.Шифр гаммирования с линейным конгруэнтным генератором ключей. Алфавит

A – ASCII.

16.Шифр перестановки.

17.Шифр пропорциональной замены (шифр омофонов).

Форма А

Страница 2из 24

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Криптографические методы защиты информации»

 

 

 

 

 

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

Тема: криптоанализ симметричных криптосистем.

Провести эксперимент по определению практической стойкости алгоритма, разработанного в лабораторной работе №1.

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

-анализа статистических свойств шифртекста (частот появления букв).

-силовую атаку (полный перебор ключей).

-другие (если есть более эффективные)

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

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

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

В результате эксперимента определить параметры алгоритма шифрования (размер передаваемого текста, размер и характеристики ключа, объем ключевого пространства

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

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

Форма А

Страница 3из 24

Федеральное агентство по образованию

 

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

 

 

 

«Криптографические методы защиты информации»

 

 

 

 

 

 

 

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

 

 

Тема: поточные шифры.

Шифр Вернама. Моделирование работы n разрядного скремблера.

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

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

В данной лабораторной работе алфавитом A, в котором записываются открытые и шифрованные тексты, является поле Z2, то есть открытые и шифрованные тексты рассматриваются как двоичные последовательности. В этом случае "наложение" гаммы - не что иное, как выполнение операции сложения по модулю 2 (xor), которая, например, в языке программирования Си обозначается знаком ^.

Стандартные операции над битами: 0 0 = 0, 0 1 = 1, 1 0 = 1, 1 1= 0.

Скремблером называется программная или аппаратная реализация алгоритма, позволяющего шифровать побитно непрерывные потоки информации.

Рассмотрим сдвиговый регистр с обратной связью (Linear Feedback Shift Register,

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

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

Рис. 3.1. Схема LFSR

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

Форма А

Страница 4из 24

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Криптографические методы защиты информации»

 

 

 

 

 

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

последовательностью наибольшей длины (ПНД).

Чтобы построить N-разрядный скремблер, создающий ПНД, пользуются примитивными многочленами. Примитивный (базовый) многочлен степени n по модулю 2 – это неприводимый многочлен, который является делителем x2n 1 1 , но не является делителем xd 1 для всех d , являющихся делителями 2n 1. Неприводимый многочлен степени n нельзя представить в виде произведения многочленов кроме него самого и единичного.

Найденный примитивный многочлен степени n записывается в двоичном виде, затем отбрасывается единица, соответствующая самому младшему разряду.

Приведем пример 7 разрядного скремблера, генерирующего последовательность с

периодом равным T 7 : x7 x3 1. Начальное значение (начальный ключ) возьмем равным 79 10 1001111 2 . Для этого сдвигового регистра новый бит генерируется с

помощью XOR седьмого и третьего битов (см. рис 3.2).

Рис. 3.2. Схема LFSR для многочлена x7 x3 1, начальное состояние 1001111 2 .

Требуется

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

2.Написать функцию, реализующую шифрование на заданном ключе открытого текста, состоящего из символов алфавита Z2.

3.Написать функцию для реализации алгоритма расшифрования полученного шифрованного файла при известном ключе.

Варианты заданий.

Скремблер

 

 

1

x8 x4 x3 x2 1

2

x8 x5 x3 x2 1

3

x9 x4

1

4

x9 x3

1

5

x10 x3

1

Форма А

Страница 5из 24

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Криптографические методы защиты информации»

 

 

 

 

 

6

x10 x7 1

7

x5 x2 1

8

x5 x4 x 1

9

x11 x2 1

10

x11 x5 x2 1

11

x7 x 1

12

x7 x5 x2 1

13

x12 x6 x4 x 1

14

x12 1

15

x8 x4 x3 x2 1

16

x8 x6 x2 1

17

x11 x2 1

18

x11 x3 x2 1

19

x6 x 1

20

x6 x5 x 1

Форма А

Страница 6из 24

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Криптографические методы защиты информации»

 

 

 

 

 

Лабораторная работа 4.

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

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

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

Идея, лежащая в основе составных (или композиционных) блочных шифров, состоит в построении криптостойкой системы путем многократного применения относительно простых криптографических преобразований, в качестве которых К.Шеннон предложил использовать преобразования подстановки (substitution) и перестановки (permutation), схемы, реализующие эти преобразования, называются SPсетями.

Многократное использование этих преобразований (рис. 4.1) позволяет обеспечить два свойства, которые должны быть присущи стойким шифрам: рассеивание (diffusion) и перемешивание (confusion) (рис. 4.2). Рассеивание предполагает распространение влияния одного знака открытого текста, а также одного знака ключа на значительное количество знаков шифртекста. Наличие у шифра этого свойства позволяет:

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

не позволяет восстанавливать неизвестный ключ по частям.

Форма А

Страница 7из 24

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Криптографические методы защиты информации»

 

 

 

 

 

Цель перемешивания – сделать как можно более сложной зависимость между ключом и шифртекстом. Криптоаналитик на основе статистического анализа перемешанного текста не должен получить сколько-нибудь значительного количества информации об использованном ключе.

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

Форма А

Страница 8из 24

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Криптографические методы защиты информации»

 

 

 

 

 

Требуется написать программу реализующую, простые криптографические преобразования подстановки и перестановки. Размер блока определить в 64, 128 или

256 бита.

Форма А

Страница 9из 24

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Криптографические методы защиты информации»

 

 

 

 

 

Лабораторная работа 5.

Российский стандарт шифрования ГОСТ 28147-89

Цель работы: ознакомиться с шифрованием и расшифрованием информации при помощи алгоритма ГОСТ 28147-89.

Алгоритм шифрования ГОСТ 28147-89

ГОСТ 28147-89 – это стандарт, принятый в 1989 году в Советском Союзе и установивший алгоритм шифрования данных, составляющих гостайну. В начале 90-х годов алгоритм стал полностью открытым. В Российской Федерации установлен единый стандарт криптографического преобразования текста для информационных систем. Он рекомендован к использованию для защиты любых данных, представленных в виде двоичного кода, хотя не исключаются и другие методы шифрования.

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

Алгоритм построен по тому же принципу, что и DES – это классический блочный шифр с секретным ключом – однако отличается от DES'а большей длиной ключа, большим количеством раундов, и более простой схемой построения самих раундов. Ниже приведены его основные параметры, для удобства - в сравнении с параметрами

DES'а:

 

Параметры

ГОСТ

DES

1.

Размер блока шифрования

64 бита

64 бита

2.

Длина ключа

256 бит

56 бит

3.

Число раундов

32

16

4.

Узлы замен (S-блоки)

не фиксированы

фиксированы

5.

Длина ключа для одного раунда

32 бита

48 бит

6.

Схема выработки раундового ключа

простая

сложная

7.

Начальная и конечная перестановки

нет

есть

битов

 

 

В силу намного большей длины ключа ГОСТ гораздо устойчивей DES'а к вскрытию путем полного перебора по множеству возможных значений ключа.

Для шифрования блок текста сначала разбивается на левую половину L и правую половину R . В i -ом раунде алгоритма ГОСТ выполняются следующие преобразования:

Форма А

Страница 10из 24