Экстернат |
О. Упрощенный DES (S-DES)
Упрощенный DES (S-DES) разработан профессором Эдуардом Шаефером (Edward Schaefer) Университета Санта-Клары и является образовательным инструментом для помощи студентам при изучении структуры DES - для шифрования и дешифрования с использованием блочных шифров и ключей с небольшим количеством битов.
O.1. Структура S-DES
S-DES - блочный шифр, как это показано на рис. О.1.
На стороне шифрования S-DES принимает исходный текст по 8 битов и создает зашифрованный текст по 8 битов; на стороне дешифрования S- DES принимает зашифрованный текст на 8 битов и создает 8-битовый открытый текст. Один и тот же ключ шифра на 10 битов используется и для шифрования, и для дешифрования.
Остановимся на шифровании, а потом обсудим дешифрование. Процесс шифрования состоит из двух перестановок (P-блоки), которые мы называем начальными и конечными перестановками (их также называют IP и IP-1), и двух раундов Файстеля. Каждый раунд использует различные ключи раунда по 8 битов, сгенерированные от ключа шифра согласно заранее заданному алгоритму, описанному позже в этом приложении. Рисунок O.2 показывает элементы шифра S-DES на стороне шифрования.
Рисунок O.3 показывает начальные и конечные перестановки (P-блоки). Каждая из этих перестановок получает входную информацию на 8 битов и переставляет их согласно заранее заданному правилу. Эти перестановки - прямые перестановки, которые инверсны друг другу, как это было сказано в лекции 5 курса "Математика криптографии и теория шифрования". Эти две перестановки не имеют никакого криптографического значения в S-DES. Они включены в S-DES, чтобы совместить их с полным DES.
Раунды
S-DES использует два раунда. Каждый раунд S-DES - это шифр Файстеля, как это показано на рис. О.4
Раунд получает LI -1 и RI -1 от предыдущего раунда (или начального блока перестановки) и создает LI и RI, которые поступают в следующий раунд (или конечный блок перестановки). Как мы говорили в лекции 5 курса "Математика криптографии и теория шифрования", мы можем принять, что каждый раунд имеет два элемента шифра: смеситель и устройство замены. Каждый из этих элементов является обратимым. Устройство замены, очевидно, является обратимым. Оно меняет левую половину текста с правой половиной. Смеситель является обратимым из-за операции ИСКЛЮЧАЮЩЕЕ ИЛИ. Все необратимые элементы собраны в функции 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).
Данные по 8 битов от второй операции разделены на две части по 4 бита, и каждый кусок подается в свой блок. Результат каждого блока - отрезок на 2 бита; когда они объединяются, в результате получается текст на 4 бита. Подстановка в каждом блоке соответствует заранее определенным правилам, основанным на записях в таблицах 4 x 4. Комбинация входных битов 1 и 4 определяет одну из четырех строк; комбинация битов 2 и 3 определяет один из четырех столбцов, как показано на рис. O.6.
Поскольку каждый S-блок имеет свою собственную таблицу, необходимы две таблицы, как это видно на рис. О.6, чтобы определить выход этих блоков. Значения входов (номер строки и номер столбца) и значения выходов на рисунке даются в виде десятичных чисел, чтобы сохранить пространство. Они должны быть изменены на двоичные значения.
Пример 0.1
На вход S-блока 1 подается число 10102. Каким будет выход?
Решение
Если мы запишем вместе первый и четвертый биты, мы получим 10 в двоичном виде или 2 в десятичном числе. Остающиеся биты - 01 в двоичном виде, - это 1 в десятичном числе. Мы ищем последовательно значение 2, столбец 1, на рис. 0.6 (S-блок 1). Результат в десятичном виде - 2, а в двоичном - это 10. Таким образом, вход 10102 дает выход 102.
Прямая перестановка. Последняя операция в функции S-DES - прямая перестановка с входом на 4 бита и выходом на 4 бита. Отношения входа-выхода для этой операции показаны на рисунке О.7 и следуют тем же общим правилам, что и предыдущие таблицы перестановки.
Генерация ключей
Генератор ключей раунда создает два ключа на 8 битов из ключа шифра на 10 битов.
Прямая перестановка
Первый процесс - прямая перестановка. Этот процесс переставляет 10 битов в ключе согласно заранее заданной таблице, как это показано на рис. О.8.
Сдвиг влево
После прямой перестановки ключ разделяется на две части по 5 битов. Каждая часть сдвигается влево (циклический сдвиг) на r бит, где r - номер раунда (1 или 2). Эти две части затем объединяются, чтобы сформировать модуль на 10 битов.
Перестановка сжатия
Перестановка сжатия (P-блок) изменяет 10 битов на 8 битов, которые используются как ключ для раунда. Таблица перестановки сжатия показана на рис. О.8.
Пример O.2
Табл. О.1 показывает три случая генерации ключей.
Шаги | Случай 1 | Случай 2 | Случай 3 | |
---|---|---|---|---|
Ключ шифра | 1011100110 | 0000000000 | 1111111111 | |
после перестановки | 1100101110 | 0000000000 | 1111111111 | |
После разделения | 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 |
Комбинация ключей: | 1001111100 | 0000000000 | 1111111111 | |
Ключ раунда 1: | 10111100 | 00000000 | 11111111 | |
Раунд 2: | Сдвинутые ключи: | L: 01110 R: 10011 | L: 00000 R: 00000 | L: 1111 R: 11111 |
Ключ раунда 2: | 0111010011 | 0000000000 | 1111111111 | |
Комбинация ключей: | 11010011 | 00000000 | 11111111 |
Случаи 2 и 3 показывают, что ни одна из операций, используемых в процессе генерации ключей, не эффективна, если ключ шифра состоит из всех нулей или всех единиц. Нужно избегать такого типа ключей шифра.