Дипломная работа: Интегральная атака против блочного симметричного шифра Crypton
For ( i=1 ; i<Nr ; i++) Round(State,ExpandedKey+Nb*i);
FinalRound(State, ExpandedKey+Nb*Nr);
}
Расширенный ключ должен всегда получаться из ключа шифрования и никогда не указывается напрямую. Нет никаких ограничений на выбор ключа шифрования.
1.2.2 Анализ симметричного блочного шифра DEAL
DEAL (DataEncryptionAlgorithmwithLargerblocks - Алгоритм Шифрования Данных с Укрупненными блоками) является 128-и битным блочным шифром с размерами ключа 128, 192 и 256 бит, что далее здесь будет обозначаться DEAL-128, DEAL-192 и DEAL-256 соответственно [12]. Все версии могут использоваться в любом из четырех стандартных режимах DES'a. Мы начнем с описания работы DEAL в режиме ECB. Пусть С = ЕВ (А) означает зашифрованное DES значение 64-х битного А на ключе В, и пусть Y = EAZ (X) означает зашифрование DEAL 128-и битного X на ключе Z. Открытый текст Р разделяется на блоки Pi по 128 бит каждый, P = P1 , P2 , …, Рn . Расписание ключей принимает ключ К и возвращает r ключей DESRKi , где i = 1, … , r, как описано ниже. Обозначим XL и XR левую и правую части X соответственно. Шифр-текст вычисляется следующим образом. Положим X0 L = Pi L , X0 R = Рi R и вычислим для j= 1, … ,r
Xj L =ERKj (XL j -1 ) XR j -1 (1.9)
XR j = XL j -1 (1.10)
Рисунок 1.10: ОдинциклDEAL.
ПоложимCi =Xr L ||Xr R . На рис. 1.10 показан один цикл DEAL. Для DEAL-128 и DEAL-192 мы предлагаем использовать 6 циклов, т. е. r = 6. Однако, как мы увидим ниже, этого может быть недостаточно для DEAL-256, здесь предлагается использовать 8 циклов, r = 8. Представляется, что версия с размером ключа 256 бит используется только когда требуется особенно сильное зашифрование.
Заметим, что последнем цикле DEAL половины блока местами меняются[13]. Причина в следующем: правая часть шифр-текста Сi не шифруется в последнем цикле i-oro зашифрования, и только левая часть входа i + 1-ого зашифрования (который равен Ci Pi + l ) шифруется на последнем цикле. Т. о. правая часть Ci осталась бы не перезашифрованной два цикла. Это может дать поле деятельности злоумышленникам, тем более, что шифр состоит всего из 6-и или 8-и циклов. Заметим, что аналогичное свойство есть и у DES в режиме CBC. Правда, похоже это труднее было бы использовать, ведь у DES 16 циклов. Позволим себе отметить, что обмен местами правой и левой частей на последнем цикле не влияет на стойкость блочного шифра в режиме ECB [14].
Итак, обозначим блоки открытого текста по 128 бит P1 , P2 , …, Pn и Ci , С2 , ,… , Сп -соответствующие им блоки шифр-текста. Тогда:
Сi = EAK (Ci - l Pi ),(1.11)
где С0 - начальное значение.
В DES начальная перестановка IP первой применяется к открытому тексту, и аналогично перед выходом шифр-текст пропускается через обратную к ней IP-1 . Возможно увеличить скорость DEAL, если убрать из используемого DESэти начальную и конечную перестановки. Легко показать, что для получения корректной реализации DEAL, IP должна быть приложена к обоим частям открытого текста перед зашифрованием, aIP-1 - к обоим частям шифр-текста.
На вход расписания ключей подается s ключей DES, Ki, ,… , Ks , для s = 2, 3, 4, каждый по 64 бит (включая 8 проверочных бит, старших бит каждого байта), на выходе получается r ключей DES, RKj . Мы используем общий метод, приложимый ко всем трем размерам ключа. Во-первых расширяем s ключей до r ключей, путем повторения и с новой константой для каждого нового повторения. Зашифровываем расширенный список ключей DES'om в режиме CBC с фиксированным ключом и нулевым начальным значением. Из полученных блоков шифр-текста и формируются подключи RKi. Далее мы приводим точные определения каждого из расписаний ключей, здесь К = 0x1234 5678 90abcdefx (шестнадцатеричное число) - фиксированный ключ DES. В DEAL-128 подключи генерируются следующим образом:
RK1 = EK (К1 ),
RK2 = EK (К2 RK1 ),
RK3 =EK (Kl (1)RK2 ),
RK4 = EK (К2 (2)RK3 ),
RK5 =Ek (ki (4)RK4 ),
RK6 =Ek (k2 (8)RK5 ),(1.12)
где (i) - 64-х битное целое число, в котором i - 1-ый бит (индексация идет с 0) установлен, а остальные очищены. Например, (1) может быть представлено как шестнадцатеричное "0x8000 0000 0000 0000х ".
В DEAL-192 подключи генерируются следующим образом:
RK1 = EK (К1 ),
RK2 = EK (К2 RK1 ),
RK3 =EK (K3 RK2 ),
RK4 =Ek (ki (1)RK3 ),