Введение
Шифр блочный, основанный на сети Фейстеля. В криптографии Камелия — это симметричный блочный шифр с размером блока 128 бит и размерами ключа 128, 192 и 256 бит. Он был разработан совместно компаниями Mitsubishi Electric и NTT из Японии. Шифр одобрен для использования организациями ISO/IEC, проектом NESSIE Европейского Союза и японским проектом CRYPTREC. Шифр обладает уровнями безопасности и вычислительными возможностями, сопоставимыми со стандартом Advanced Encryption Standard. Шифр был разработан для применения как в программных, так и в аппаратных реализациях, от недорогих смарт-карт до высокоскоростных сетевых систем. Он является частью криптографического протокола Transport Layer Security (TLS), предназначенного для обеспечения безопасности связи в компьютерных сетях, таких как Интернет. Шифр получил свое название в честь цветка камелии японской (Camellia japonica), известного своей долговечностью, а также в связи с тем, что шифр был разработан в Японии.
In cryptography, Camellia is a symmetric key block cipher with a block size of 128 bits and key sizes of 128, 192 and 256 bits. It was jointly developed by Mitsubishi Electric and NTT of Japan. The cipher has been approved for use by the ISO/IEC, the European Union's NESSIE project and the Japanese CRYPTREC project. The cipher has security levels and processing abilities comparable to the Advanced Encryption Standard. The cipher was designed to be suitable for both software and hardware implementations, from low cost smart cards to high speed network systems. It is part of the Transport Layer Security (TLS) cryptographic protocol designed to provide communications security over a computer network such as the Internet. The cipher was named for the flower Camellia japonica, which is known for being long lived as well as because the cipher was developed in Japan.
Дизайн
Камелия — шифр Фейстеля с 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, посредством аффинного изоморфизма.