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