"128ビットブロック暗号CLEFIAの小型ハードウェア実装評価"

128ビットブロック暗号 CLEFIA の
小型ハードウェア実装評価
秋下 徹
樋渡 玄良
ソニー株式会社
本発表の概要
• 128 ビットブロック暗号 CLEFIA のハードウェア実装
の更なる小型化を目指して,8 ビット・シリアルアーキ
テクチャに基づいた実装を行なった.
• 128 ビット鍵 CLEFIA の実装評価結果
– 暗号化のみ
– 暗復号
2.9 kGE
3.0 kGE
CLEFIA のハードウェア実装における
小型実装性能を示す結果が得られた
2
本発表の流れ
• 128 ビットブロック暗号 CLEFIA
– 概要
– 既存のハードウェア実装評価
• 8 ビット・シリアルアーキテクチャによる AES 実装
– Hamalainen らの AES 実装
• 8 ビット・シリアルアーキテクチャによる CLEFIA 実装
– CLEFIA 暗号化実装
– CLEFIA 暗復号実装
• 実装性能評価
• まとめ
3
128 ビットブロック暗号 CLEFIA
• 名古屋大学とソニーにより 2007 年に提案された共
通鍵ブロック暗号
– ブロック長:128ビット
– 鍵長:128/192/256ビット
• 安全性,速度,実装コストのバランスを追及
• 基本構造
– Type-2 一般化Feistel構造 (GFN)
• データ処理部, 鍵スケジュール部ともに
– ラウンド数:
4
18 (128ビット鍵)
22 (192ビット鍵)
26 (256ビット鍵)
平文
鍵
F0
F1
F0
F1
DoubleSwap
DoubleSwap
DoubleSwap
:
:
:
:
F0
F1
F0
F1
DoubleSwap
DoubleSwap
暗号文
5
データ処理部
鍵スケジュール部
(ラウンド数を
削減した)
データ処理部
DoubleSwap
F 関数
• SP型
S0
S1
S0
S1
S1
S0
S1
S0
6
行列 M0
1246
2164
4612
6421
行列 M1
182a
81a2
2a18
a281
F0
F1
F0
F1
F0
F1
F0
F1
F0
F1
CLEFIA のハードウェア実装評価
• 設計者評価
実装法 アルゴリズム
高速版
小型版
暗/復号
(cycle)
ゲート規模
(GE)
速度
(Mbps)
ゲート効率
(Kbps/GE)
プロセス
(um)
268.63 1.98
0.09
135.81
0.13
CLEFIA
18
5,979 1,605.94
AES
11
12,454 1,691.35
Camellia
22
10,993
971.29
88.36 0.65
0.13
CLEFIA
36
4,950
715.69
144.59 2.51
0.09
AES
54
5,398
311.09
57.63
Camellia
44
6,511
325.76
50.03 0.87
1
1
0.13
0.13
白井, 渋谷, 秋下, 盛合, 岩田. “128 ビットブロック暗号 CLEFIA のハードウェア実装評価”,
ISEC 2007-49
7
CLEFIA のハードウェア実装評価
• 第三者評価
速度 (Mbit/s)
– ISO 標準ブロック暗号 (ISO/IEC 18033-3) との比較
4000
3500
3000
CLEFIA
2500
AES
Camellia
2000
SEED
1500
Triple‐DES
1000
MISTY1
500
CAST‐128
0
0
20
40
60
80
面積 (kGE)
菅原, 本間, 青木, 佐藤. “128 ビットブロック暗号 CLEFIA の ASIC 実装評価”, CSS2007
8
AES の小型実装
• RFID では暗号プリミティブに使用可能なゲート規模
が 250-4,000 GE
• AES-128 の 8 ビット・シリアルアーキテクチャによる
実装
– 規模の大きい S-box 回路を 1 つのみ配置し小型化を図る
– Feldhofer らによる実装
3,400 GE
• RAM を用いたシリアルアーキテクチャ,暗復号に対応
– Hamalainen らによる実装
3,100 GE
• シフトレジスタを用いたシリアルアーキテクチャ,暗号化のみ対応
9
Hamalainen らの AES 実装
データ処理回路を S-box 回路 1 つのみで構成,1 ラウンドを 16 サイクルで実行
10
S S S S
S S S S
S S S S
S S S S
2311
1231
1123
3112
2311
1231
1123
3112
2311
1231
1123
3112
2311
1231
1123
3112
Hamalainen らの AES 実装
1 サイクル目
11
S S S S
S S S S
S S S S
S S S S
2311
1231
1123
3112
2311
1231
1123
3112
2311
1231
1123
3112
2311
1231
1123
3112
Hamalainen らの AES 実装
2 サイクル目
12
S S S S
S S S S
S S S S
S S S S
2311
1231
1123
3112
2311
1231
1123
3112
2311
1231
1123
3112
2311
1231
1123
3112
Hamalainen らの AES 実装
3 サイクル目
13
S S S S
S S S S
S S S S
S S S S
2311
1231
1123
3112
2311
1231
1123
3112
2311
1231
1123
3112
2311
1231
1123
3112
Hamalainen らの AES 実装
4 サイクル目
14
S S S S
S S S S
S S S S
S S S S
2311
1231
1123
3112
2311
1231
1123
3112
2311
1231
1123
3112
2311
1231
1123
3112
Hamalainen らの AES 実装
1 サイクル目
S S S S
S S S S
S S S S
S S S S
2311
1231
1123
3112
2311
1231
1123
3112
2311
1231
1123
3112
2311
1231
1123
3112
16 + 3 バイト分のレジスタが必要
15
Hamalainen らの AES 実装
• データパス
3 バイト分のレジスタ
16
CLEFIA の小型実装
• 従来の実装評価結果では 4,950 GE が最小
– F 関数を 1 サイクルで実行する 32 ビット・アーキテクチャ
• シフトレジスタを用いた 8 ビット・シリアルアーキテク
チャにより小型化を図る
– 鍵スケジュールにビット演算を含む CLEFIA は RAM を用
いた実装には不向き
17
CLEFIA 暗号化実装
1 ラウンドを 8 サイクルで実行
S0
S1
S0
S1
18
M0
1246
2164
4612
6421
S1
S0
S1
S0
M1
182a
81a2
2a18
a281
CLEFIA 暗号化実装
1 サイクル目
S0
S1
S0
S1
19
M0
1246
2164
4612
6421
S1
S0
S1
S0
M1
182a
81a2
2a18
a281
CLEFIA 暗号化実装
2 サイクル目
S0
S1
S0
S1
20
M0
1246
2164
4612
6421
S1
S0
S1
S0
M1
182a
81a2
2a18
a281
CLEFIA 暗号化実装
3 サイクル目
S0
S1
S0
S1
21
M0
1246
2164
4612
6421
S1
S0
S1
S0
M1
182a
81a2
2a18
a281
CLEFIA 暗号化実装
4 サイクル目
S0
S1
S0
S1
M0
1246
2164
4612
6421
S1
S0
S1
S0
16 バイト分のレジスタで実装可能
22
M1
182a
81a2
2a18
a281
CLEFIA シリアル暗号化実装
• データパス
2種類のS-box
2種類の行列
Hadamard型行列
23
CLEFIA シリアル暗復号実装
暗号化
P0
P1
RK0
P2
F0
F0
RK33
K3
F0
RK35
K2
F0
C2
C3
P0
K1
F1
RK1
K0
F0
F1
C1
RK3
K0
RK0
K3
K0
F1
F0
F1
RK34
RK31
K1
RK2
K2
K2
ワード巡回方向が異なるため
セレクタの増加が見込まれる
F1
F0
F1
RK32
RK33
K3
RK30
K3
K3
F1
F0
RK5
K2
C3
RK35
K2
RK32
K1
F1
RK4
C2
F0
RK3
K0
C1
RK34
K1
F1
RK2
24
C0
P3
RK1
K0
F0
C0
復号
K1
F1
P1
P2
P3
復号の偶数ラウンド目の
F0 と F1 の配置を入れ替えると
CLEFIA シリアル暗復号実装
暗号化
P0
P1
RK0
P2
C0
P3
RK1
K0
F0
K1
RK3
K0
C1
RK34
K1
RK32
F0
F1
F0
RK4
RK5
RK30
K2
F0
K3
F0
F1
RK32
RK33
K3
F0
K2
RK35
K2
F0
K3
C2
RK0
F0
F1
C1
K2
C3
C3
RK35
C0
K3
RK33
K0
RK1
RK32
K2
RK31
K1
F0
RK3
K0
F0
P0
P1
P2
P3
データ出力のワード位置の違い
RK0
K1
F1
P2
K1
F1
RK1
F1
K0
F1
RK2
K1
K3
F0
RK30
F1
K3
F1
F1
K1
C3
RK35
K2
RK33
K2
偶数ラウンド目の
RK31
K1
K0
ラウンド鍵の
F1
順序が異なる
RK3
C2
F0
F1
K0
C1
RK34
K3
F1
F0
F1
RK34
RK2
復号改
C2
F0
F1
RK2
C0
復号
K0
F0
P3
P0
P1
ワード巡回方向が同じ方向となり,データパスに大きな変更の必要なし
25
CLEFIA シリアル暗復号実装
• データパス
暗復号でのデータ出力
位置の違い
ラウンド鍵の順序変更
26
実装環境
記述言語
シミュレータ
論理合成ツール
設計ライブラリ
27
Verilog-VHDL
VCS ver.2006.06
Design Compiler ver.2007.03-SP3
0.13um CMOS 標準セルライブラリ
1 GE = 2-way NAND, 最悪条件
実装性能評価
アルゴリ
ズム
サイク
ル
ゲート
(GE)
周波数
速度 プロセス
(MHz) (Mbps)
(um)
モード
アーキテク
チャ
enc
8 ビット
シフトレジスタ
176
2,893
67
49
0.13
enc/dec
8 ビット
シフトレジスタ
176
2,996
61
44
0.13
32 ビット
38
4,950
201
677
0.09
177
3,100
152
110
0.13
1,032
3,400
90
10
0.35
CLEFIA
CLEFIA enc/dec
AES
enc
8 ビット
シフトレジスタ
AES
enc/dec
8 ビット
RAM
※ サイクルは入出力に必要なサイクル数を含む
28
まとめ
• 128 ビットブロック暗号 CLEFIA のハードウェア実装
の更なる小型化を目指して,8 ビット・シリアルアーキ
テクチャに基づいた実装を行なった
• 128 ビット鍵 CLEFIA の実装評価結果
– 暗号化のみ
– 暗復号
2,893 GE
2,996 GE
• 既存の CLEFIA の最小値に対して 39% の小型化を実現
• AES より小さなゲート規模を実現
CLEFIA のハードウェア実装における
小型実装性能を示す結果が得られた
29
ご清聴ありがとうございました