Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции (Все подряд) / Криптография_2.doc
Скачиваний:
70
Добавлен:
20.06.2014
Размер:
115.2 Кб
Скачать
          1. Структура раунда des

На рис. 2 показана внутренняя структура алгоритма, используемого при итерациях.

Рис. 2.

Перестановки:

  1. Начальная (IP) 8х8

  2. Обратная начальной (IP-1) 8х8

  3. Перестановка с расширением (E) 32->48 8х6

  4. Перестановка (P) 4х8

  5. 1-ая перестановка для ключей PC-1 8х7

  6. 2-ая перестановка для ключей PC-2 8х7

  7. 8 S-матриц 4х16

Как и прежде, начнем рассмотрение с левой части рисунка. Левая (L) и правая (R) половины каждого 64-битового значения рассматриваются как не­зависимые 32-битовые величины. Как и в случае любого классического шифра Файстеля, операции, выполняемые на каждой итерации, можно записать в виде следующих формул:

Li = Ri-1,

Ri = Li-1F(Ri-1,Ki).

Для любого раунда длина ключа Кi равна 48 битам, а длина элемента входных данных R — 32 битам. Сначала входное значение R расширяется до 48 битов с помощью таблицы, задающей перестановку с расширением, за­ключающемся в повторении 16 битов значения R. Полученное 48-битовое значение складывается с Кi с помощью операции XOR (исключающее "ИЛИ"). Результат, длина которого тоже равна 48 битам, передается функции подстановки, которая генерирует 32-битовое значение.

          1. Применение s-матриц вDes

Роль S-матриц в функции F раскрывается иллюстрацией на рис. 3.9. Меха­низм подстановки определяется набором из восьми S-матриц, каждая из кото­рых получает на вход 6 битов данных и выдает 4-битовый результат. Преобразо­вания определяются по табл. 3.3 по следующему правилу. Первый и последний биты входного значения для матрицы Si представляют 2-битовое двоичное чис­ло, задающее одну из четырех подстановок, определяемых четырьмя строками таблицы для Si. Остальные четыре бита определяют столбец. Десятичное значе­ние, находящееся на пересечении заданных таким образом столбца и строки, в 4-битовом представлении будет результатом. Например, если на вход Si посту­пает значение 011001, оно задает строку 01 (десятичное 1) и столбец 1100 (десятичное 12). На пересечении строки 1 и столбца 12 находится значение 9, поэтому результат в двоичном представлении будет иметь вид 1001.

S1

14

4

13

1

2

15

11

8

3

10

6

12

5

9

0

7

0

15

7

4

14

2

13

1

10

6

12

11

9

5

3

8

4

1

14

8

13

6

2

11

15

12

9

7

3

10

5

0

15

12

8

2

4

9

1

7

5

11

3

14

10

0

6

13

          1. Вычисление подключей в des

Возвращаясь к рис. 3.7 и 3.8, заметим, что 56-битовые ключи, используемые в качестве входных данных алгоритма, сначала преобразуются с помощью переста­новки, задаваемой таблицей первой перестановки с выбором (РС-1), табл. 3.4(а). Полученное в результате 56-битовое значение рассматривается как комбинация двух 28-битовых значений, для которых используются обозначения C0 и D0. В каждом раунде шифрования к значениям Сi-1 и Di-1 по отдельности применяются операции циклического сдвига влево (вращения) на 1 или 2 бита в соответствии с табл. 3.4(в). Полученные после сдвига значения поступают на вход следующего раунда шифрования. Те же значения подаются на вход второй перестановки с вы­бором (РС-2) (см. табл. 3.4(6)), с помощью которой получается 48-битовое выходное значение Кi, требуемое для выполнения функции F(Ri-1, Ki).