論文原稿

All rights are reserved and copyright of this manuscript belongs to the authors.
This manuscript has been published without reviewing and editing as received
from the authors: posting the manuscript to SCIS 2011 does not prevent future
submissions to any journals or conferences with proceedings.
SCIS 2011
The 2011 Symposium on
Cryptography and Information Security
Kokura, Japan, Jan. 25-28, 2011
The Institute of Electronics,
Information and Communication Engineers
128 ビットブロック暗号 CLEFIA の小型ハードウェア実装評価
Compact Hardware Implementations of the 128-bit Blockcipher
CLEFIA
秋下 徹 ∗
Toru Akishita
樋渡 玄良 ∗
Harunaga Hiwatari
あらまし 128 ビットブロック暗号 CLEFIA は高いハードウェア実装効率を持ったブロック暗号であ
ることが知られている.本稿では, CLEFIA のハードウェア実装の更なる小型化を目指して, 128 ビット
鍵の CLEFIA に対して 8 ビット・シリアルアーキテクチャに基づいた実装を行ない, 0.13 µm CMOS 標
準セルライブラリを用いてその実装性能を評価した.その結果, 暗号化実装において 2.9 kGE 以下, 暗復
号実装において 3.0 kGE 以下というゲート規模の評価が得られた.これらの数値は AES の最小実装を
下回る数値であり, CLEFIA のハードウェア実装における小型実装性能を示している.
キーワード ブロック暗号, CLEFIA, ハードウェア実装
1
スタ による 8 ビット・シリアルアーキテクチャの設計
はじめに
を行なった.CLEFIA では, AES で行列演算を行う際に
CLEFIA [4, 5] はブロック長 128 ビット, 鍵長 128,
192, 256 ビットに対応した, AES [1] と入出力仕様の互
換性を持つブロック暗号である.CLEFIA には最新の研
究成果や設計手法が盛り込まれており, 既存の攻撃法に
対して十分な安全性を有しつつ, ハードウェア・ソフト
ウェアを問わず効率的な実装が可能である.特に, ハー
ドウェア実装については顕著な性能を発揮していること
が, 数値データにより示されている [6, 7, 8].
ブロック長分のレジスタとは別に追加される 24 ビット
分のレジスタが不要となることを示す.また, 復号処理
の場合に偶数ラウンド目の F 関数 F0 と F1 の処理順を
入れ替えることにより, 暗号化実装のデータパスをほと
んど変えずに暗復号とも実装可能となることを示す.こ
れらの実装手法を適用することにより 0.13 µm CMOS
標準セルライブラリを用いた評価において 2, 893 GE で
暗号化実装が, 2, 996 GE で暗復号実装が可能となった.
一方, RFID のような実装上の制約条件の高い環境下
これらの数値は 128 ビット鍵の CLEFIA に対する既
では暗号プリミティブに使用可能なゲート規模は 250 −
存のハードウェア実装の中で最小の数値である.また,
4, 000 GE 程度であるとの報告もあり [9], より小さな
ゲート規模で実装可能であることも重要となる.実際に
AES は 2005 年に Feldhofer らによって RAM を用いた
実装アーキテクチャが提案されており, 暗復号のサポート
Feldhofer らや Hämäläinen らの実装を下回る数値であ
り, CLEFIA のハードウェア実装における小型実装性能
を示している.
以下, まず第 2 節にて 128 ビット鍵 CLEFIA のアル
で 3.4 kGE で実装可能であることが報告されている [2].
ゴリズム概要, 第 3 節にて AES の Hämäläinen らの小
また, 2006 年には Hämäläinen らによりシフトレジスタ
型実装について述べる.次に, 第 4 節にて 8 ビット・シ
を用いたシリアルアーキテクチャが提案されている [3].
リアルアーキテクチャを用いた CLEFIA 小型暗号化実
暗号化のみのサポートではあるが, 入出力を除くと 160
装について, 第 5 節にて CLEFIA 小型暗復号実装につ
サイクルと比較的高速で処理を行ないながらも 3.1 kGE
いて述べる.その後, 第 6 節にて ASIC による実装性能
で実装可能であることが示されている.
評価について述べ, 最後に第 7 節にてまとめを行なう.
そこで, 本稿ではハードウェア実装の更なる小型化を
目指して, 128 ビット鍵の CLEFIA に対してシフトレジ
∗
2
128 ビット鍵 CLEFIA
128 ビット鍵 CLEFIA のアルゴリズムの概要を述べ
ソニー株式会社, 〒 141-0001, 東京都品川区北品川 5-1-12 御殿山
Tec, Sony Corporation, Gotenyama Tec. 5-1-12 Kitashinagawa
Shinagawa-ku, Tokyo, 141-0001.
る.詳細については, 文献 [4, 5] を参照されたい.
1
P0
P1
P2
32/
32/
RK0
k0 k1 k2 k 3
P3
8/ 8/ 8/ 8/
32/
32/
RK1
WK0
F0
WK1
F1
RK2
RK3
F0
F1
x0
8
x1
8
x2
8
x3
8
/
/
S0
8
y0
S1
8
y1
S0
8
y2
S1
8
y3
8
y0
8
y1
S1
8
y2
S0
8
y3
/
M0
/
/
/
/
/
F0
k 0 k1 k 2 k 3
RK4
RK5
F0
F1
..
.
..
.
8/ 8/ 8/ 8/
..
.
.
..
RK2r−2
RK2r−1
F0
F1
x0
8
S1
x1
8
S0
/
/
x2
8
x3
8
/
M1
/
/
/
/
/
F1
WK2
32/
32/
C0
C1
図 2: F 関数 F0 , F1
WK3
32/
C2
32/
128 bits
C3
7
57
57
7
図 1: CLEFIA のデータ処理部
57
2.1
データ処理部
これらは各要素 hij (0 ≤ i, j ≤ 3) が 8 ビットの 4 × 4
Hadamard-type 行列であり, その要素は 4 つの 8 ビ
ット値 a0 , a1 , a2 , a3 を用いて hij = ai⊕j として表現
できる.これらの行列, ベクトル間の乗算は原始多項式
z 8 + z 4 + z 3 + z 2 + 1 で定義される GF(28 ) 上の演算と
して定義される.
F 関数 F0 , F1 は, それぞれが 4 つの 8 ビット入出力
S-box と 1 つの拡散行列から構成されている.これらの
F 関数は S-box としても 2 つの異なる S-box を使用し
ており, 1 つはランダムに選択された 4 つの 4 ビット入
出力 S-box をベースにした S-box S0 であり, もう 1 つ
2.2
RKj (0 ≤ j < 2r) を出力する.この鍵スケジュール部
る.F 関数 F0 ではこれらの S-box を S0 , S1 , S0 , S1 の
は (1) 秘密鍵 K より中間鍵 L を生成, (2) K と L より
順に配置し, 拡散行列として M0 を使用する.もう 1 つ
W Ki , RKj を生成, という 2 つの処理より構成される.
(1) では, データ処理部と同様の関数を用い, 入力とし
て秘密鍵 K, ラウンド鍵として定数 CON を用い, 出
の F 関数 F1 では S-box を S1 , S0 , S1 , S0 と F0 とは異
なる順に配置し, 拡散行列も F0 で使用されているもの
とは異なる M1 を使用する.図 2 に F 関数 F0 , F1 を
力として中間鍵 L を得る.この変換では 128 ビット鍵
それぞれ示す.拡散行列 M0 , M1 は以下のように定義さ
れる.なお, 行列内の要素は 16 進数表現である.



