Стандарт шифрования DES (США)


Алгоритм, изложенный в стандарте DES (Data Encryption Standard), наиболее распространен и широко применяется для шифрования данных в США [29]. Он был разработан фирмой IBM для собственных целей, но после проверки Агентством Национальной Безопасности США был рекомендован к применению в качестве федерального стандарта шифрования. Алгоритм DES не является закрытым и был опубликован для широкого ознакомления. Алгоритм предназначен для зашифровки и расшифровки блоков данных длиной по 64 бита под управлением 64-битового ключа, в котором значащими являются 56 бит. Дешифрование в DES выполняется путем повторения операций шифрования в обратной последовательности.

Обобщенная схема шифрования алгоритма DES представлена на рис. 6.5.

Рис. 6.5. Обобщенная схема шифрования алгоритма DES

Пусть из открытого текста взят очередной 64-битовый блок T. Этот блок T преобразуется с помощью матрицы начальной перестановки IP. Данная перестановка фиксирована и приведена в таблице 6.3.

Табл. 6.3. Начальная перестановка (IP)

 

Например, бит 58 входного блока T становится битом 1, бит 50 – битом 2 и т.д.

Далее, полученная в результате перестановки последовательность битов T0 разделяется на 2 последовательности: L0 – старшие 32 бита, R0 – младшие 32 бита.

Затем выполняется итеративный процесс шифрования, состоящий из 16 циклов. Если Ti – последовательность битов, полученная на i – ой итерации, Ti=LiRi, то результат i-ой итерации описывается следующими формулами:

Li=Ri, Ri=Li-1 Å f(Ri-1,Ki), i=1,2,...,16,

где f – функция шифрования.

По окончании шифрования осуществляется конечная перестановка позиций битов последовательности с помощью матрицы обратной перестановки IP-1 (табл. 6.4.).

Табл. 6.4. Конечная перестановка(IP-1)

 

Схема вычисления функции шифрования f(Ri-1,Ki) представлена на рис. 6.6.

Для вычисления функции f используются:

- функция Е, расширяющая 32-битовое значение до 48 бит;

- функции S1,...,S8, преобразующие 6-битовое число в 4-битовое;

- функция P, осуществляющая перестановку битов в 32-битовой последовательности.

Функция расширения E определяется таблицей 6.5 выборки битов.

После расширения Ri-1 результат складывается по модулю два с текущим значением ключа Ki и затем разбивается на восемь 6-битовых блоков B1,B2,...,B8. Далее каждый из этих блоков используется как номер элемента в функциях-матрицах S1,S2,...,S8, содержащих 4-битовые значения.

Рис. 6.6. Схема вычисления функции шифрования f

 

Табл. 6.5. Табл. функции расширения Е

Выбор элемента в матрице Sj осуществляется следующим образом. Пусть на вход матрицы Sj поступает 6-битовый блок B1=b1b2b3b4b5b6, тогда двухбитовое число b1b2 указывает номер строки, а четырехбитовое число b2b3b4b5 – номер столбца матрицы Sj, откуда и берется требуемое четырехбитовое значение (табл. 5.6). Совокупность 6-битовых блоков B1B2,...,B8 обеспечивает выбор четырехбитового элемента в каждой из матриц S1,S2,...,S8.

Табл. 6.6. Функции преобразования S1,...,S8

Блок замены 1 (S[1])

Блок замены 2 (S[2])

Блок замены 3 (S[3])

Блок замены 4 (S[4])

Блок замены 5 (S[5])

Блок замены 6 (S[6])

Блок замены 7 (S[7])

Блок замены 8 (S[8])

 

В результате получаем значение S1(B1) S2(B2)... S8(B8) – 32 битовый блок, который преобразуется с помощью функции перестановки битов P (таблица 5.7.)

Табл. 6.7. Функция перестановки битов P

 

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

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

Полученную в результате перестановки битов ключа последовательность делят на 2 части – C0 и D0. После этого, рекурсивно вычисляются Ci,Di, i=1,2,...,16. Для этого применяются операции независимого для Ci и Di циклического сдвига влево на 1 или 2 бита в зависимости от номера шага итерации. Число сдвигов на итерацию приведено в таблице ниже.

Итерация № 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Сдвиги влево 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

Ключ Ki, определяемый на каждом шаге итерации, есть результат перестановки конкатенации CiDi согласно функции H, представленной в таблице 6.9.

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

Для шифрования или дешифрования более чем 64 битного блока существуют официальные режимы. Один из них - вычисления для каждого блока в ряде. Он назван режимом электронной кодовой книги. Более сильный метод заключается в суммировании по модулю два блока открытого текста с блоком шифротекста, прежде зашифрованным. Данный метод называется связыванием шифр-блоков(Сifer Block Chaining, CBC).

Другие два режима - режим с выходной обратной связью (Output Feedback mode, OFB) и шифрование с обратной связью (Cifer Feedback mode, CFB) распространяют искажения в открытом тексте, что применяется для проверки целостности информации.

Число различных ключей DES-алгоритма равно 256 = 7*1016 . Недавние исследования показали, что современная технология позволяет создать вычислительное устройство стоимостью около 1 млн. долларов, способное вскрыть секретный ключ с помощью полного перебора в среднем за 3,5 часа.

В настоящее время криптостойкость алгоритма DES не удовлетворяет реальным потребностям, в связи с чем, данный алгоритм в настоящее время заменен в США на более стойкий алгоритм AES.

 



Дата добавления: 2020-10-14; просмотров: 468;


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

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

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

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