Алгоритм CAST-256
Алгоритм шифрования CAST-256 разработан специалистами канадской компании Entrust Technologies. Основой алгоритма являются преобразования широко используемого ранее и хорошо зарекомендовавшего себя алгоритма CAST-128, также разработанного компанией Entrust Technologies.
Алгоритм CAST-256 шифрует информацию 128-битными блоками и использует несколько фиксированных размеров ключа шифрования: 128, 160, 192, 224 или 256 битов.
128-битный блок данных разбивается на 4 субблока по 32 бита, каждый из которых в каждом раунде алгоритма подвергается определенному преобразованию и накладывается на один из соседних субблоков. Разработчики алгоритма классифицировали его как подстановочно-перестановочную сеть. Однако ряд экспертов конкурса AES посчитали алгоритм CAST-256 сетью Фейстеля, в каждом раунде которой обрабатывается только один субблок, а количество «настоящих» раундов в 4 раза больше, чем заявлено в спецификации алгоритма.
В процессе работы алгоритма выполняется 12 раундов преобразований, в первых 6 из которых выполняется преобразование (называемое прямой функцией раунда), а в последних 6 раундах выполняется обратная функция раунда t2.
Процедура расширения ключа является более сложной, чем собственно шифрование данных. Сначала 256-битный ключ шифрования делится на 8 фрагментов по 32 бита. Если используется ключ меньшего размера, то «лишние» фрагменты ключа считаются нулевыми.
После этого выполняется инициализация временных переменных, которая описана далее.
Несомненным достоинством алгоритма CAST-256 является отсутствие доказанных уязвимостей. Кроме того, плюсом является возможность выполнения расширения ключа «на лету», т. е. в процессе операции зашифровывания (но не расшифровывания). Однако в алгоритме было найдено несколько недостатков, благодаря которым он не вышел во второй раунд конкурса:
алгоритм уступает в скорости ряду алгоритмов — участников конкурса, в том числе всем финалистам конкурса;
достаточно высокие требования к оперативной и энергонезависимой памяти затрудняют использование данного алгоритма в смарт-картах;
некоторые эксперты сочли алгоритм CAST-256 подверженным атакам по потребляемой мощности.
По материалам книги Сергея Панасенко «Алгоритмы шифрования»
Алгоритмы шифрования