04
06
01
02
06
04 
,
02 
01
01
 08
M1 = 
02
0A
08
01
0A
02
02
0A
01
08
鍵スケジュール部
CLEFIA の鍵スケジュール部は, 秘密鍵を入力とし,
ホワイトニング鍵 W Ki (0 ≤ i < 4), およびラウンド鍵
は GF(28 ) 上の逆元演算をベースにした S-box S1 であ
02
01
06
04
57
図 3: DoubleSwap 関数 Σ
CLEFIA のデータ処理部は 4 系列の Type-2 一般化
Feistel 構造 [10] を採用しており, 1 ラウンドで 2 つの
異なる 32 ビット入出力 F 関数 F0 , F1 を使用する.ラ
ウンド数 r は使用する鍵長に応じて決まっており, 128
ビット鍵の場合は 18 となっている.図 1 に CLEFIA の
データ処理部を示す.
01
 02
M0 = 
04
06
7 7
の場合は, データ処理部と同じ 4 系列の Type-2 一般化

0A
02 
.
08 
01
2
Feistel 構造を 12 ラウンド実行する.(2) では, 中間鍵
L を DoubleSwap 関数 Σ と呼ばれる置換関数を用いて
順次変換し, 秘密鍵 K, 定数 CON と混ぜ合わせること
により, ホワイトニング鍵 W Ki , ラウンド鍵 RKj を生
る.CLEFIA は第 2 節で述べたように, 鍵スケジュール
:1
2
R0
R4
1:
2
R1
R5
:1
2
R2
R6
パラレル・シリアル
変換回路
R3
0
2
:1
0
2
:1
0
0
部において DoubleSwap 関数と呼ばれるビット単位の
置換関数を含んでいる.従って, Feldhofer らの実装のよ
うな RAM を用いたアーキテクチャでは, DoubleSwap
関数を用いてラウンド鍵 RKj を生成するために必要な
a
2
:1
2
:1
サイクル数または回路規模が増大すると考えられる.そ
i
こで, 我々は Hämäläinen らの実装と同様に, シフトレ
ジスタを用いた 8 ビット・シリアルアーキテクチャの設
{02}
計を行なった.
MixColumns 演算回路
4.1
CLEFIA は第 2 節で述べたように 2 種類の拡散行列
M0 , M1 を用いている.M0 , M1 は, AES の MixColumns
が 4×4 の巡回型行列であるのに対し, 4×4 の Hadamardtype 行列となっている.また, CLEFIA は SP 型の一般
化 Feistel 構造であるため, 図 5 (a) に示すように F 関
数 F0 内の行列 M0 の出力は隣の系列のデータと XOR
されることになる.まず,この XOR と行列演算回路の
XOR を共有することにより回路規模の削減を図る.
図 5 (b) に行列演算回路のデータパス, (c) に F0 を演
算する際にレジスタ Ri (0 ≤ i ≤ 3) に格納されるデー
タを示す.1 サイクル目には S-box S0 の出力 a0 をぞ
れぞれ {01}, {02}, {04}, {06} 倍したデータと, データ
z0 , z1 , z2 , z3 が XOR され, それぞれレジスタ R3 , R2 ,
R1 , R0 に格納される.2 − 4 サイクル目には S-box の
出力 ai (i = 1, 2, 3) をそれぞれ {01}, {02}, {04}, {06}
倍したデータとセレクタ 2 を通して選択されたデータ
が XOR され, それぞれレジスタ R3 , R2 , R1 , R0 に格
納される.図 5 (c) に示すように, 4 サイクル後には Ri
にはそれぞれ wi が格納される.また, 行列演算回路の
セレクタ 1 を切り替えることにより F 関数 F1 内の行
列 M1 の処理を行なうことも可能となる.
図 4 に示した AES の MixColumns 回路と比較する
と, セレクタ 1 が追加され, セレクタ 2 が 2 入力セレ
クタから 3 入力セレクタに変更されている.セレクタ
1 の追加は CLEFIA が 2 種類の行列 M0 , M1 を使用
しているためで, セレクタ 2 の変更は行列 M0 , M1 が
図 4: Hämäläinen 実装 MixColumns 演算
成する.DoubleSwap 関数 Σ は, 128 ビット入出力の置
換関数であり, 高い攪拌性能と効率的な実装が可能とい
う特長を併せ持つ.この DoubleSwap 関数 Σ を図 3 に
示す.
3
行列演算の実装手法
Hämäläinen らの AES 小型実装
Hämäläinen らは低コスト, 低消費電力のデバイスに
適した 128 ビット鍵 AES の小型暗号化コアを目指して,
シフトレジスタを用いた 8 ビット・シリアルアーキテク
チャを提案した [3].Feldhofer らの実装 [2] が RAM を
用いた実装アーキテクチャであるのに対して, シフトレ
ジスタを用いることにより, 入出力を除くと 160 サイク
ルと比較的高速で処理を行ないながらも 3.1 kGE で実
装可能であることが示されている.
データ処理回路には S-box 演算回路が 1 つのみ配置
されており, AES 1 ラウンド分の処理を 16 サイクル
かけて実行する.MixColumns 演算を行なうために 4
サイクル連続で S-box の出力を MixColumns 演算回路
に入力する.図 4 に MixColumns 演算回路を示す.図
内のデータ幅は 8 ビットとなっている.S-box の出力
ai (0 ≤ i ≤ 3) は順に MixColumns 演算回路に入力さ
れ, 4 サイクル後に MixColumns 演算の出力がレジスタ
R0 , R1 , R2 , R3 に格納される.しかしながら, 次のサイ
クルでは別の MixColumns 演算用の S-box の出力が入
Hadamard-type 行列であることによる.また, AES の
MixColumns 回路と異なり, パラレル・シリアル変換回
力されるため R1 , R2 , R3 に格納されているデータはパ
路が不要となる.レジスタ Ri に wi が格納された後, 次
ラレル・シリアル変換回路内にあるレジスタ R4 , R5 , R6
の F 関数の処理を行なうために新たに zi および a0 が
に一旦移され, 順に出力されることになる.従って, ブ
行列演算回路に入力されるが, zi は入力された後不要と
ロック長 128 ビット以外に 8 ビットのレジスタが 3 本
なり, zi が格納されていたレジスタに wi を格納するこ
の計 24 ビット分のデータレジスタが必要となる.
とが可能となるからである.従って, 8 ビット・シリア
4
た場合には, AES と異なりブロック長 128 ビット以外
ルアーキテクチャで CLEFIA のデータ処理部を実装し
CLEFIA 小型暗号化実装
のデータレジスタは不要となり, 更なる回路規模の削減
本節では, 8 ビット・シリアルアーキテクチャを用いた
が可能となる.
128 ビット鍵 CLEFIA の小型暗号化実装について述べ
3
セレクタ 2
k0 k1 k2 k3
S0
x0
x1
S1
x2
S0
x3
S1
a0
1
z3 ⊕{06}a0
z2 ⊕{04}a0
z1 ⊕{02}a0
z0 ⊕{01}a0
R1
a1
a2
M0
R2
a3
(a)
cycle
R0
R1
R2
R3
R0
z0 z1 z2 z3
R3
w0 w1 w2 w3
2
z2 ⊕{04}a0 ⊕{06}a1
z3 ⊕{06}a0 ⊕{04}a1
z0 ⊕{01}a0 ⊕{02}a1
z1 ⊕{02}a0 ⊕{01}a1
z3
3
:1
z2
3
:1
z1
3
:1
z0
3
:1
セレクタ 1
:1
2
:1
2
{02}
{02}
:1
2
{02}
ai
(b)
3
z1 ⊕{02}a0 ⊕{01}a1 ⊕{06}a2
z0 ⊕{01}a0 ⊕{02}a1 ⊕{04}a2
z3 ⊕{06}a0 ⊕{04}a1 ⊕{02}a2
z2 ⊕{04}a0 ⊕{06}a1 ⊕{01}a2
4
z0 ⊕{01}a0 ⊕{02}a1 ⊕{04}a2 ⊕{06}a3
z1 ⊕{02}a0 ⊕{01}a1 ⊕{06}a2 ⊕{04}a3
z2 ⊕{04}a0 ⊕{06}a1 ⊕{01}a2 ⊕{02}a3
z3 ⊕{06}a0 ⊕{04}a1 ⊕{02}a2 ⊕{01}a3
(=
(=
(=
(=
w0 )
w1 )
w2 )
w3 )
(c)
図 5: CLEFIA 小型実装の行列演算回路: (a) F 関数 F0 データ構造, (b) データパス, (c) レジスタ格納データ
4.2
の秘密鍵 K に関する処理を行列演算回路内に配置する
回路アーキテクチャ
ことにより更なる回路規模の削減を図っている.鍵入力
図 6 に 8 ビット・シリアルアーキテクチャを用いた
key in から入力された秘密鍵 K は K = K0 |K1 |K2 |K3
と 32 ビットに分割された後 4 入力の 32 ビットセレク
タで選択され, 更に選択された 32 ビットデータが 8 ビッ
トずつに分割された後 4 入力の 8 ビットセレクタで選
択され, 行列演算回路に供給される.
鍵スケジュール回路には中間鍵レジスタ Lij が配置さ
れ, 暗号化処理時にはレジスタ L00 と, CONi を 8 ビッ
トに分割し 4 入力の 8 ビットセレクタで選択したデー
タとが XOR され, データ処理回路に供給される.中間
鍵レジスタ Lij に格納された L は 8 ビットずつシフト
する形でデータ処理部に供給されるが, 2 ラウンド毎に
DoubleSwap 関数 Σ でアップデートする必要があるた
め, 偶数ラウンドの 8 サイクル目には 8-bit shift + Σ の
出力が選択され Lij に入力される.また, 暗号化処理の
最後には, 次の入力ブロックに対する処理のために 8-bit
shift + Σ−8 の出力が選択され, Lij を元の中間鍵 L に
戻す.
CLEFIA の小型暗号化実装のデータパスを示す.なお,
図中で指定されていないデータパス幅は 8 ビットとなっ
ている.データパスは, 大きくデータ処理回路と鍵スケ
ジュール回路に分けることができる.CLEFIA は 1 ラウ
ンド分のラウンド関数に S-box が 8 個配置されているこ
とから, 1 ラウンドを 8 サイクルで処理する.1 ラウンド
の処理でデータ処理回路内のレジスタ Rij (0 ≤ i, j ≤ 3)
に格納されるデータの詳細な流れは付録の図 8 に示す.
暗号化処理時には, 8 ビットのデータ入力 data in か
ら供給された平文データが 16 サイクルかけて Rij に配
置された後, 暗号化を開始し, 18 ラウンドのラウンド関
数に 144 サイクルを要する.最終ラウンドにはワード巡
回処理がないことから, 暗号文データはレジスタ R30 を
通して 16 サイクルかけて出力される.鍵セットアップ
時には key in から入力された秘密鍵 K が 16 サイクル
かけてレジスタ Rij に配置された後, 鍵セットアップを
開始し, 12 ラウンド分のラウンド関数に 96 サイクルを
要する.生成された中間鍵 L はレジスタ R30 を通して
5
16 サイクルかけて中間鍵レジスタ Lij (0 ≤ i, j ≤ 3) に
CLEFIA 小型暗復号実装
本節では 8 ビット・シリアルアーキテクチャを用い
格納される.
データ処理回路には 2 種類の S-box S0 , S1 が配置さ
た 128 ビット鍵 CLEFIA の小型暗復号実装について述
れ, それらの出力がセレクタにより選択されて行列演算
べる.
回路に入力される.また, CLEFIA のハードウェア実装
CLEFIA の復号処理に対して, 文献 [6] で提案された
では, 文献 [6] で示されているように暗号化処理時のラ
ラウンド鍵の一部の等価変形を施すと, 図 7 (a) のよう
ウンド鍵の秘密鍵 K に関する部分を等価変形し, ホワイ
に表すことができる.図中の RKi (0 ≤ i ≤ 35) はラウ
トニング鍵の処理と共有することにより, 回路規模が削
ンド鍵の中間鍵 L に関する部分を示している.CLEFIA
減できることが知られている.データ処理回路では, こ
のデータ処理部は 4 系列の Type-2 一般化 Feistel 構
4
データ処理回路
data_in
3
:1
R33 R32 R31 R30
3
:1
2
:1
R13
2
:1
R12
R11
2
:1
2
:1
R10
R03 R02 R01 R00
data_out
R20
:1
2
3
:1
R21
1:
2
3
:1
R22
{02}
S0
:1
2
3
:1
R23
{02}
{02}
S1
:1
2
3
:1
:1
2
32
:1
4
32
32
:1 32
4
128
key_in
32
128
8-bit shift + Σ
8-bit shift + Σ-8
128
1: 3
128
2
:1
L33 L32 L31 L30
CON
128
32
i
4
:1
128
L23 L22 L21 L20
L13 L12 L11 L10
L03 L02 L01 L00
鍵スケジュール回路
図 6: CLEFIA 小型暗号化実装のデータパス
造を採用しているため, 暗号化処理と復号処理ではラウ
かけて 64 ビット巡回シフトを行なった後に F inalSwap
ンド関数のワード巡回処理が逆方向となる.そのため,
関数 Φ の出力を選択し, Lij を元の中間鍵 L に戻すこ
第 4.2 節で述べた回路アーキテクチャに復号処理を追加
とになる.
以上より, データパス上は図 6 に 8 ビット 2 入力お
した場合にはセレクタ数が大幅に増加すると考えられる.
そこで, 我々は偶数ラウンド目の F 関数 F0 と F1 の配
よび 8 ビット 3 入力のセレクタを追加し, 8-bit shift +
置を入れ替えて復号処理を再構成した.すると, 図 7 (b)
Σ−8 を F inalSwap 関数 Φ に変更することで暗復号処
理が可能となる.
で示すようにラウンド関数のワード巡回方向が暗号化処
理と同じ方向になる.従って, 回路アーキテクチャ上は
6
図 6 のデータパスに大きな変更を加える必要はなく, 復
号処理の偶数ラウンド目では F 関数 F1 の処理を先に
ASIC ライブラリによる実装性能評価
本節では, 第 4 節で述べた CLEFIA 小型暗号化実装
実行し, その後に F0 の処理を実行すればよい.ただし,
と第 5 節で述べた CLEFIA 小型暗復号実装の ASIC ラ
F 関数へのラウンド鍵入力の順序も入れ替わるため, 上
イブラリによる実装性能評価を行なう.なお, ハードウェ
記の F1 の処理では中間鍵レジスタ L10 から, F0 の処
ア設計および評価環境は以下の通りである.
理では中間鍵レジスタ L30 からラウンド鍵を供給しな
記述言語
設計ライブラリ
シミュレータ
論理合成ツール
ければならず, L00 を含めて 8 ビット 3 入力のセレクタ
を追加する必要がある.また, 復号処理終了時にはワー
ド巡回処理の関係で先頭データが R30 ではなく R10 に
Verilog-VHDL
0.13 µm CMOS 標準セルライブラリ
VCS version 2006.06
Design Compiler version 2007.03-SP3
格納されるため, 出力 data out の選択を行なう 8 ビッ
1 GE は 2 入力 NAND ゲートに相当し, 遅延時間は最
ト 2 入力のセレクタが必要となる.
悪条件での評価を行なっている.
また, 復号処理の開始時には中間鍵データ L に文献 [6]
表 1 に評価結果を示す.2 種類の実装に対して, 規模
で提案された F inalSwap 関数 Φ を適用する必要があ
優先で回路を合成した.なお, cycle には入出力に必要な
る.そこで,鍵スケジュール回路のセレクタ増加を防ぐ
サイクル数を含めている.また, 比較として, CLEFIA
ため,暗号化処理の終了後,暗号文出力中に 8 サイクル
の既存の結果としては最小となる文献 [6] の小型版実装
5
表 1: ASIC による実装性能評価
Algorithm
CLEFIA
CLEFIA [6]
AES [3]
AES [2]
C0
RK34
C1
F0
RK32
F0
RK30
F0
RK28
F0
RK6
F0
RK4
F0
RK2
F0
RK0
P0
F0
P1
C2
K2
RK35
K3
RK33
F1
F1
K1
RK31
K2
RK29
K1
RK7
F1
F1
F1
K2
RK5
K0
RK3
K0
RK1
(a)
F1
F1
P2
F1
C0
C3
Mode
Cycle
enc
enc/dec
enc/dec
enc
enc/dec
176
176
38
177
1,032
K3
RK34
K2
RK33
F0
F1
K0
RK30
K3
RK29
K0
RK6
F0
F1
F0
K3
RK5
K1
RK2
K1
RK1
P3
C1
F1
F0
P2
F1
P3
C2
K2
RK35
K2
RK32
K3
RK31
K3
RK28
K1
RK7
K0
F1
K3
RK4
K0
RK3
K1
RK0
K1
F1
P0
[4] T. Shirai, K. Shibutani, T. Akishita, S. Moriai, and
T. Iwata, “The 128-bit Blockcipher CLEFIA (Extended Abstract)”, FSE 2007 , LNCS 4593, pp. 181–
195, Springer-Verlag, 2007.
K2
F0
F0
[3] P. Hämäläinen, T. Alho, M. Hännikäinen, and
T. Hämäläinen, “Design and Implementaion of Lowarea and Low-power AES Encryption Hardware Core”,
DSD 2006 , pp. 577–583, IEEE Computer Society,
2006.
K2
F0
Technology
(µm)
0.13
0.13
0.09
0.13
0.35
[2] M. Feldhofer, J. Wolkerstorfer, and V. Rijmen, “AES
Implementation on a Grain of Sand”, IEE Proceedings
Information Security, vol. 152, pp. 13–20, 2005.
K0
F1
Throughput
(Mbps)
49
44
677
110
10
[1] J. Daemen and V. Rijmen, The Design of Rijndael:
AES – The Advanced Encryption Standard (Information Security and Cryptography), Springer, 2002.
K3
F0
Freq.
(MHz)
67
61
201
152
80
参考文献
C3
F1
K1
(b)
Area
(GE)
2,893
2,996
4,950
3,100
3,400
[5] 白井 太三, 渋谷 香士, 秋下 徹, 盛合 志帆, 岩田 哲, “128 ビ
ットブロック暗号 CLEFIA”, IEICE Technical Report,
ISEC 2007-1, 2007.
K0
[6] 白井 太三, 渋谷 香士, 秋下 徹, 盛合 志帆, 岩田 哲, “128
ビットブロック暗号 CLEFIA のハードウェア実装評価”,
IEICE Technical Report, ISEC 2007-49, 2007.
P1
[7] 菅原 健, 本間 尚文, 青木 孝文, 佐藤 証, “128 ビットブロッ
ク暗号 CLEFIA の ASIC 実装”, CSS 2007 , pp. 175–
180, 2007.
図 7: (a) CLEFIA 復号処理, (b) 偶数ラウンド目の F
関数を入れ替えた復号処理
[8] T. Sugawara, N. Homma, T. Aoki, and A. Satoh,
“ASIC Performance Comparison for the ISO Standard
Block Ciphers”, JWIS 2007 , pp. 485–498, 2007.
の結果と, AES の Hämäläinen らの実装と Feldhofer ら
の実装の結果を掲載した.今回得られた結果は CLEFIA
[9] Y. Zhang and P. Kitsos, Security in RFID and Sensor
Networks, CRC Press, 2009.
の既存の最小ゲート規模と比較して, 暗復号実装で約 39
% の小型化を実現している.また, 暗号化実装, 暗復号実
のハードウェア実装における小型実装性能を示している.
[10] Y. Zheng, T. Matsumoto, and H. Imai, “On the Construction of Block Ciphers Provably Secure and not
Relying on Any Unproved Hypotheses.” Crypto’89 ,
LNCS 435, pp. 461–480, Springer-Verlag, 1989.
7
付録
装ともに AES の最小実装を下回る数値であり, CLEFIA
まとめ
本稿では, 8 ビット・シリアルアーキテクチャを用い
CLEFIA のラウンド関数のデータ構造を図 8 (a) に示
た CLEFIA の小型ハードウェア実装について報告を行
す.このとき, 図 6 で示された CLEFIA 小型暗号化実装
なった.その結果, CLEFIA が高いハードウェア実装効
のデータパスに基づいてラウンド関数 1 ラウンド分を実
率だけではなく, 小型実装性能を持ったブロック暗号で
行する際に, データ処理部内のレジスタ Rij (0 ≤ i, j ≤ 3)
あることを示した.
に格納されるデータの詳細な流れを図 8 (b) に示す.
6
x00 x01 x02 x03
|
|
x10 x11 x12 x13
|
|
RK2
|
x20 x21 x22 x23
RK2 +1
|
|
i
S1
S0
S1
|
|
|
x30 x31 x32 x33
|
|
|
|
i
S0
y00 y01 y02 y03
|
a0
s
a1
a2
S1
K 0K 1K 2K 3
|
s
|
s
|
s
S0
M0
S1
a
S0
3
y10 y11 y12 y13
|
|
|
y20 y21 y22 y23
|
|
|
b0
K0K1K2K3
t
b1
b2
|
t
|
t
|
t
M1
b
3
y30 y31 y32 y33
|
|
|
(a)
cycle
R00
R01
R02
R03
R10
R11
R12
R13
R20
R21
R22
R23
R30
R31
R32
R33
0
x00
x01
x02
x03
x10
x11
x12
x13
x20
x21
x22
x23
x30
x31
x32
x33
1
x01
x02
x03
x20
x21
x22
x23
x30
x13 ⊕{06}a0
x12 ⊕{04}a0
x11 ⊕{02}a0
x10 ⊕{01}a0 ⊕Ks0
x31
x32
x33
x00
2
x02
x03
x20
x21
x22
x23
x30
x31
x12 ⊕{04}a0 ⊕{06}a1
x13 ⊕{06}a0 ⊕{04}a1
x10 ⊕{01}a0 ⊕{02}a1 ⊕Ks0
x11 ⊕{02}a0 ⊕{01}a1 ⊕Ks1
x32
x33
x00
x01
3
x03
x20
x21
x22
x23
x30
x31
x32
x11 ⊕{02}a0 ⊕{01}a1 ⊕{06}a2 ⊕Ks1
x10 ⊕{01}a0 ⊕{02}a1 ⊕{04}a2 ⊕Ks0
x13 ⊕{06}a0 ⊕{04}a1 ⊕{02}a2
x12 ⊕{04}a0 ⊕{06}a1 ⊕{01}a2 ⊕Ks2
x33
x00
x01
x02
4
x20
x21
x22
x23
x30
x31
x32
x33
x10 ⊕{01}a0 ⊕{02}a1 ⊕{04}a2 ⊕{06}a3 ⊕Ks0
x11 ⊕{02}a0 ⊕{01}a1 ⊕{06}a2 ⊕{04}a3 ⊕Ks1
x12 ⊕{04}a0 ⊕{06}a1 ⊕{01}a2 ⊕{02}a3 ⊕Ks2
x13 ⊕{06}a0 ⊕{04}a1 ⊕{02}a2 ⊕{01}a3 ⊕Ks3
x00 (= y30 )
x01 (= y31 )
x02 (= y32 )
x03 (= y33 )
cycle
R00
R01
R02
R03
R10
R11
R12
R13
R20
R21
R22
R23
R30
R31
R32
R33
4
x20
x21
x22
x23
x30
x31
x32
x33
y00
y01
y02
y03
y30
y31
y32
y33
5
x21
x22
x23
y00
y01
y02
y03
x20
x33 ⊕{0A}b0
x32 ⊕{02}b0
x31 ⊕{08}b0
x30 ⊕{01}b0 ⊕Kt0
y31
y32
y33
y30
6
x22
x23
y00
y01
y02
y03
x20
x21
x32 ⊕{02}b0 ⊕{0A}b1
x33 ⊕{0A}b0 ⊕{02}b1
x30 ⊕{01}b0 ⊕{08}b1 ⊕Kt0
x31 ⊕{08}b0 ⊕{01}b1 ⊕Kt1
y32
y33
y30
y31
7
x23
y00
y01
y02
y03
x20
x21
x22
x31 ⊕{08}b0 ⊕{01}b1 ⊕{0A}b2 ⊕Kt1
x30 ⊕{01}b0 ⊕{08}b1 ⊕{02}b2 ⊕Kt0
x33 ⊕{0A}b0 ⊕{02}b1 ⊕{08}b2
x32 ⊕{02}b0 ⊕{0A}b1 ⊕{01}b2 ⊕Kt2
y33
y30
y31
y32
8
y00
y01
y02
y03
x20 (= y10 )
x21 (= y11 )
x22 (= y12 )
x23 (= y13 )
x30 ⊕{01}b0 ⊕{08}b1 ⊕{02}b2 ⊕{0A}b3 ⊕Kt0
x31 ⊕{08}b0 ⊕{01}b1 ⊕{0A}b2 ⊕{02}b3 ⊕Kt1
x32 ⊕{02}b0 ⊕{0A}b1 ⊕{01}b2 ⊕{08}b3 ⊕Kt2
x33 ⊕{0A}b0 ⊕{02}b1 ⊕{08}b2 ⊕{01}b3 ⊕Kt3
y30
y31
y32
y33
(b)
図 8: (a) CLEFIA ラウンド関数のデータ構造, (b) 小型暗号化実装におけるレジスタ格納データ
7
(=
(=
(=
(=
(=
(=
(=
(=
y00 )
y01 )
y02 )
y03 )
y20 )
y21 )
y22 )
y23 )