SONY

The 128-bit Blockcipher

CLEFIAの実装性能

CLEFIAは安全性のみならず実装性能を重視して設計された128ビットブロック暗号です。まず初めに具体的な数値を見ながらCLEFIAの優れた性能を紹介いたします。

表1はハードウェア実装を行った際の性能を表したものです。表中のデータは0.09μmCMOS標準セルライブラリを用いた場合の数値です。

表1 : CLEFIA のハードウェア実装性能
鍵長
(bits)
暗/復号
(cycles)
鍵セットアップ
(cycles)
最適化
オプション
面積
(gates)
クロック周波数
(MHz)
速度
(Mbps)
速度/面積
(Kbps/gate)
128 18 12 area 5,979 225.83 1,605.94 268.63
speed 12,009 422.29 3,003.00 250.06
36 24 area 4,950 201.28 715.69 144.59
speed 9,377 389.55 1,385.10 147.71
192 22 20 area 8,536 206.56 1,201.85 140.81
256 26 20 area 8,482 206.56 1,016.95 119.89

この表から分かるように128ビット鍵での暗号化関数を36サイクルで実行させた場合、ハードウェアの実装規模が5,000 gate 以下で構成することが可能であり、このときのスループットは700Mbps以上を達成しています。このように、CLEFIAはあまり多くの回路を利用できないようなリソースの限られた環境でも十分な高速性を発揮することが可能となっています。

さらに、より高速性を追求した実装では、単位ゲート数あたりの処理速度で見ると極めて高い値が得られており、CLEFIAが高い処理効率性を持つことがお分かりいただけると思います。

表2は128ビット鍵CLEFIAの小型実装を行った際の性能を表したものです。表中のデータは0.13μmCMOS標準セルライブラリを用いた場合の数値です。

表2 : 128ビット鍵CLEFIA の小型ハードウェア実装性能
鍵長
(bits)
モード 暗/復号
(cycles)
鍵セットアップ
(cycles)
面積
(gates)
速度@100KHz
(Kbps)
128 Enc 176 128 2,678 73
Enc/Dec 176 128 2,781 73
Enc 328 224 2,488 39
Enc/Dec 328/320 224 2,604 39/40

128ビット鍵での暗号化関数を176サイクルで実行させた場合には、ハードウェアの実装規模が3,000 gate 以下で、328サイクルで実行させた場合には2,500 gate 以下で構成することが可能となり、さらなる小型化を達成しています。

表3はソフトウェア実装を行った際の性能を表したものです。なお表中のデータはアセンブリ言語で実装したコードをAMD Athlon 64TMプロセッサ4000+ を使用し、Windows XP 64-bit Edition上で動作させた場合の数値です。

表3 : CLEFIA のソフトウェア実装性能
実装
タイプ
鍵長
(bits)
暗号化関数
(cycles/byte)
復号関数
(cycles/byte)
鍵セットアップ
(cycles)
テーブルサイズ
(KB)
1ブロック 128 12.9 13.3 217 8
192 15.8 16.2 272
256 18.3 18.4 328
2ブロック
並列
128 11.1 11.1 217 16
192 13.3 13.3 272
256 15.6 15.6 328

128ビット鍵での暗号化の際には、1バイトあたりのサイクル数が12.9となっており、このときのスループットは1.48Gbpsを達成しています。この速度は、現在知られている128ビットブロック暗号の中でも最高速度レベルを実現しています。

ここで紹介したCPUのみならず、CLEFIAはソフトウェア実装において幅広い環境で優れた性能を発揮することができるデザインとなっており、異なるプラットフォームにおいても十分な高速性を実現していることを確認しています。

以上のようにCLEFIAが安全性を損なわず、コンパクト性と高速性を同時に達成できたのはいくつかの新しい設計技術を導入しているためです。次のページでは、これらの新しい設計技術のポイントをいくつかご紹介いたします。