Camellia

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
Camellia
一般
設計者 三菱電機, NTT
初版発行日 2000
派生元 E2, MISTY1
認証 CRYPTREC, NESSIE
暗号詳細
鍵長 128, 192 or 256 bits
ブロック長 128 bits
構造 Feistel構造
ラウンド数 18 or 24

Camellia(カメリア)とは、2000年NTT三菱電機により共同開発されたブロック暗号である。名称の由来は植物のツバキツバキ属Camellia)。

概要[編集]

CamelliaはFeistel構造を採用したブロック長128ビットブロック暗号で、鍵長としてAESと同じ128ビット、192ビット、256ビットの3つを選択できる。 また、CamelliaはAESと同等の安全性を保ちつつハードウェアでの低消費電力で高速な暗号化復号に優れている。

標準化[編集]

Camelliaは、欧州のNESSIEプロジェクトや日本のCRYPTRECが作成した「電子政府推奨暗号リスト」に採用されている。

また、TLS/SSLIPsecをはじめとして、IETFISO/IECなど多くの標準化団体に採用されている。主な標準化実績は以下の通りである[1]

  • CRYPTREC
  • NESSIE
  • 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
  • ISO/IEC
  • ITU-T
    • security mechanisms and procedures for NGN (Y.2704)
  • RSA Laboratories
  • TV-Anytime Forum
    • approved cipher in TV-Anytime Rights Management and Protection Information for Broadcast Applications
    • approved cipher in Bi-directional Metadata Delivery Protection

構造[編集]

Camelliaの入出力インタフェースAES互換で、ブロック長は128ビット固定、鍵長は128 / 192 / 256ビットの3つを選択できる。

全体構造は、AESではSPN構造が採用されたのと違い、DESと同じFeistel構造を採用している。ラウンド段数は、鍵長が128ビットのときは18段、192ビット, 256ビットのときは24段で、6段毎に「副変換部」と呼ばれる全単射関数 FL と FL-1 が挿入されている。また、最初と最後に whitening (拡大鍵との排他的論理和)が設けられている。

ラウンド関数はバイト(8ビット)を単位とした処理になっていて、拡大鍵との排他的論理和の後、8ビット入力-8ビット出力のSボックス(4種類ある)と、FEALにも似た阿弥陀籤型のP関数によって構成される。Sボックスは4種類あるが、テーブル1つと、入出力のビットシフト等の組合せで実装することもできる。

鍵スケジューラは、ラウンド関数2段で、鍵を"暗号化"して中間鍵を生成し、中間鍵の一部分を取り出すことで拡大鍵を作り出す。具体的には中間鍵をラウンド毎に定義された分だけシフトして、右64ビット(または左64ビット)を取り出す。CamelliaはFeistel構造を採用して、暗号化と復号の違いはラウンド関数等で使用される拡大鍵の順番のみになるように設計されている。そこで鍵スケジューラは、拡大鍵を1番目から順番に求めることも、最後から逆順に求めることも、どちらも同様な手間で実現できるように設計されている。

性能[編集]

開発者や第三者による実装報告によると、パソコンで使用されている汎用CPUでは1Gbps、専用LSIでは2Gbpsを超えるスループットがある。

一方、組込み機器で使用される8ビットCPUなどの処理能力が低いプロセッサでも、極端なメモリサイズ増加は生じず、ハードウェア実装した場合には、暗号化と復号や鍵スケジューラで回路を共用できるため10000ゲート以下でも実装可能であることが確認されている。

ソフトウェア実装[編集]

  • 組込み機器等での性能(8bit CPU)
    • 7.19 msec(ENC) / 7.51 msec(DEC) - Z80(5MHz), ROM 1,268byte, RAM 60byte (NTT)
    • 5.68 msec(ENC) / 1.03 msec(KeyGen) - Z80(), ROM 1,698byte, RAM 63byte (NTT)
    • 10.22 msec(ENC/DEC) - 8051(12MHz), ROM 990byte, RAM 32byte (1st NESSIE Workshop)
  • パソコンなどでの性能(32/64bit CPU)
    • 1,134.6 Mbps - Intel Pentium 4(3.2GHz), Windows XP SP2, 鍵長128ビット (Oda,et.al, SCIS 2006)
    • 1,158.8 Mbps - AMD Athlon 64 3500+ Winchester(2.2GHz), Windows XP 64bit edition, ビットスライス実装, 鍵長128ビット (Fukuda,et.al, SCIS 2006)

