Повышение криптостойкости алгоритма DES.

Число возможных ключей шифрования в криптосистеме DES равно 256 = 1288 = 72 057 594 037 927 936. Если же при выборе ключа шифрования ограничиться лишь печатными символами (например, взятыми из пароля пользователя), то число возможных ключей уменьшится до 968 = 7 213 895 789 838 336.

Для повышения криптостойкости алгоритма DES, вызванной недостаточными на сегодняшний день длиной ключа шифрования и числом раундов, используются различные модификации этой криптосистемы. Среди них наиболее известны 3- DES и DESX.

В 3-DES к одному и тому же блоку открытого текста M функция шифрования применяется трижды с тремя разными ключами (k1, k2, k3), что обеспечивает увеличение длины ключа окончательного шифрования и числа раундов в три раза:

C = Ek3(Dk2(Ek1(M))).

Расшифрование выполняется следующим образом:

M = Dk1(Ek2(Dk3(C))).

На втором шаге тройного DES используется не функция шифрования, а функция расшифрования, поскольку при k1=k2=k3 результат шифрования по алгоритму 3-DES совпадает с шифрованием по алгоритму DES на ключе k1. Использование двойного DES более уязвимо для криптоанализа.

Недостатком алгоритма 3-DES является снижение производительности шифрования в три раза по сравнению с алгоритмом DES. Этого недостатка лишен алгоритм DESX:

C = k2 + Ek (k1 + M),

где k – ключ DES-шифрования длиной 56 бит; k1 и k2 – дополнительные ключи шифрования длиной 64 бита каждый; + - операция сложения по модулю 2.

Общая длина ключа шифрования, используемого в алгоритме DESX, составляет, таким образом, 184 бита. Расшифрование шифротекста по алгоритму DESX производится следующим образом:

M = Dk(C + k2) + k1.

Многие операционные системы семейства Unix включают в свой состав системную программу des, реализующую шифрование (расшифрование) по алгоритму DES информации со стандартного устройства ввода с передачей результата на стандартное устройство вывода.

В операционных системах Windows, как в открытых, начиная с версии Windows 95 OSR2, так и защищенных доступ к шифрованию по алгоритму DES и другим возможен с помощью функций криптографического интерфейса CryptoAPI.

Криптографическая система ГОСТ 28147-89

Используемая в Российской Федерации криптосистема определена в стандарте ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования данных» (в 1989 г. с этого алгоритма был снят гриф секретности, хотя он был разработан значительно раньше). Стандарт обяза­телен для организаций, предприятий и учреждений, применяющих криптографическую защиту данных, хранимых и передаваемых в сетях ЭВМ, в отдельных вычислительных комплексах и ЭВМ.

Этот алгоритм криптографического преобразования дан­ных предназначен для аппаратной и программной реализации, удовлетворяет криптографическим требованиям и не накладывает ограничений на степень секретности защищаемой информации.

В алгоритме ГОСТ 28147-89 используется ключ шифрования k длиной 256 бит, который может рассматриваться как массив из восьми 32-битных элементов k0, k1, …, k7 (внутренних ключей). Дополнительным ключевым элементом алгоритма является таблица замен S, представляющая собой матрицу из восьми строк и шестнадцати столбцов, элементы которой – целые числа от 0 до 15. Каждая строка таблицы замен должна содержать 16 различных чисел. Таким образом, общий размер таблицы замен составляет 512 бит.

Таким образом, алгоритм шифрования данных представляет собой 64-битовый блочный алгоритм с 256-битовым ключом.

При описании алгоритма используются следующие обо­значения: L и R - последовательности битов; LR - конкатенация последовательностей L и R, в которой биты последовательности R следуют за битами последовательности L; + - операция побитово­го сложения по модулю 2; [+]- операция сложения по модулю 232 двух 32-разрядных двоичных чисел; {+} - операция сложения двух 32-разрядных чисел по модулю 232 -1.

Два целых числа а, b, где 0 <= а, b<= 232-1,

а= (а32а31 ... a2a1), b = (b32, b31............... b2, b1),

представленные в двоичном виде, т.е.

а= а32231 + а31230 +...+ а221 + a1,

b = b32231 + b31 230+...+ b221 + b1,

суммируются по модулю 232 (операция [+]) по следующему правилу:

а [+] b = а + b, если а + b < 232,

a [+] b = a + b- 232 если а + b > 232.

Правила суммирования чисел по модулю 232- 1:

а {+} b = а + Ь, если а + b < 232- 1,

a {+} b = a + b-(232-1), если а + b >= 232-1.

Алгоритм предусматривает четыре режима работы:

· шифрование данных в режиме простой замены;

· шифрование данных в режиме гаммирования;

· шифрование данных в режиме гаммирования с обратной свя­зью;

· выработка имитовставки.

Режим простой замены.

Для реализации алгоритма шифрования данных в режиме простой замены используется только часть блоков общей крипто­системы (рис. 23). Обозначения на схеме:

N1, N2 - 32-разрядные накопители;

CM1 - 32-разрядный сумматор по модулю 232 ([+]);

СМ2 - 32-разрядный сумматор по модулю 2 (+);

R - 32-разрядный регистр циклического сдвига;

КЗУ - ключевое запоминающее устройство на 256 бит, состоящее из восьми 32-разрядных накопителей Х0, X1, X2, ..., Х7;

S - блок подстановки, состоящий из восьми узлов замены (8-блоков замены) S1, S2, S3, ..., S7, S8.

 
  Повышение криптостойкости алгоритма DES. - student2.ru

Рис. 23. Схема реализации режима простой замены

Наши рекомендации