Реализация функции шифрования

Схема вычисления функции шифрования показана на рис. 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
       
       
       
       
       
       
       
       

Таким образом, функция шифрования

.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: