Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИБиЗИ_ч2.doc
Скачиваний:
98
Добавлен:
17.04.2015
Размер:
831.49 Кб
Скачать

Рекомендуемая литература:

  1. Лапонина О.Р. Основы сетевой безопасности: криптографические алгоритмы и протоколы их взаимодействия. - М.: Интернет-Ун-т Информ. Технологий, 2007, 531с.

  2. Черемушкин А.В. Криптографические протоколы. Основные свойства и уязвимости. - М.: Издательский центр "Академия", 2009, 272 с.

  3. Аграновский А.В., Р.А. Хади Практическая криптография: алгоритмы и их программирование. - М.: СОЛОН-Пресс, 2009, 256 с.

  4. Олифер В.Г., Олифер Н.А. Сетевые операционные системы. - 2 изд. - СПб.: ООО "Питер Пресс" , 2009, 668 с.

Тема 2. Симметричные криптографические системы

2.1. Стандарт шифрования des

DES (Data Encryption Standard) — Симметричный алгоритм шифрования, в котором один ключ используется как для шифрования, так и для расшифрования данных. DES имеет блоки по 64 бит и 16 цикловую структуру сети Фейстеля, для шифрования использует ключ с длиной 56 бит. Алгоритм использует комбинацию нелинейных (S-блоки) и линейных (перестановки E, IP, IP-1) преобразований.

Шифр DES является блочным шифром, основанном на шифре Фейстеля.

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

Базовые преобразования:

  • сложное преобразование на одной локальной части блока;

  • простое преобразование между частями блока.

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

Как уже было сказано, шифр DES является модификацией шифра Фейстеля, еще называемым преобразованием сетью Фейстеля. Это преобразование над векторами (блоками) представляющими собой левую (старшую, L) и правую (младшую, R) половины регистра сдвига. В алгоритме DES используются прямое преобразование сетью Фейстеля при шифровании (Рис. 2.1).

Рис. 2.1. Прямое преобразование сетью Фейстеля.

При расшифровании шифротекста используется обратное преобразование сетью Фейстеля (Рис. 2.2).

Рис. 2.2. Обратное преобразование сетью Фейстеля.

Полная схема работы шифра DES представлена на Рис. 2.3.

Рис. 2.3. Схема работы шифра DES.

Вначале из исходного текста выделяется блок T длиной 64 бита (8 символов в формате ASCII), к которому применяется перестановка IP. Эта перестановка битов задана стандартом, хотя в принципе они могут быть различными. В результате получается блок IP(T), который разбивается на 2 равные части L0,R0, где L0,R0 — соответственно 32 старших битов и 32 младших битов блока. Затем происходит 16 циклов (раундов) шифрования, на каждом из которых происходит прямое преобразование Фейстеля. Важную роль на этих этапах играет функция Фейстеля f, выполняющая шифрование. Аргументами функции f являются 32-битовый вектор Ri−1, 48 битовой ключ ki, которые являются результатом преобразования 56 битового исходного ключа шифра k.

Для вычисления функции f используются функция расширения Е, преобразование S, состоящее из 8 преобразований S-блоков S1, S2, …, S8, и перестановка P. Функция Е представляет собой 48-битовую таблицу. Она расширяет 32-битовый вектор Ri−1 до 48-битового вектора E(Ri−1) путём перестановки битов из Ri−1 и дублирования некоторых из них. Полученный после перестановки блок E(Ri−1) складывается по модулю 2 с ключами ki и затем представляются в виде восьми последовательных блоков B1,B2,...B8: E(Ri−1)= B1,B2,...B8. Каждый Bj является 6-битовым блоком. Далее каждый из блоков Bj трансформируется в 4-битовый блок B'j с помощью преобразований Sj. Значение функции f(Ri−1,ki) (32 бит) получается перестановкой Р, применяемой к 32-битовому блоку B'1B'2...B'8. Значения функции E, преобразований S1 – S8 и перестановки P заданы стандартом, как и в случае с перестановкой IP. Подробно схема работы функции f представлена на Рис. 2.4.

Рис.2.4. Схема работы функции f.

Ключи ki получаются из начального ключа k (64 бит = 8 байтов или 8 символов в АSCII) таким образом. Восемь битов, находящих в позициях 8, 16, 24, 32, 40, 48, 56, 64 добавляются в ключ k таким образом чтобы каждый байт содержал нечетное число единиц. Это используется для обнаружения ошибок при обмене и хранении ключей. Затем делают перестановку для расширенного ключа (кроме добавляемых битов 8, 16, 24, 32, 40, 48, 56, 64).

Конечная перестановка IP-1 является обратной к перестановке IP. Она действует на T16 и используется для восстановления позиций.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]