Как нетрудно заметить, на каждой итерации используется новое значение ключа
(длиной 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‑й бит
.






