Описание FEAL
Къ
Кп
Криптоанализ и Madryga
Исследователи из Технического университета в Квинсланде (Queensland University of Technology) [675] и с-следовали Madryga вместе с некоторыми другими блочными шифрами. Они обнаружили, что в этом алгоритме не проявляется лавинный эффект для преобразования открытого текста в шифротекст. Кроме того, во многих шифротекстах процент единиц был выше, чем процент нулей.
Хотя у меня нет сведений о проведении формального анализа этого алгоритма, он не производит впечатл е-ние супернадежного. При поверхностном знакомстве с ним Эли Бихам пришел к следующим выводам [160]:
Алгоритм состоит только из линейных операций (циклическое смещение и XOR), незначительно изменяемых в завис и-мости от данных.
В этом нет ничего похожего на мощь S-блоков DES.
Четность всех битов шифротекста и открытого текста неизменна и зависит только от ключа. Поэтому, обладая открытым текстом и соответствующим шифротекстом, можно предсказать четность шифротекста для любого открытого текста.
По отдельности ни одно из этих замечаний не являются критическими, но этот алгоритм не вызывает у меня положительных эмоций. Я не рекомендую использовать Madryga.
13.3 NewDES
NewDES (новый DES) был спроектирован в 1985 году Робертом Скоттом (Robert Scott) как возможная зам е-на DES [1405, 364]. Алгоритм не является модификацией DES, как может показаться из его названия. Он оп е-рирует 64-битовыми блоками шифротекста, но использует 120-битовый ключ. NewDES проще, чем DES, в нем нет начальной и заключительной перестановок. Все операции выполняются над целыми байтами. (На самом деле NewDES ни коим образом не является новой версией DES, название было выбрано неудачно.)
Блок открытого текста делится на восемь 1-байтовых подблоков: В0, Въ . . ., В6, Въ Затем подблоки проходят через 17 этапов. В каждом этапе восемь действий. В каждом действии один из подблоков подвергается опер а-ции XOR с частью ключа (есть одно исключение), заменяется другим байтом с помощью функции f и затем подвергается операции XOR с другим подблоком, который и заменяется результатом. 120-битовый ключ дели т-ся на 15 подблоков ключа: К0, Ки . . ., Ки, К14. Процесс легче понять, увидев его схему, чем прочитав его оп и-сание. Алгоритм шифрования NewDES показан на 11-й.
/ |
Этап 1
Этап 2
Ко К, К2 К3
Во B^ Вг Въ
>т
3>
&
е
о
о
о
/
f
/
f
/
t
ф
-ф
/ ■•
в4 в5 в6 в7
-ф
•Э
•0
Ф
К4
К5 Кб
Этапы 3-15
/ |
Этап 16
Этап 17
К12
Ki3
K14
е
о
о
о
ф
3>
3>
#
f
/
f
/
t
/
ф
-Ф
/ ■•
е
^
ф
•е
-э
•0
Кэ
Кю
Во Bi B2 Вз
В4 В5 Вв В7
Рис. 13-2. NewDES.
Функция f выводится из Декларации независимости. Подробности можно найти в [1405].
Скотт показал, что каждый бит блока открытого текста влияет на каждый бит шифротекста уже после 7 эт а-пов. Он также проанализировал функцию f и не нашел каких-либо очевидных проблем. NewDES обладает той же комплиментарностью, что и DES [364]: если Е^Р} = С, то ЕК(Р'} = С. Это уменьшает объем работы, необходимой для вскрытия грубой силой, с 2110 действий до 2Ш Бихам заметил, что любое изменение полного байта, примененное ко всем байтам ключа и данных, также приводит к комплиментарности [160]. Это уменьшает объем грубого вскрытия до 2112 действий.
Это не является критичным, но предложенное Бихамом криптоаналитическое вскрытие со связанными кл ю-чами может вскрыть NewDES с помощью 233 выбранных открытых текстов для выбранных ключей за 248 действий [160]. Хотя такое вскрытие требует много времени и в большой степени является теоретическим, оно п о-казывает, что NewDES слабее, чем DES.
13.4 FEAL
FEAL был предложен Акихиро Шимузу (Akihiro Shimizu) Шоджи Миягучи (Shoji Miyaguchi) из NTT Japan [1435]. В нем используются 64-битовый блок и 64-битовый ключ. Его идея состоит в том, чтобы создать алг о-ритм, подобный DES, но с более сильной функцией этапа. Используя меньше этапов, этот алгоритм мог бы р а-ботать быстрее. К несчастью действительность оказалась далека от целей проекта.
На 10-й представлена блок-схема одного этапа FEAL. В качестве входа процесса шифрования используется 64-битовый блок открытого текста. Сначала блок данных подвергается операции XOR с 64 битами ключа. 3 а-
тем блок данных расщепляется не левую и правую половины. Объединение левой и правой половин с помощью XOR образует новую правую половину. Левая половина и новая правая половина проходят через п этапов (первоначально четыре). На каждом этапе правая половина объединяется с помощью функции f с шестнадцатью битами ключа и с помощью XOR - с левой половиной, создавая новую правую половину. Исходная правая п о-ловина (на начало этапа) становится новой левой половиной. После п этапов (не забывайте, что левая и правая половины не переставляются после n-го этапа) левая половина снова объединяется с помощью XOR с правой половиной, образуя новую правую половину, затем левая и правая соединяются вместе в 64-битовое целое. Блок данных объединяется с помощью XOR с другими 64 битами ключа, и алгоритм завершается.
32 бита
Lo{Re}
Ь {Ri} |
Lo{R8}
Открытый текст 64 бита i-
64 бита
(Кв. Кэ, Ко, Ки)
{(Kl2, Kl3, Kl4, Kb)}
—32 бита
*ф Ro{Le}
Ко {К/}
Ro{U}
Ki {/-/} |
К {Ke}
L7 {Ri}|
f
— Ki {Ко} RAU)
Rb{L0}
>Ф
LB{R0}
Ж 64 бита
( K12 , K13 , K14 , Kb)
{(Kb, Kb, Ко, Kii)}
Шифротекст
(V Дешифрирование
Рис. 13-3. Один этап FEAL.
Функция f берет 32 бита данных и 16 битов ключа и смешивает их вместе. Сначала блок данных разбивается на 8-битовые кусочки, которые затем объединяются с помощью XOR и заменяют друг друга. Блок-схема фун к-ции f представлена на 9-й. Две функции S0h Si определяются следующим образом:
S0(a,b) = циклический сдвиг влево на два бита ((а + Ъ) mod 256)
Si(a,b) = циклический сдвиг влево на два бита((а + Ъ + 1) mod 256)
Ъ
f{ab}
So
I
So