Camellia
ASIC 325.76 Mbps - IBM 0.13 μm, 6,511 unit, Loop arch, 鍵長128ビット (Satoh, et al., ISC 2003) 2,154.88 Mbps - IBM 0.13 μm, 29,809 unit, Loop arch, 鍵長128ビット (Satoh, et al., ISC 2003)
FPGA 128.58 Mbps - Xilinx Virtex-E, 908 Slice, Loop arch, 鍵長128ビット (Satoh, et al., ISC 2003) 393.24 Mbps - Xilinx Virtex-E, 2,833 Slice, Loop arch, 鍵長128ビット (Satoh, et al., ISC 2003)
組込み機器等での性能(8ビットCPU) 7.19 msec (ENC) / 7.51 msec (DEC) - Z80 (5 MHz), ROM 1,268バイト, RAM 60バイト (NTT) 5.68 msec (ENC) / 1.03 msec (KeyGen) - Z80 (), ROM 1,698バイト, RAM 63バイト (NTT) 10.22 msec (ENC/DEC) - 8051 (12 MHz), ROM 990バイト, RAM 32バイト (1st NESSIE Workshop)
パソコンなどでの性能(32/64ビットCPU) 1,134.6 Mbps - Intel Pentium 4 (3.2 GHz), Windows XP SP2, 鍵長128ビット (Oda, et al., SCIS 2006) 1,158.8 Mbps - AMD Athlon 64 3500+ Winchester (2.2 GHz), Windows XP 64-Bit Edition, ビットスライス実装, 鍵長128ビット (Fukuda, et al., SCIS 2006)
IETF アルゴリズム RFC 3713: A Description of the Camellia Encryption Algorithm RFC 5528: Camellia Counter Mode and Camellia Counter with CBC-MAC Mode Algorithms S/MIME RFC 3657: Use of the Camellia Encryption Algorithm in Cryptographic Message Syntax (CMS) XML暗号化 RFC 4051: Additional XML Security Uniform Resource Identifiers (URIs) TLS/SSL RFC 4132: Addition of Camellia Cipher Suites to Transport Layer Security (TLS) RFC 5932: Camellia Cipher Suites for TLS RFC 6367: Addition of the Camellia Cipher Suites to Transport Layer Security (TLS) IPsec RFC 4312: The Camellia Cipher Algorithm and Its Use With IPsec RFC 5529: Modes of Operation for Camellia for Use with IPsec OpenPGP RFC 5581: The Camellia Cipher in OpenPGP RSA-KEM in CMS RFC 5990: Use of the RSA-KEM Key Transport Algorithm in the Cryptographic Message Syntax (CMS) PSKC RFC 6030: Portable Symmetric Key Container (PSKC) スマートグリッド RFC 6272: Internet Protocols for the Smart Grid
Camelliaの入出力インタフェースはAES互換で、ブロック長は128ビット固定、鍵長は128 / 192 / 256ビットの3つを選択できる。
全体構造は、AESではSPN構造が採用されたのと違い、DESと同じFeistel構造を採用している。ラウンド段数は、鍵長が128ビットのときは18段、192ビット・256ビットのときは24段で、6段毎に「副変換部」と呼ばれる全単射関数FLとFL-1が挿入されている。また、最初と最後にホワイトニング(拡大鍵との排他的論理和)が設けられている。
ラウンド関数はバイト(8ビット)を単位とした処理になっていて、拡大鍵との排他的論理和の後、8ビット入力-8ビット出力のSボックス(4種類ある)と、FEALにも似たあみだくじ型のP関数によって構成される。Sボックスは4種類あるが、テーブル1つと、入出力のビットシフト等の組合せで実装することもできる。
鍵スケジューラは、ラウンド関数2段で、鍵を"暗号化"して中間鍵を生成し、中間鍵の一部分を取り出すことで拡大鍵を作り出す。具体的には中間鍵をラウンド毎に定義された分だけシフトして、右64ビット(または左64ビット)を取り出す。CamelliaはFeistel構造を採用して、暗号化と復号の違いはラウンド関数等で使用される拡大鍵の順番のみになるように設計されている。そこで鍵スケジューラは、拡大鍵を1番目から順番に求めることも、最後から逆順に求めることも、それぞれ、どちらも同様な手間で実現できるように設計されている。