Стандарт шифрования 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; просмотров: 462;