Введение

Шифр блочный, основанный на сети Фейстеля. В криптографии Камелия — это симметричный блочный шифр с размером блока 128 бит и размерами ключа 128, 192 и 256 бит. Он был разработан совместно компаниями Mitsubishi Electric и NTT из Японии. Шифр одобрен для использования организациями ISO/IEC, проектом NESSIE Европейского Союза и японским проектом CRYPTREC. Шифр обладает уровнями безопасности и вычислительными возможностями, сопоставимыми со стандартом Advanced Encryption Standard. Шифр был разработан для применения как в программных, так и в аппаратных реализациях, от недорогих смарт-карт до высокоскоростных сетевых систем. Он является частью криптографического протокола Transport Layer Security (TLS), предназначенного для обеспечения безопасности связи в компьютерных сетях, таких как Интернет. Шифр получил свое название в честь цветка камелии японской (Camellia japonica), известного своей долговечностью, а также в связи с тем, что шифр был разработан в Японии.

Дизайн

Камелия — шифр Фейстеля с 18 раундами (при использовании 128-битных ключей) или 24 раундами (при использовании 192- или 256-битных ключей). Каждые шесть раундов применяется слой логического преобразования, известный как "FL-функция" или её обратная. Камелия использует четыре 8×8-битные S-блоки с входными и выходными аффинными преобразованиями и логическими операциями. Шифр также использует отбеливание ключа на входе и выходе. Слой диффузии использует линейное преобразование, основанное на матрице с числом ветвления 5.

Анализ безопасности

Камелия считается современным, безопасным шифром. Даже при использовании варианта с меньшим размером ключа (128 бит) взлом методом полного перебора ключей с использованием современных технологий считается невозможным. Нет известных успешных атак, которые существенно ослабляли бы данный шифр. Шифр был одобрен для использования организациями ISO/IEC, проектом NESSIE Европейского Союза и японским проектом CRYPTREC. Японский шифр обладает уровнями безопасности и вычислительными возможностями, сопоставимыми с шифром AES/Rijndael. S-блоки Camellia (а также AES) могут быть описаны системой из 23 квадратных уравнений, содержащих 80 слагаемых. Расписание ключей может быть описано уравнениями, использующими 768 переменных и линейные и квадратные члены. Это позволило включить шифр Камелия в проект OpenSSL под лицензией с открытым исходным кодом, начиная с ноября 2006 года. Это также позволило включить его в модуль NSS (Network Security Services) Mozilla. (Отключен по умолчанию, начиная с Firefox 33 в 2014 году, в соответствии с "Предложением об изменении набора TLS-шифронаборов, предлагаемых браузерами", и исключен из версии 37 в 2015 году). Pale Moon, форк Mozilla/Firefox, продолжает предлагать Camellia и расширил поддержку, включив наборы Galois/Counter mode (GCM) с использованием данного шифра, но вновь удалил режимы GCM в версии 27.2.0, ссылаясь на явный недостаток интереса к ним. Позднее, в 2008 году, команда разработки FreeBSD объявила о включении шифра в FreeBSD 6.4 RELEASE. Кроме того, поддержка шифра Camellia была добавлена в класс хранения для шифрования дисков geli в FreeBSD Йошисато Янагисавой. В сентябре 2009 года GNU Privacy Guard добавила поддержку Camellia в версии 1.4.10. VeraCrypt (форк TrueCrypt) включает Camellia в число поддерживаемых алгоритмов шифрования. Кроме того, различные популярные библиотеки безопасности, такие как Crypto++, GnuTLS, mbed TLS и OpenSSL, также поддерживают Camellia. Компании Thales и Bloombase поддерживают шифрование Camellia в своих решениях по криптографии данных. 26 марта 2013 года было объявлено, что Camellia вновь была выбрана для включения в новый список рекомендованных шифров для электронного правительства Японии, как единственный 128-битный блочный шифр, разработанный в Японии. Это совпало с первым за 10 лет обновлением списка CRYPTREC. Выбор был обусловлен высокой репутацией Camellia в отношении простоты приобретения, а также характеристиками безопасности и производительности, сопоставимыми с Advanced Encryption Standard (AES). Camellia остается невзломанной в полной реализации. Существует невозможная дифференциальная атака на Camellia, состоящую из 12 раундов, без слоев FL/FL−1.

Выступление

S-блоки, используемые в Camellia, имеют структуру, схожую со S-блоком AES. Следовательно, возможно ускорить программные реализации Camellia, используя наборы инструкций CPU, разработанные для AES, такие как x86 AES NI или x86 GFNI, посредством аффинного изоморфизма.