лаб 15. Лаб раб 15. Лабораторные работы
Скачать 0.6 Mb.
|
10 – битовый ключ8 – битовый блок открытого текста I 8 – битовый блок шифрованного текста 8 – битовый блок открытого текстаI 8 – битовый блок шифрованного текстаРис. 1. Схема упрощенного алгоритма DES Вычисление ключей S-DESВ алгоритме S-DES используется 10-битовый ключ, который должен быть как у отправителя, так и у получателя сообщения. Из этого ключа на определенных этапах шифрования и дешифрования генерируется два 8-битовых подключа. На рисунке 2 представлена схема вычисления ключей. 10-битовый ключ10 Р10 К1 5 5 К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 Эту таблицу следует читать слева направо. Каждый ее элемент идентифицирует позицию бита исходных данных в генерируемой выходной последовательности. Иными словами, первым битом в выходной последовательности будет третий бит исходной последовательности, вторым — пятый и т.д. Например, в соответствии с данной таблицей ключ (1010000010) будет преобразован к виду (1000001100). После этого отдельно для первых пяти битов и отдельно для вторых выполняется циклический сдвиг влево (LS-1), который еще называют вращением. В нашем случае в результате будет получена последовательность (00001 11000). Затем применяется перестановка Р8, в результате которой из 10-битового ключа сначала выбираются, а затем переставляются 8 битов по следующему правилу (Таблица 2). Таблица 2. Перестановка Р8
В результате этой операции получается первый подключ (К1). В нашем примере он будет иметь вид (10100100). Теперь нужно вернуться к двум 5-битовым строкам, полученным в результате применения функций LS-1, и выполнить с каждой из этих строк циклический сдвиг влево на две позиции (LS-2). В нашем конкретном случае значение (00001 11000) будет преобразовано к виду (00100 00011). Наконец, применив к полученной в результате последовательности перестановку Р8, получим подключ К2. Для нашего примера результатом будет (01000011). |