Описание SAFER K-64


Блок открытого текста делится на восемь байтовых подблоков: B1, B2, . . . , B7, B8. Затем подблоки обрабатываются в ходе r этапов. Наконец подблоки подвергаются заключительному преобразованию. На каждом этапе используется два подключа: K2r-1 и K2r.

На Рис. 14-4 показан один этап SAFER K-64. Сначала над подблоками выполняется либо операция XOR, либо сложени с байтами подключа K2r-1. Затем восемь подблоков подвергаются одному из двух нелинейных преобразований:

y = 45x mod 257. (Если x = 0, то y = 0.)

y = log45 x. (Если x = 0, то y = 0.)

Рис. 14-4. Один этап SAFER.

Это операции в конечном поле GF(257), а 45 - элемент поля, являющийся примитивом. В реализациях SAFER K-64 быстрее выполнять поиск в таблице, чем все время рассчитывать новые результаты.

Затем подблоки либо подвергаются XOR, либо складываются с байтами подключа K2r. Результат этого действия проходит через три уровня линейных операций, целью которых является увеличение лавинного эффекта. Каждая операция называется псевдоадамаровым преобразованием (Pseudo-Hadamard Transform, PHT). Если на входе PHT a1 и a2, то на выходе:

b1 = (2a1 + a2) mod 256

b2 = (a1 + a2) mod 256

После r этапов выполняется заключительное преобразование. Оно совпадает с преобразованием, являющимся первым действием каждого этапа. Над B1, B4, B5 и B8 выполняется XOR с соответствующими байтами последнего подключа, а B2, B3, B6 и B7 складываются с соответствующими байтами последнего подключа. В результате и получается шифротекст.

Дешифрирование представляет собой обратный процесс: сначала заключительное преобразование (с вычитанием вместо сложения), затем r инвертированных этапов. Обратное PHT (Inverse PHT, IPHT) - это:

a1 = (b1 - b2) mod 256

a2 = (-b1 + 2b2) mod 256

Массей рекомендует использовать 6 этапов, но для большей безопасности количество этапов можно увеличить.

Генерировать подключи совсем не трудно. Первый подключ, K1, - это просто ключ пользователя. Последующие ключи генерируются в соответствии со следующей процедурой:

Ki+1 = (Ki <<<3i) + ci

Символ "<<<" обозначает циклический сдвиг налево. Сдвиг выполняется побайтно, а ci является константой этапа. Если cij - это j-ый байт константы i-го этапа, то можно рассчитать все константы этапов по следующей формуле

cij = 4545^((9i+j) mod 256) mod 257 mod 257

Обычно эти значения хранятся в таблице.

SAFER K-128

Этот альтернативный способ использования ключа был разработан Министерством внутренних дел Сингапура, а затем был встроен Массеем в SAFER [1010]. В этом способе используются два ключа, Ka и Kb, по 64 бита каждый. Прием состоит в том, чтобы генерировать параллельно две последовательности подключей, а затем чередовать подключи из каждой последовательности. Это означает, что при выборе Ka = Kb 128-битовый ключ совместим с 64-битовым ключом Ka.



Дата добавления: 2021-01-26; просмотров: 313;


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

Воспользовавшись поиском можно найти нужную информацию на сайте.

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

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.