(ЗАО «КТС»)

Данные шифруются 64-битными блоками на основе 56-битного ключа (ключ 64-битный, но используются в нем только 56 бит). Для расшифровки используется тот же ключ.


Схема алгоритма:



где:





































Text


исходный текст (блок 64 бита)


Crypt


зашифрованный блок


Key


64-х разрядный ключ


числа


разрядность на данной ветке алгоритма


P, Pk


перестановки


S


подстановка 6 бит -> 4 бита


L(i)


сдвиг (i — номер итерации)


xor


сложение по модулю 2



конкатенация битовых строк, причем верхняя — спереди



разбиение строки на две, причем первая — наверху



ограниченный точками участок повторяется 16 раз

Перестановки выполняются по обычной формуле D[i]=S[P[i]],


где













S


исходная строка (массив символов, нумерация с единицы)


D


результат перестановки (массив символов, нумерация с единицы)


P


таблица перестановок (массив индексов в строке S)

S — подстановка 6->4. В соответствие шести битам ставится четыре. Подстановка производится по следующему правилу: пусть исходная битовая строка — /abcdef/, тогда /af/ — номер строки, а /bcde/ — номер столбца. Строка и столбец определяют местонахождение результата в S-таблице. Например, при использовании таблицу S6, число 58 (111010) переводится в 13 (1101).


Помимо обычного его применения, этот алгоритм можно использовать для создания «односторонних» функций; см. Организация проверок. Для этого ключ и исходный текст меняются местами: в формуле Crypt=DES(Text,Key) исходный текст может быть несекретным и фиксированным. А Crypt рассматривается как функция ключа — Key.

 

Оставит комментарий