Упрощенный алгоритм DES ( S - DES )



На рис.1 показана общая структура упрощенного алгоритма DES (S-DES). Данный алгоритм полу­чает на входе 8-битовый блок открытого текста (например, 10111101) и 10-битовый ключ, а на выходе генерируется 8-битовый блок шифрованного текста. Алгоритм дешифрования S-DES в качестве исходных данных использует 8-битовый блок шифрованного текста и тот же 10-битовый ключ, который приме­нялся для шифрования, а в результате работы алгоритм дешифрования должен генерировать   8-битовый блок открытого текста.

1. Алгоритм шифрования включает последовательное выполнение пяти опера­ций: начальной перестановки IP,

2. сложной функции fк, являющейся композици­ей операций перестановки и подстановки и зависящей от полученного ключа,

3. перестановки SW, при которой две половинки последовательности данных про­сто меняются местами,

4. функции fк,

5. перестановки, обратной начальной (IP-1).

 

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

Функция fк использует в качестве исходных данных не только шифруемый текст, но и 8-битовый ключ. Алгоритм можно построить так, чтобы он работал с 16-битовым ключом, состоящим из двух 8-битовых подключей, применяемых по отдельности каждый для своего вызова функции fк. Можно использовать и 8-битовый ключ, для чего просто следует ввести его дважды. Наконец, можно прибегнуть к комбинированному решению, когда требуется 10-битовый ключ, из которого генерируются два 8 -битовых, как показано на рис. 3.1. В этом случае ключ сначала преобразуется путем перестановки (P10). После этого применяется операция сдвига, а полученные в ее результате данные поступают на вход пере­становки (Р8), которая генерирует первый 8-битовый подключ (К1). Те же полу­ченные в результате операции сдвига данные поступают на вход другой опера­ции сдвига и другой функции перестановки (Р8), в результате чего генерируется второй подключ (К2).

 

Данный алгоритм можно представить в виде композиции функций:

 

IP -1 о fк2 о SW о fк1 о IP,

 

или, иначе,

шифрованный текст = IP -1( fк2 (SW (fк1, (IP (открытый текст))))),

где                              

К1 = Р8(сдвиг(Р10(ключ))),

К2 = Р8(сдвиг(сдвиг(Р10(ключ)))).

Процесс дешифрования, также представленный на рис. 1, по сути, является процессом, обратным процессу шифрования:

 

открытый текст = IP-1 (fк1 (SW (fк2 (IP (шифрованный текст))))).

 

 

 


Рис. 1. Схема упрощенного алгоритма DES

Вычисление ключей S - DES

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

 

 

Рис.2. Вычисление ключей S-DES.

 

Сначала выполняется перестановка битов ключа следующим образом. Если 10-битовый ключ представить в виде (k1 , k2, k3, k4, k5, k6, k7, k8, k9, k10), то перестановку P10 можно задать формулой

Р10(k1 , k2, k3, k4, k5, k6, k7, k8, k9, k10) = (k3,k5,k2,k7,k4,k10,k1,k9,k8,k6).

Можно также представить перестановку Р10 в следующей табличной форме.

 

Таблица1. перестановка Р10

Р10

3 5 2 7 4 10 1 9 8 6

 

Эту таблицу следует читать слева направо. Каждый ее элемент идентифицирует позицию бита исходных данных в генерируемой выходной последовательности. Иными словами, первым битом в выходной последовательности будет третий бит исходной последовательности, вторым — пятый и т.д.

Например, в соответствии с данной таблицей ключ (1010000010) будет преобразован к виду (1000001100). После этого отдельно для первых пяти битов и отдельно для вторых выполняется циклический сдвиг влево (LS-1), который еще называют вращением. В нашем случае в результате будет получена последовательность (00001 11000).

Затем применяется перестановка Р8, в результате которой из 10-битового ключа сначала выбираются, а затем переставляются 8 битов по следующему правилу (Таблица 2).

Таблица 2. Перестановка Р8

Р8

6 3 7 4 8 5 10 9

 

В результате этой операции получается первый подключ (К1). В нашем примере он будет иметь вид (10100100).

Теперь нужно вернуться к двум 5-битовым строкам, полученным в результате применения функций LS-1, и выполнить с каждой из этих строк циклический сдвиг влево на две позиции (LS-2). В нашем конкретном случае значение (00001 11000) будет преобразовано к виду (00100 00011). Наконец, применив к полученной в результате последовательности перестановку Р8, получим подключ К2. Для нашего примера результатом будет (01000011).

 

Шифрование S - DES

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

 


Дата добавления: 2019-09-13; просмотров: 1704; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!