Функция расширения Е

 

Как видно из табл. 4.3 часть бит (например, 1, 32 и т.д.) повторяются несколько раз; за счет этого 32 бита расширяются до 48 бит.

Полученный результат (обозначим его E(Ri-1)) складывается по модулю 2 (операция XOR) с текущим значением ключа Ki (который состоит из 48 бит) и затем разбивается на восемь 6-битовых блоков Bi, B2, ..., В8:

 

E(Ri-1)+Ki = B1B2 ... В8.

 

Далее каждый из этих блоков используется как номер эле­мента в функциях-матрицах S1, S2, ..., S8, содержащих 4-битовые значения.

Следует отметить, что выбор элемента в матрице Sj осу­ществляется достаточно оригинальным образом.

Пусть на вход матрицы Sj, поступает 6-битовый блок Bj = b1 b2 b3 b4 b5 b6, тогда двух битовое число b1b6 указывает номер строки матрицы, а четырех битовое число Ь2 Ь3 b4 b5 - номер столбца.

Например, если на вход матрицы S1 поступает 6-битовый блок В1= Ь1 b2 b3 b4 b5 b6 = = 100110, то 2-битовое число b1 b6 = 10(2) = 210 указывает строку с номером 2 матрицы S1, а 4-битовое число b2 b3'b4 b5=0011(2)=3(10) указывает столбец с номером 3 матрицы S1.

Это означает, что в матрице S1 блок B1 = 100110 выбирает элемент на пересечении строки с номером 2 и столбца с номером 3, т.е. элемент 8(10) = =1000{2). Совокупность 6-битовых блоков B1, B2,..., В8 обеспечивает выбор четырех битового элемента в каждой из матриц S1, S2, ..., S8.

В результате получаем S1(B1) S2(B2) S3(B3) ... S8(B8), т.е. 32-битовый блок (поскольку матрицы Sj содержат 4-битовые элемен­ты). Этот 32-битовый блок преобразуется с помощью функции пе­рестановки битов Р (табл.4.4).

 

Таблица 4.4

Функция перестановки Р

 

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

f(Ri_1,Ki) = P(S1(B1).............................. S8(B8)).

 

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

 

 

 


Рис. 18. Схема алгоритма вычисления ключей Кi

 

 

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

Таблица 4.5

Функция G первоначальной подготовки ключа

 

 

 

Табл. 4.5 разделена на две части. Результат преобразования G(K) разбивается на две половины С0 и D0 по 28 бит каждая. Первые четыре строки матрицы G определяют, как выбираются биты последовательности С0 (первым битом С0 будет бит 57 ключа шифра, затем бит 49 и т.д., а последними битами - биты 44 и 36 ключа).

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

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

После определения С0 и D0 рекурсивно определяются Сi и Di, i = 1, 2, …, 16. Для этого применяются операции циклического сдвига влево на один или два бита в зависимости от номера шага итерации, как показано в табл. 4.6.

Операции сдвига выполняются для последовательностей Сi и Di независимо. Например, последовательность С3 получается посредством циклического сдвига влево на две позиции последо­вательности С2, а последовательность D3 - посредством сдвига влево на две позиции последовательности D2, C16 и D16 получают­ся из C15 и D15 посредством сдвига влево на одну позицию.

Таблица 4.6

Таблица сдвигов Si для вычисления ключа

 

Номер итерации Количество Si сдвигов влево, бит Номер итерации Количество s, сдвигов влево, бит
9 1

 

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

 

Таблица 4.7

Функция Н завершающей обработки ключа

 

 

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

 








Дата добавления: 2017-08-01; просмотров: 627;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.