Во втором раунде нет устройства замены

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

Упрощенный DES (S-DES)

Упрощенный DES (S-DES) разработан профессором Эдуардом Шаефером (Edward Schaefer) Университета Санта-Клары и является образовательным инструментом для помощи студентам при изучении структуры DES - для шифрования и дешифрования с использованием блочных шифров и ключей с небольшим количеством битов.

Структура S-DES

S-DES - блочный шифр, как это показано на рис. 1.

Рис. 1. Шифрование и дешифрование в S – DES

 

На стороне шифрования S-DES принимает исходный текст по 8 битов и создает зашифрованный текст по 8 битов; на стороне дешифрования S- DES принимает зашифрованный текст на 8 битов и создает 8-битовый открытый текст. Один и тот же ключ шифра на 10 битов используется и для шифрования, и для дешифрования.

Остановимся на шифровании, а потом обсудим дешифрование. Процесс шифрования состоит из двух перестановок (P-блоки), которые мы называем начальными и конечными перестановками (их также называют IP и IP-1), и двух раундов Файстеля. Каждый раунд использует различные ключи раунда по 8 битов, сгенерированные от ключа шифра согласно заранее заданному алгоритму. Рисунок 2 показывает элементы шифра S-DES на стороне шифрования.

Рис. 2. Общая структура S-DES устройства шифрования

 

Рисунок 3 показывает начальные и конечные перестановки (P-блоки). Каждая из этих перестановок получает входную информацию на 8 битов и переставляет их согласно заранее заданному правилу. Эти перестановки - прямые перестановки, которые инверсны друг другу. Эти две перестановки не имеют никакого криптографического значения в S-DES. Они включены в S-DES, чтобы совместить их с полным DES.

 

Рис. 3. Начальная и конечная перестановки (IP и IP-1)

 

Раунды

S-DES использует два раунда. Каждый раунд S-DES - это шифр Файстеля, как это показано на рис.4

Рис. 4. Раунд S-DES (сторона шифрования)

 

Раунд получает LI -1 и RI -1 от предыдущего раунда (или начального блока перестановки) и создает LI и RI, которые поступают в следующий раунд (или конечный блок перестановки). Мы можем принять, что каждый раунд имеет два элемента шифра: смеситель и устройство замены. Каждый из этих элементов является обратимым. Устройство замены, очевидно, является обратимым. Оно меняет левую половину текста с правой половиной. Смеситель является обратимым из-за операции ИСКЛЮЧАЮЩЕЕ ИЛИ. Все необратимые элементы собраны в функции f (RI -1, KI).

 

Функция S-DES

Основа S-DES - функция S-DES. Функция S-DES применяет ключ на 8 битов к самым правым 4 битам (RI -1), чтобы формирует выход на 4 бита. Эта функция составлена из четырех секций: P-блока расширения, отбеливателя, группы S-блоков и прямого P-блока, как показано на рис. 4.

P-блок расширения - RI-1 вход на 4 бита, и KI - ключ на 8 битов, так что мы сначала должны расширить RI-1 до 8 битов.

Хотя отношения между входом и выходом могут быть определены математически, S-DES использует таблицу, чтобы определить P-блок, как это показано на рис. 5. Обратите внимание, что число портов выхода - 8, но диапазон значения - только 1-4. Некоторые из входов идут больше чем в один выход.

Отбеливатель (ИСКЛЮЧАЮЩЕЕ ИЛИ). После перестановки расширения S-DES используют операцию ИСКЛЮЧАЮЩЕЕ ИЛИ для сложения расширенной правой секции и ключа раунда. Обратите внимание, что ключи раунда используются только в этой операции.

S-блоки. S-блоки делают реальное смешивание (перемешивание). S-DES используют два S-блока, каждый с входом на 4 бита и выводом на 2 бита (см. рис. 6).

Рис. 5. P -блок расширения

 


Рис. 6. S-блоки

 

Данные по 8 битов от второй операции разделены на две части по 4 бита, и каждый кусок подается в свой блок. Результат каждого блока - отрезок на 2 бита; когда они объединяются, в результате получается текст на 4 бита. Подстановка в каждом блоке соответствует заранее определенным правилам, основанным на записях в таблицах 4 x 4. Комбинация входных битов 1 и 4 определяет одну из четырех строк; комбинация битов 2 и 3 определяет один из четырех столбцов, как показано на рис. 6.

Поскольку каждый S-блок имеет свою собственную таблицу, необходимы две таблицы, как это видно на рис.6, чтобы определить выход этих блоков. Значения входов (номер строки и номер столбца) и значения выходов на рисунке даются в виде десятичных чисел, чтобы сохранить пространство. Они должны быть изменены на двоичные значения.

Пример 1

На вход S-блока 1 подается число 10102. Каким будет выход?

Решение

