CAST
CAST был разработан в Канаде Карлайслом Адамсом (Carlisle Adams) и Стаффордом Таваресом (Stafford Tavares) [10, 7]. Они утверждают, что название обусловлено ходом разработки и должно напоминать о вероятностном характере процесса, а не об инициалах авторов. Описываемый алгоритм CAST использует 64-битовый блок и 64-битовый ключ.
CAST имеет знакомую структуру. Алгоритм использует шесть S-блоков с 8-битовым входом и 32-битовым выходом. Работа этих S-блоков сложна и зависит от реализации, подробности можно найти в литературе.
Для шифрования сначала блок открытого текста разбивается на левую и правую половины. Алгоритм состоит из 8 этапов. На каждом этапе правая половина объединяется с частью ключа с помощью функции f, а затем XOR результата и левой половины выполняется для получения новой правой половины. Первоначальная (до этапа) правая половина становится новой левой половиной. После 8 этапов (не переставьте левую и правую половины после восьмого этапа) две половины объединяются, образуя шифротекст. Функция f проста:
-
Разбейте 32-битовый вход на четыре 8-битовых части: a, b, c, d.
-
Разбейте 16-битовый подключ на две 8-битовых половины: e, f.
-
Подайте a на вход S-блока 1, b - на вход S-блока 2, c - на вход S-блока 3, d - на вход S-блока 4, e - на вход S-блока 5 и f - на вход S-блока 6.
-
Выполните XOR шести выходов S-блоков, получая 32-битовый результат.
Иначе, 32-битовый вход может быть объединен с помощью XOR с 32 битами ключа, разбит на четыре 8-битовых части, которые обрабатываются S-блоками и затем объединяются с помощью XOR [7]. Безопасность N этапов, организованных таким образом, по видимому, соответствует N + 2 этапам другого варианта.
16-битовые подключи этапов легко получаются из 64-битового ключа. Если k1, k2, . . .k8 - это 8 байтов ключа, то на этапах алгоритма используются следующие подключи:
Этап 1: k1, k2
Этап 2: k3, k4
Этап 3: k5, k6
Этап 4: k7, k8
Этап 5: k4, k3
Этап 6: k2, k1
Этап 7: k8, k7
Этап 8: k6, k5
Сила этого алгоритма заключена в его S-блоках. У CAST нет фиксированных S-блоков, для каждого приложения они конструируются заново. Критерии проектирования описаны в [10], изогнутыми функциями являются столбцы S-блоков, обеспечивающие необходимые свойства S-блоков (см. раздел 14.10). Созданный для данной реализации CAST S-блоков уже больше никогда не меняется. S-блоки зависят от реализации, а не от ключа.
В [10] было показано, что CAST устойчив к дифференциальному криптоанализу, а в [728] - что CAST устойчив и к линейному криптоанализу. Неизвестно иного, чем грубая сила, способа вскрыть CAST.
Northern Telecom использует CAST в своем пакете программ Entrust для компьютеров Macintosh, PC и рабочих станций UNIX. Выбранные ими S-блоки не опубликованы. Канадское правительство считает CAST новым стандартом шифрования. Патентная заявка на CAST находится в процессе рассмотрения.