Алгоритм вычисления ключей

Как нетрудно заметить, на каждой итерации используется новое значение ключа (длиной 48 бит). Новое значение ключа вычисляется из начального ключа (рис. 5.3).

Ключ представ­ляет собой 64‑битовый блок с 8 битами контроля по четности, рас­положенными в позициях 8, 16, 24, 32, 40, 48, 56, 64. Для удаления контрольных бит и подготовки ключа к работе используется функция первоначальной подготовки ключа (табл. 5.6).

 

  Таблица 5.6
  Функция G

 

Табл. 5.6 разделена на две части. Результат преобразова­ния разбивается на две половины и , по 28 бит каждая. Первые четыре строки матрицы определяют, как выбираются биты последовательности (первым битом будет бит 57 ключа шифра, затем бит 49 и т.д., а последними битами ‑ биты 44 и 36 ключа).

Следующие четыре строки матрицы определяют, как выбираются биты последовательности (т.е. последователь­ность будет состоять из бит 63, 55, 47,...,12, 4 ключа шифра).

 


Как видно из табл. 5.6, для генерации последовательно­стей и не используются биты 8, 16, 24, 32, 40, 48, 56 и 64 ключа шифра. Эти биты не влияют на шифрование и могут слу­жить для других целей (например, для контроля по четности). Та­ким образом, в действительности ключ шифра является 56‑битовым.

После определения и рекурсивно определяются и , . Для этого применяются операции циклического сдвига влево на один или два бита в зависимости от номера шага итерации, как показано в табл. 5.7.

 

Таблица 5.7
Таблица сдвигов для вычисления ключа
Итерация
Сдвиг влево

 

Операции сдвига выполняются для последовательностей и независимо. Например, последовательность получается посредством циклического сдвига влево на две позиции последо­вательности , а последовательность ‑ посредством сдвига влево на две позиции последовательности , и получают­ся из и посредством сдвига влево на одну позицию.

Ключ , определяемый на каждом шаге итерации, есть результат выбора конкретных бит из 56‑битовой последователь­ности и их перестановки. Другими словами, ключ , где функция определяется матрицей, завершающей обработку ключа (табл. 5.8).

 

Таблица 5.8
Функция H

 

Как следует из табл. 5.8, первым битом ключа будет 14‑й бит последовательности , вторым ‑ 17‑й бит, 47‑м битом клю­ча будет 29‑й бит , а 48‑м битом ‑ 32‑й бит .