Схема вычисления функции шифрования показана на рис. 5.2.
Для вычисления значения функции используются:
· функция (расширение 32 бит до 48);
· функция (преобразование 6‑битового числа в 4‑битовое);
· функция (перестановка бит в 32‑битовой последовательности).
Приведем определения этих функций.
Аргументами функции шифрования являются (32 бита) и (48 бит). Результат функции есть 48‑битовое число. Функция расширения , выполняющая расширение 32 бит до 48 (принимает блок из 32 бит и порождает блок из 48 бит), определяется табл. 5.3.
В соответствии с табл. 5.3 первые три бита ‑ это биты 32, 1 и 2, а последние ‑ 31, 32 и 1. Полученный результат (обозначим его ) складывается по модулю 2 с текущим значением ключа и затем разбивается на восемь 6‑битовых блоков . Далее каждый из этих блоков используется как номер элемента в функциях ‑ матрицах , содержащих 4‑битовые значения (табл. 5.4).
Таблица 5.3 | |||||
Функция E | |||||
Следует отметить, что выбор элемента в матрице осуществляется достаточно оригинальным образом. Пусть на вход матрицы поступает 6‑битовый блок , тогда 2‑битовое число указывает номер строки матрицы, а 4‑битовое число ‑ номер столбца. Например, если на вход матрицы поступает 6‑битовый блок , то 2‑битовое число указывает строку с номером 2 матрицы , а 4‑битовое число указывает столбец с номером 3 матрицы . Это означает, что в матрице блок выбирает элемент на пересечении строки с номером 2 и столбца с номером 3, т.е. элемент . Совокупность 6‑битовых блоков обеспечивает выбор 4-битового элемента в каждой из матриц .
|
|
Таблица 5.4 | |||||||||||||||||
Функции S | |||||||||||||||||
В результате получаем , т.е. 32‑битовый блок (поскольку матрицы , содержат 4‑битовые элементы). Этот 32‑битовый блок преобразуется с помощью функции перестановки бит (табл. 5.5).
|
|
Таблица 5.5 | |||
Функция P | |||
Таким образом, функция шифрования
.