Camellia (cipher)
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.

Design 
Camellia is a Feistel cipher with either 18 rounds (when using 128-bit keys) or 24 rounds (when using 192- or 256-bit keys). Every six rounds, a logical transformation layer is applied: the so-called "FL-function" or its inverse. Camellia uses four 8×8-bit S-boxes with input and output affine transformations and logical operations. The cipher also uses input and output key whitening. The diffusion layer uses a linear transformation based on a matrix with a branch number of 5.

Security analysis 
Camellia is considered a modern, safe cipher. Even using the smaller key size option (128 bits), it's considered infeasible to break it by brute-force attack on the keys with current technology. There are no known successful attacks that weaken the cipher considerably. The cipher has been approved for use by the ISO/IEC, the European Union's NESSIE project and the Japanese CRYPTREC project. The Japanese cipher has security levels and processing abilities comparable to the AES/Rijndael cipher.

Camellia is a block cipher which can be completely defined by minimal systems of multivariate polynomials:
 The Camellia (as well as AES) S-boxes can be described by a system of 23 quadratic equations in 80 terms.
 The key schedule can be described by  equations in 768 variables using  linear and quadratic terms.
 The entire block cipher can be described by  equations in  variables using  linear and quadratic terms.
 In total,  equations in  variables using  linear and quadratic terms are required.
 The number of free terms is , which is approximately the same number as for AES.
Theoretically, such properties might make it possible to break Camellia (and AES) using an algebraic attack, such as extended sparse linearisation, in the future, provided that the attack becomes feasible.

Patent status 
Although Camellia is patented, it is available under a royalty-free license.  This has allowed the Camellia cipher to become part of the OpenSSL Project, under an open-source license, since November 2006. It has also allowed it to become part of the Mozilla's NSS (Network Security Services) module.

Adoption 
Support for Camellia was added to the final release of Mozilla Firefox 3 in 2008 (disabled by default as of Firefox 33 in 2014 in spirit of the "Proposal to Change the Default TLS Ciphersuites Offered by Browsers", and has been dropped from version 37 in 2015). Pale Moon, a fork of Mozilla/Firefox, continues to offer Camellia and had extended its support to include Galois/Counter mode (GCM) suites with the cipher, but has removed the GCM modes again with release 27.2.0, citing the apparent lack of interest in them.

Later in 2008, the FreeBSD Release Engineering Team announced that the cipher had also been included in the FreeBSD 6.4-RELEASE. Also, support for the Camellia cipher was added to the disk encryption storage class geli of FreeBSD by Yoshisato Yanagisawa.

In September 2009, GNU Privacy Guard added support for Camellia in version 1.4.10.

VeraCrypt (a fork of TrueCrypt) included Camellia as one of its supported encryption algorithms.

Moreover, various popular security libraries, such as Crypto++, GnuTLS, mbed TLS and OpenSSL also include support for Camellia.

On March 26, 2013, Camellia was announced as having been selected again for adoption in Japan's new e-Government Recommended Ciphers List as the only 128-bit block cipher encryption algorithm developed in Japan. This coincides with the CRYPTREC list being updated for the first time in 10 years. The selection was based on Camellia's high reputation for ease of procurement, and security and performance features comparable to those of the Advanced Encryption Standard (AES). Camellia remains unbroken in its full implementation. An impossible differential attack on 12-round Camellia without FL/FL−1 layers does exist.

Performance 
The S-boxes used by Camellia share a similar structure to AES's S-box. As a result, it is possible to accelerate Camellia software implementations using CPU instruction sets designed for AES, such as x86 AES-NI, by affine isomorphism.

Standardization 
Camellia has been certified as a standard cipher by several standardization organizations:
 CRYPTREC
 NESSIE
 IETF
 Algorithm
 : A Description of the Camellia Encryption Algorithm
Block cipher mode
 : Camellia Counter Mode and Camellia Counter with CBC-MAC Mode Algorithms
 S/MIME 
 : Use of the Camellia Encryption Algorithm in Cryptographic Message Syntax (CMS)
 XML Encryption
 : Additional XML Security Uniform Resource Identifiers (URIs)
 TLS/SSL
 : Addition of Camellia Cipher Suites to Transport Layer Security (TLS)
 : Camellia Cipher Suites for TLS
 : Addition of the Camellia Cipher Suites to Transport Layer Security (TLS)
 IPsec
 : The Camellia Cipher Algorithm and Its Use With IPsec
 : Modes of Operation for Camellia for Use with IPsec
 Kerberos
 : Camellia Encryption for Kerberos 5
 OpenPGP
 : The Camellia Cipher in OpenPGP
 RSA-KEM in CMS
 : Use of the RSA-KEM Key Transport Algorithm in the Cryptographic Message Syntax (CMS)
  PSKC
 : Portable Symmetric Key Container (PSKC)
 Smart grid
 : Internet Protocols for the Smart Grid
 ISO/IEC
 ISO/IEC 18033-3:2010 Information technology—Security techniques—Encryption algorithms—Part 3: Block ciphers
 ITU-T
 Security mechanisms and procedures for NGN (Y.2704)
 RSA Laboratories
 Approved cipher in the PKCS#11
 TV-Anytime Forum
 Approved cipher in TV-Anytime Rights Management and Protection Information for Broadcast Applications
 Approved cipher in Bi-directional Metadata Delivery Protection

References 

General

External links
 Camellia's English home page by NTT
 256 bit ciphers – CAMELLIA reference implementation and derived code
  Use of the Camellia Encryption Algorithm in Cryptographic Message Syntax (CMS)
  A Description of the Camellia Encryption Algorithm
  Additional XML Security Uniform Resource Identifiers (URIs)
  Addition of Camellia Cipher Suites to Transport Layer Security (TLS)
  The Camellia Cipher Algorithm and Its Use With IPsec
  Camellia Counter Mode and Camellia Counter with CBC-MAC Mode Algorithms
  Modes of Operation for Camellia for Use with IPsec
  Certification of Camellia Cipher as IETF standard for OpenPGP
  Camellia Cipher Suites for TLS
  Use of the RSA-KEM Key Transport Algorithm in the Cryptographic Message Syntax (CMS)
  Portable Symmetric Key Container (PSKC)
  Internet Protocols for the Smart Grid
  Addition of the Camellia Cipher Suites to Transport Layer Security (TLS)
 ISO/IEC 18033-3:2010 Information technology—Security techniques—Encryption algorithms—Part 3: Block ciphers

Feistel ciphers
Mitsubishi Electric products, services and standards
2000 introductions