Алгоритм CAST-128
Алгоритм CAST-128 разработан канадской компанией Entrust Technologies. Этот алгоритм является предшественником хорошо известного алгоритма CAST-256.
CAST-128 шифрует информацию блоками по 64 бита, используя несколько фиксированных размеров ключа: от 40 до 128 битов включительно с шагом 8 битов. При этом автор алгоритма считает достаточной в реализациях алгоритма поддержку 40-, 64-, 80- и 128-битных ключей.
Данный алгоритм является сетью Фейстеля, в которой выполняется 12 или 16 раундов преобразований в зависимости от размера ключа:
12 раундов при ключах размером до 80 битов включительно;
16 раундов, если размер ключа превышает 80 битов.
Перед выполнением расширения ключа выполняется дополнение ключа, меньшего 128 битов, нулевыми битами до достижения 128-битного размера. Собственно процедура расширения ключа является достаточно сложной, ее полное описание можно найти в спецификации алгоритма. Стоит отметить тот факт, что, в отличие от алгоритма CAST-256, CAST-128 имеет 8 (а не 4) таблиц замен, причем 4 из них используются только в процедуре расширения ключа. Это сильно увеличивает ресурсоемкость алгоритма в части требований к энергонезвисимой памяти.
Расшифровывание выполняется аналогично зашифровыванию, но с обратным порядком использования ключей раундов.
Не известно каких-либо методов вскрытия алгоритма CAST-128, более быстрых, чем прямой перебор вариантов ключа.
По материалам книги Сергея Панасенко «Алгоритмы шифрования»
Алгоритмы шифрования