Алгоритм Camellia
Алгоритм Camellia разработан компанией Mitsubishi Electric совместно с компанией Nippon Telegraph and Telephone Corporation (NTT). В его разработке приняли участие некоторые из специалистов, ранее разработавших еще один алгоритм — победитель конкурса NESSIE— MISTY1 (см. разд. 3.36): Мицуру Мацуи, Тецуя Ичикава, Тошио Токита, — а также Казумаро Аоки (Kazumaro Aoki), Масаюки Канда (Masayuki Kanda), Шихо Мориаи (Shiho Moriai) и Джунко Накаджима (Junko Nakajima).
Camellia шифрует данные 128-битными блоками с использованием 128-, 192-или 256-битных ключей шифрования. В зависимости от размера ключа в алгоритме предусмотрено различное количество раундов:
18 — для 128-битного ключа;
24 — для остальных размеров ключа.
По завершении последнего раунда субблоки меняются местами. Затем выполняется выходное отбеливание данных; здесь используется еще один 128-битный фрагмент расширенного ключа).
В каждом раунде левый субблок обрабатывается функцией F, которая использует 64-битный фрагмент ключа ki (i — номер раунда), и накладывается на правый субблок операцией XOR.
Прежде всего выполняется наложение на обрабатываемый субблок фрагмента ключа ki операцией XOR.
Затем 64-битный результат предыдущей операции разбивается на 8 фрагментов по 8 битов, каждый из которых «прогоняется» через табличную замену. Эта операция подробно описана далее.
Задача расширения ключа состоит в формировании необходимого количества фрагментов расширенного ключа (для перечисленных выше операций) из 128-, 192- или 256-битного исходного ключа шифрования К. Данная процедура состоит из нескольких этапов.
Первые отзывы известных экспертов об алгоритме Camellia также были крайне положительными. В частности, в работах отмечена исключительно высокая криптостойкость Camellia. Ларе Кнудсен утверждает следующее:
любые практически осуществимые атаки на Camellia будут возможны только после принципиальных прорывов в области криптоанализа;
Camellia — один из наиболее стойких современных алгоритмов шифрования.
В оценке ресурсоемкости и быстродействия алгоритма Camellia эксперты были далеко не так единодушны:
Camellia существенно проигрывает в скорости алгоритму Rijndael;
Camellia предъявляет достаточно высокие требования к оперативной и энергонезависимой памяти;
и наоборот, авторы отчета CRYPTREC (Camellia — один из рекомендованных экспертами алгоритмов для защиты в рамках проекта CRYPTREC, который посвящен созданию электронного правительства Японии) отметили высокую скорость шифрования (особенно на серверных платформах), быструю процедуру расширения ключа и достаточно невысокие требования к энергонезависимой памяти.
Весьма много исследований было посвящено ослабленному варианту алгоритма Camellia— с уменьшенным количеством раундов, а также без входного/выходного отбеливания и операций FLJFL1. Стоит упомянуть следующие работы:
Camellia — один из алгоритмов — победителей конкурса NESSIE. В рамках исследований, проведенных во время конкурса NESSIE, не было выявлено каких-либо проблем с криптостойкостью данного алгоритма. В настоящее время также не найдено каких-либо серьезных уязвимостей в алгоритме Camellia, однако видно, что активный анализ этого алгоритма будет продолжаться.
По материалам книги Сергея Панасенко «Алгоритмы шифрования»
Алгоритмы шифрования