Упрощенный алгоритм 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!