Camellia

カメリア (Camellia) 



カメリアは、2000年にNTTと三菱電機が共同で開発したブロック暗号であり、その名はツバキ(Camellia属)に由来しています。この暗号は、128ビットのブロック長を持ち、鍵長としてはAESと同様に128ビット、192ビット、256ビットを選択することが可能です。カメリアは、Feistel構造を採用しており、ハードウェアにおいて低消費電力で高速な暗号化と復号ができる点が大きな特長です。

構造



カメリアの入出力インターフェイスはAES互換であり、ブロック長は固定で128ビットです。また、鍵長は128、192、256ビットの3種類があります。この暗号は、AESが採用しているSPN構造とは異なり、DESと同じFeistel構造を用いて設計されています。鍵長が128ビットの場合には18ラウンド、192ビットまたは256ビットの場合には24ラウンドの処理が行われます。たびたび全単射関数FLとその逆関数FL-1が挿入され、最初と最後にはホワイトニングが使われています。

各ラウンド関数は、8ビット単位で処理が行われ、拡大鍵との排他的論理和(XOR)を行った後、Sボックスを用いた8ビット入力から8ビット出力を生成します。Sボックスは4種類あり、それにより多様な処理を実現しています。鍵のスケジューリングは、2段のラウンド関数で行われ、暗号化されて生成された中間鍵の一部を使って拡大鍵が作成されます。これにより、暗号化と復号の処理が統一され、ラウンド関数で使用される拡大鍵の順番のみに焦点を当てて設計されています。

安全性



カメリアは、解読に必要なラウンド数と最低限の安全性を維持するラウンド数に基づいたセキュリティーマージンにおいて、AESを上回る1.8~2.0を確保しています。このため、CRYPTRECおよびNESSIEでもAESと同等の安全性と効率性が評価されています。

性能



実装報告によると、一般的なパソコンのCPUを使用した場合、カメリアは1 Gbps、専門のLSIを用いる場合には2 Gbpsを超えるスループットを達成しています。また、組込み機器で使われるような8ビットCPUでも、広範なメモリ消費を引き起こすことなく、ハードウェア実装することで暗号化や復号の処理が行えます。この場合、10,000ゲート以下でも実装可能であることが確認されています。

ソフトウェア実装



特に組込み機器でのパフォーマンスは興味深く、8ビットCPUでの実行時間は次のように報告されています:
  • - Z80 (5 MHz): 暗号化 7.19 msec / 復号 7.51 msec
  • - 8051 (12 MHz): 暗号化・復号 10.22 msec
このように、パソコン等の32ビットまたは64ビットCPUでも高い性能を示し、1,134.6 Mbpsや1,158.8 Mbpsを達成しています。

歴史



カメリアの公開は2000年3月に行われ、その後2001年には基本特許の無償化が宣言されました。2003年には日本の暗号評価プロジェクトであるCRYPTREC及び欧州のNESSIEにおいて、推奨暗号として認定されました。さらに、2005年には国際標準規格に採用され、2006年にはオープンソースとして公開されるなど、多くの進展がありました。

標準化



カメリアは、NESSIECRYPTRECの「電子政府推奨暗号リスト」など、さまざまな標準化団体に採用されています。特に、IETFやISO/IECなどの標準化基準にも則しており、SRMやCMS等でもその利用が進められています。

以上のように、カメリアは安全性、速度、効率性を兼ね備えた重要な暗号アルゴリズムであり、さまざまな分野で利用されています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。