Если мы запишем вместе первый и четвертый биты, мы получим 10 в двоичном виде или 2 в десятичном числе. Остающиеся биты - 01 в двоичном виде, - это 1 в десятичном числе. Мы ищем последовательно значение 2, столбец 1, на рис. 6 (S-блок 1). Результат в десятичном виде - 2, а в двоичном - это 10. Таким образом, вход 10102 дает выход 102.

Прямая перестановка. Последняя операция в функции S-DES - прямая перестановка с входом на 4 бита и выходом на 4 бита. Отношения входа-выхода для этой операции показаны на рисунке 7 и следуют тем же общим правилам, что и предыдущие таблицы перестановки.

Рис. 7. P-блок прямой перестановки

 

Генерация ключей

Генератор ключей раунда создает два ключа на 8 битов из ключа шифра на 10 битов.

 

Прямая перестановка

Первый процесс - прямая перестановка. Этот процесс переставляет 10 битов в ключе согласно заранее заданной таблице, как это показано на рис. 8.

 

Сдвиг влево

После прямой перестановки ключ разделяется на две части по 5 битов. Каждая часть сдвигается влево (циклический сдвиг) на r бит, где r - номер раунда (1 или 2). Эти две части затем объединяются, чтобы сформировать модуль на 10 битов.

 

Перестановка сжатия

Перестановка сжатия (P-блок) изменяет 10 битов на 8 битов, которые используются как ключ для раунда. Таблица перестановки сжатия показана на рис. 8.

Рис. 8. Генератор ключей

 

Пример2

Табл. 1 показывает три случая генерации ключей.

Таблица O.1.
Шаги Случай 1 Случай 2 Случай 3
Ключ шифра
после перестановки
После разделения L: 11001 R:01110 L: 00000 R:00000 L: 11111 R: 11111
Раунд 1: Сдвинутые ключи: L: 10011 R: 11100 L: 00000 R: 00000 L: 11111 R: 11111
Комбинация ключей:
Ключ раунда 1:
Раунд 2: Сдвинутые ключи: L: 01110 R: 10011 L: 00000 R: 00000 L: 1111 R: 11111
Ключ раунда 2:
Комбинация ключей:

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

Шифр и обратный шифр

Используя смесители и устройства замены, мы можем создать шифр и обратный шифр в два раунда. Шифр применяется на стороне шифрования; обратный шифр - на стороне дешифрования. Чтобы сделать шифр и обратный шифр, используются похожие алгоритмы. Раунд 2 имеет только смеситель и не имеет устройства замены. Это показано на рис.9.

Мы говорили, что смеситель самообратим, так же как и устройство замены. Конечные и начальные перестановки также инверсны друг другу. Левая часть исходного текста на стороне шифрования, L0, зашифрована как L2; L2 на стороне дешифрования расшифрована как L0. Аналогичная ситуация - с правой частью.

Очень важно запомнить, что ключи шифров раунда (K1 и K2), должны использоваться в обратном порядке. На стороне шифрования в раунде 1 применяют K1, а в раунде 2 применяют K2; на стороне дешифрования в раунде 1 нужен K2, а в раунде 2 - K1.

Во втором раунде нет устройства замены

Пример 3

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

Исходный текст: 11110010 Ключ:1011100110 Зашифрованный текст: 11101011

Посмотрим результат каждого раунда и текста, созданного до и после раундов. Таблица 2 показывает результат шагов перед началом раунда. Исходный текст проходит начальную перестановку, чтобы создать различные 8 битов. После этого шага текст разбит на два части, L0 и R0. Таблица показывает результаты двух раундов, которые включают смешивание и заполнение (исключая второй раунд). Результаты последних раундов (L2 и R2) объединены.


Рис. 9. S-DES шифр и обратный шифр

 

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

Таблица 2.
Начальная обработка Исходный текст: 11110010 После IP:10111001 L0: 1011 R0: 1001 Ключ шифра: 1011100110
Раунд 1 L1: 1001 R1: 0111 Ключ раунда: 10111100
Раунд 2 L2: 1011 R2: 0lll Ключ раунда: 11010011
Конечная обработка Перед IP-1 10110111 Зашифрованный текст: 11101011

 

Стоит упомянуть здесь некоторые важные положения. Сначала правая часть каждого раунда - та же самая, что и левая секция из следующего раунда. Причины в том, что правая часть проходит смеситель без изменения, но устройство замены перемещает ее левую часть. Например, R1 проходит через смеситель второго раунда без изменения, но затем эта часть становится L2 из-за устройства замены. Интересно то, что эта точка не имеет устройства замены в последнем раунде. Поэтому R1, становится R2 вместо того чтобы стать L2.

 

Задание на лабораторную работу

8-битовый исходный текст – две последние цифры номера зачетной книжки.

10-битовый ключ – две предпоследние цифры номера зачетной книжки (два первых бита берется произвольно).

 

Например:

№ зачетной книжки 030933

8-битовый исходный текст = 33 = 0011 0011

10-битовый ключ = 09 = 0000 1001 + 00(два первых бита берется произвольно) =

 

Для шифрования 8-битового блока исходного текста выбираем IP-перестановку по варианту