ハードウェア実装[編集]

  • ASIC
    • 325.76 Mbps - IBM 0.13μm, 6,511unit, Loop arch, 鍵長128ビット(Satoh,et.al, ISC 2003)
    • 2,154.88 Mbps - IBM 0.13μm, 29,809unit, Loop arch, 鍵長128ビット(Satoh,et.al, ISC 2003)
  • FPGA
    • 128.58 Mbps - Xilinx VirtexE, 908 Slice, Loop arch, 鍵長128ビット(Satoh,et.al, ISC 2003)
    • 393.24 Mbps - Xilinx VirtexE, 2,833 Slice, Loop arch, 鍵長128ビット(Satoh,et.al, ISC 2003)

安全性[編集]

Camelliaは解読可能なラウンド数と最低限安全性を保てるラウンド数を元にした指標であるセキュリティーマージンにてAESを上回る1.8~2.0を確保している[2]。 これに加え、CamelliaはCRYPTRECおよびNESSIEにおいてAESと同等の安全性と効率を兼ね備えているという評価もされている。

歴史[編集]

  • 2000年3月10日 Camelliaの公開:NTTと三菱電機による共同開発がニュースリリースされる。
  • 2001年4月17日 Camelliaの基本特許の無償化が宣言される。
  • 2003年2月20日 日本の暗号評価プロジェクトCRYPTRECによる電子政府推奨暗号リストに Camellia も推奨される。
  • 2003年2月27日 欧州の暗号評価プロジェクトNESSIEにて、128ビットブロック暗号として、AESと共に Camellia も選定される。
  • 2005年7月15日 国際標準規格ISO/IEC 18033 Part3 の128ビットブロック暗号に、他の2つの暗号(AES、SEED)と共に Camellia も採用される。(5月27日にニュースリリース)
  • 2005年7月20日 SSL/TLS、S/MIME、XMLなどの標準規格で、暗号方式として Camellia が追加される。
  • 2006年4月13日 Camelliaのオープンソースが公開される。
  • 2006年11月8日 OpenSSLにCamelliaが追加される。
  • 2007年6月7日 FreeBSD ProjectがCamelliaへの対応を発表する。
  • 2008年6月17日 ウェブブラウザとして初採用したMozilla Firefox 3がリリースされた。
  • 2013年3月1日 CRYPTRECによって改訂された電子政府推奨暗号リストに、日本初のブロック暗号として唯一 Camellia が推奨される。

脚注[編集]

[ヘルプ]
  1. ^ Camellia 標準化情報等”. 2013年11月30日閲覧。
  2. ^ Camelliaユーザーズガイド

関連項目[編集]

外部リンク[編集]

  • Camellia公式サイト
  • リファレンスコード
  • RFC 3657 Use of the Camellia Encryption Algorithm in Cryptographic Message Syntax (CMS)
  • RFC 3713 A Description of the Camellia Encryption Algorithm
  • RFC 4051 Additional XML Security Uniform Resource Identifiers (URIs)
  • RFC 4132 Addition of Camellia Cipher Suites to Transport Layer Security (TLS)
  • RFC 4312 The Camellia Cipher Algorithm and Its Use With IPsec
  • RFC 5528 Camellia Counter Mode and Camellia Counter with CBC-MAC Mode Algorithms
  • RFC 5529 Modes of Operation for Camellia for Use with IPsec
  • RFC 5581 Certification of Camellia Cipher as IETF standard for OpenPGP
  • RFC 5932 Camellia Cipher Suites for TLS
  • RFC 5990 Use of the RSA-KEM Key Transport Algorithm in the Cryptographic Message Syntax (CMS)
  • RFC 6030 Portable Symmetric Key Container (PSKC)
  • RFC 6272 Internet Protocols for the Smart Grid
  • RFC 6367 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