Описание S-Way
Безопасность SAFER K-64
SAFER K-128
Этот альтернативный способ использования ключа был разработан Министерством внутренних дел Синг а-пура, а затем был встроен Массеем в SAFER [1010]. В этом способе используются два ключа, Ка и Кь, по 64 бита каждый. Прием состоит в том, чтобы генерировать параллельно две последовательности подключей, а з а-тем чередовать подключи из каждой последовательности. Это означает, что при выборе Ка = Кь 128-битовый ключ совместим с 64-битовым ключом Ка.
Массей показал, что SAFER K-64 после 6 этапов абсолютно защищен от дифференциального криптоанализа после 8 этапов и достаточно безопасен. Уже после 3 этапов против этого алгоритма становится неэффективным и линейный криптоанализ [1010].
Кнудсен (Knudsen) обнаружил слабое место в распределении ключей: практически для каждого ключа сущ е-ствует не меньше одного (а иногда даже девять) другого ключа, который при шифровании какого-то другого открытого текста превращает его в тот же шифротекст [862]. Число различных открытых текстов, которые шифруются одинаковыми шифротекстами, находится в промежутке от 2 22 до 228. Хотя такое вскрытие не может повлиять на безопасность SAFER как алгоритма шифрования, оно значительно уменьшает его надежность при использовании в качестве однонаправленной хэш-функции. В любом случае Кнудсен рекомендует использовать не меньше 8 этапов.
SAFER был спроектирован для Cylink, a Cylink были предъявлены различные обвинения со стороны NSA [80]. Я рекомендовал бы потратить несколько лет на интенсивный криптоанализ прежде, чем как-либо испол ь-зовать SAFER.
14.5 3-WAY
3-Way - это блочный шифр, разработанный Джоном Дэйменом (Joan Daemen) [402, 410]. Он использует блок и ключ длиной 96 бит, и его схема предполагает очень эффективную аппаратную реализацию.
З-Way является не сетью Фейстела, а итеративным блочным шифром. У З-Way может быть п этапов, Дэ й-мен рекомендует И.
Этот алгоритм описать несложно. Для шифрования блока открытого текста х: For i = 0 to n - 1
х = х XOR Ki х = theta (х) х = pi - 1 (х) х = gamma (x) х = pi - 2 (х) x = x®Kn+1 х = theta (x) При этом используются следующие функции:
— theta(x) - функция линейной подстановки, в основном набор циклических сдвигов и XOR.
— pi - 1 (х) и pi - 2 (х) - простые перестановки.
— gamma (x) - функция нелинейной подстановки. Именно это действие и дало имя всему алгоритму, оно представляет собой параллельное выполнение подстановки 3-битовых данных.
Дешифрирование аналогично шифрованию за исключением того, что нужно изменить на обратный порядок битов исходных данных и результата. Исходный код, реализующий З-Way, можно найти в конце этой книги.
Пока об успешном криптоанализе З-Way неизвестно. Алгоритм незапатентован.