Скачиваний:
93
Добавлен:
15.03.2015
Размер:
68.1 Кб
Скачать
  1. Лабораторная работа № 4 Исследование блоковых шифров.

    1. Цель работы

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

    1. Задание

Задание выполнять в программной среде Excel (Calc).

1. Задать нелинейную функцию для нелинейного преобразования.

2. Задать ключ шифрования и ключи итераций.

3. Выполнить шифрование и расшифрование данных на учебном шифре.

4. Исследовать влияние изменения в ключе и в сообщении на результат шифрования.

    1. Порядок выполнения

Открыть Excel файл block_cipher.

1. Проанализировать приведенный пример реализации схемы Файстеля. В схеме блок сообщения разбивается на два подблока (левый L и правый R) и выполняется итерационная процедура:

На последней итерации шифрования подблоки меняются местами (это позволяет использовать эту же схему для расшифрования).

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

В примере рассматривается шифрование 6-ти битного блока по схеме Файстеля с длиной ключа в 4,6 или 8 бит. Для каждой итерации вырабатывается ключ итерации из исходного ключа циклическим сдвигом.

Процедура нелинейного преобразования задана формулами: b4=a4*a5+K1+K6, b5=a4*a6+K2*K3, b6=a5*a6+K4+K5, где a4, a5, a6 – начальные значения бит перед выполнением итерации, b4, b5, b6 – значения после выполнения нелинейного преобразования. k1 – k6 – значения бит ключа (В примере эти формулы вписаны в ячейки F12 G12 H12 для первой итерации

2. Задать нелинейную функцию в соответствии со своим вариантом (см. таблицу вариантов) с помощью записи Excel формул в ячейки F12 G12 H12.

Варианты для составления нелинейного преобразования:

Вариант

Длина ключа K, бит

b4

B5

B6

1

6

a4+K1+K3

a5+a6+K4

a6*K4+K2+a5+K6

2

4

a4+K1+K3

a5+a6+K4

a6+K2*K4

3

8

a4+K1+K3*K4

a5+a6+K7+K8

a6+K2*K5+K6

4

6

a4+K1+K3

a5+a6*K4

a6+K2+K5*K6

5

8

a4+K1+K3*K7

a6*a5+K4+K8

a4+K2*K5+K6

6

6

a4+K1*K3

a5+a6+K4+K1

a6+K2*K5+K6

7

6

a4+K1+K3

a5+a6+K4

a6+K2*K5+K6

8

4

a4*K1+K3

a5+a6*K4

a6+K2+a4

9

8

a4+K1+K3*K7

a5+a6+K4*K8

a6+K2*K5+K6+K7

10

4

a4+K1+K3*a6

a5+a4+K4

a6+K2*a5

3. Составить аналогичную процедуру расшифрования.

4. Проверить, что процедура расшифрования действительно восстанавливает сообщение.

5. Исследовать – как меняется криптограмма при малых изменениях (в одном бите) ключа. Записать в виде отдельной таблицы в Word файле рядом первоначальный ключ K и результат шифрования на этом ключе E – рядом измененный в одном бите ключ K’ и результат шифрования на этом ключе E’) сообщения.

6. Исследовать – как меняется криптограмма при малых изменениях (в одном бите) сообщения. Записать в виде отдельной таблицы в Word файле рядом исходное сообщение M и результат его шифрования E – рядом измененное в одном бите сообщение M’ и результат его шифрования E’).

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

8. Оформить отчёт.

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

1. Дайте определение блоковым шифрам.

2. Перечислите основные особенности структуры Файстеля.

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

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

5. Объясните цель формирования различных ключей итераций из основного ключа шифрования.

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

3

Соседние файлы в папке lab_04