CoderTools

Шифрование и дешифрование Camellia

Сертифицированный шифр ISO/NESSIE/CRYPTREC — безопасность эквивалентна AES

Уведомление о безопасности

Camellia обеспечивает превосходную безопасность, эквивалентную AES. Рекомендуется для приложений, требующих соответствия стандартам ISO/IEC или японских/европейских сертификаций.

Параметры формата

О Camellia

О Camellia

Camellia — симметричный блочный шифр, совместно разработанный Mitsubishi Electric и NTT (Nippon Telegraph and Telephone) и опубликованный в 2000 году. Работает с блоками по 128 бит при длине ключа 128, 192 или 256 бит. Алгоритм организует раунды в группы по шесть, каждая из которых завершается функциями FL/FL⁻¹ — побитовыми операциями, зависящими от ключа и вносящими дополнительную нелинейность между основными слоями Фейстеля. Этот структурный элемент отсутствует в AES.

Ключевые особенности

  • Размер блока 128 бит при поддержке ключей 128/192/256 бит — идентичная AES ширина блока, обеспечивающая побайтовую совместимость режимов в TLS и IPsec
  • 18 раундов для 128-битных ключей; 24 раунда для 192/256 бит — организованы в группы по шесть раундов с прослойками FL/FL⁻¹ между каждой группой
  • Функции FL/FL⁻¹, уникальные для Camellia: применяют зависимые от ключа операции AND/OR/вращение между группами раундов, резко усиливая рассеивание ключевого материала
  • Тройная сертификация: международный стандарт ISO/IEC 18033-3, европейский проект NESSIE, японская государственная рекомендация CRYPTREC — единственный не-AES шифр, получивший все три
  • Без патентов с 2017 года; уже интегрирован в OpenSSL, GnuTLS, NSS (Firefox), LibreSSL и Bouncy Castle для TLS и VPN
  • Без патентов с 2017 года; уже интегрирован в OpenSSL, GnuTLS, NSS (Firefox), LibreSSL и Bouncy Castle для TLS и VPN

Режимы шифрования

Режимы шифрования

ECB: Электронная кодовая книга — каждый 128-битный блок независимо проходит через все 18 (или 24) раунда Camellia, включая слои перемешивания ключа FL/FL⁻¹. Поскольку одинаковые блоки открытого текста всегда дают одинаковый шифртекст, паттерны повторений становятся видимыми — допустимо только для шифрования единственного блока по-настоящему случайных данных.
CBC: Цепочка зашифрованных блоков — каждый 128-битный блок Camellia XOR-ируется с предыдущим шифртекстом до начала 18/24 раундов Фейстеля и преобразований FL/FL⁻¹. Ширина блока Camellia в 128 бит совпадает с AES-CBC, обеспечивая прямую замену в TLS cipher-suite (RFC 5932) — для 16-байтно выровненных данных достаточно стандартного дополнения PKCS#7.
CFB: Обратная связь по шифртексту — полная функция 18/24 раундов Camellia (слои FL включены) обрабатывает предыдущий блок шифртекста и XOR-ирует вывод со следующим сегментом открытого текста. Формирует самосинхронизирующийся потоковый шифр, подходящий для потоковых протоколов с гранулярностью на уровне байта.
OFB: Обратная связь по выходу — функция раунда Camellia итеративно повторно шифрует IV для генерации зависящего от ключа потока ключей, независимо от открытого текста. Ошибки влияют только на соответствующий байт вывода без каскадирования — идеально для каналов с потерями, где аппаратно-эффективная структура Camellia обеспечивает преимущества по пропускной способности.

Сравнение алгоритмов

Алгоритм Размер блока Длина ключа Безопасность Стандарт Стандарт
Camellia128 bit128/192/25618/24ОтличноISO/NESSIE/CRYPTREC
AES128 bit128/192/25610/12/14ХорошоNIST
Twofish128 bit128/192/25616ОтличноAES Finalist
DES64 bit5616ОтличноСлабо

Рекомендации по безопасности

  • Лучшая опубликованная атака на Camellia-128 достигает 12 из 18 раундов (дифференциальный криптоанализ со связанными ключами); практической атаки на полную версию не существует, что обеспечивает запас безопасности в шесть раундов над текущей криптоаналитической границей
  • Функции FL/FL⁻¹ между группами из 6 раундов вносят зависимые от ключа побитовые перестановки, нарушающие дифференциальные и линейные пути на границах раундов — структурный механизм, делающий атаки со связанными ключами значительно сложнее, чем в чистых SPN-шифрах типа AES
  • Независимые оценки NESSIE (2003) и CRYPTREC подтвердили устойчивость Camellia ко всем известным семействам атак: дифференциальному, линейному, невозможно-дифференциальному, дифференциальному высшего порядка и усечённо-дифференциальному криптоанализу — тем же критериям, что использовались при проверке AES
  • Размер блока 128 бит в Camellia устраняет проблему парадокса дней рождения, актуальную для 64-битных шифров (DES, 3DES, Blowfish): порог коллизий наступает при 2⁶⁴ блоках (~147 петабайт на ключ), полностью выводя атаки типа Sweet32 за пределы практической досягаемости
  • Размер блока 128 бит в Camellia устраняет проблему парадокса дней рождения, актуальную для 64-битных шифров (DES, 3DES, Blowfish): порог коллизий наступает при 2⁶⁴ блоках (~147 петабайт на ключ), полностью выводя атаки типа Sweet32 за пределы практической досягаемости

Варианты использования

Наборы шифров TLS/SSL: Camellia развёрнут в TLS 1.2 как TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (RFC 5932) и TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 (RFC 6367) — активно используется в японских финансовых системах и государственных сервисах
IPsec VPN: RFC 4312 определяет Camellia для IKEv1/v2 и ESP, предоставляя альтернативу AES для развёртываний, требующих алгоритмов, соответствующих CRYPTREC, в японских государственных сетях
Шифрование электронной почты и файлов OpenPGP: RFC 5581 добавил Camellia-128/192/256 в OpenPGP как опциональные симметричные алгоритмы, давая альтернативу AES для пользователей, которым требуются сертифицированные NESSIE шифры
Японские государственные и финансовые системы: статус CRYPTREC делает Camellia обязательным или настоятельно рекомендуемым для систем электронного правительства и банковской инфраструктуры Японии
Аппаратные модули безопасности и встраиваемая криптография: структура Фейстеля в Camellia эффективно отображается на FPGA и ASIC, позволяя одновременно выполнять шифрование и расчёт расписания ключей
Аппаратные модули безопасности и встраиваемая криптография: структура Фейстеля в Camellia эффективно отображается на FPGA и ASIC, позволяя одновременно выполнять шифрование и расчёт расписания ключей

Ссылки

Связанные инструменты

Быстрое меню

Нет недавних инструментов