128ビットブロック暗号 CLEFIA 白井 太三† 渋谷 香士† 秋下 徹† 盛合 志帆† 岩田 哲†† † ソニー株式会社 †† 名古屋大学 © 2007 Sony Corporation 目次 • • • • • • 2 背景 アルゴリズム仕様 設計方針 安全性評価 実装性能評価 まとめ © 2007 Sony Corporation 背景 • AESプロジェクト開始(1997~)から10年 AESプロジェクト 攻撃法の進化 ・代数攻撃 ・関連鍵攻撃 … 新しい攻撃法への対策 暗号設計法の進化 ICカード, RFIDなどの アプリケーション拡大 ・制約条件の厳しい環境下でも 実装可能なブロック暗号のニーズ 3 © 2007 Sony Corporation 設計の動機 • 最新の研究成果, 設計手法により どこまで安全かつ 小さく、高速な128ビットブロック暗号を設計できるか? 安全性 実装コスト 4 速度 © 2007 Sony Corporation CLEFIAのアルゴリズム仕様 • 共通鍵ブロック暗号 – ブロック長:128ビット – 鍵長:128/192/256ビット • 基本構造 – Type-2 一般化Feistel構造 (GFN) • データ処理部, 鍵スケジュール部ともに – ラウンド数:18 (128ビット鍵) 22 (192ビット鍵) 26 (256ビット鍵) 5 © 2007 Sony Corporation Type-2 一般化Feistel構造 32 ビット 6 F0 F1 F0 F1 F0 F1 F0 F1 © 2007 Sony Corporation 4系列 平文 鍵 F0 F1 F0 F1 DoubleSwap (ラウンド数を 削減した) データ処理部 DoubleSwap : DoubleSwap : : : F0 F1 F0 F1 DoubleSwap DoubleSwap 暗号文 7 © 2007 Sony Corporation データ処理部 鍵スケジュール部 DoubleSwap F 関数 • SP型 S0 S1 S0 S1 S1 S0 S1 S0 8 行列 M0 1246 2164 4612 6421 行列 M1 182a 81a2 2a18 a281 F0 F1 F0 F1 F0 F1 F0 F1 F0 F1 © 2007 Sony Corporation 設計方針 • 全体構造 – 一般化Feistel構造 • 拡散行列 – DSM: Diffusion Switching Mechanism の利用 • S-box – 異なる代数構造に基づくコンパクトなS-box • 鍵スケジュール部 – 安全性とコンパクト実装が両立可能 9 © 2007 Sony Corporation Feistel vs. 一般化Feistel F F F F F F F F F F F F 一般化Feistel構造 の特徴 10 • F 関数のサイズが小さい • 複数のF 関数が同時に実行できる • 多くのラウンド数が必要 拡散行列切り替え法(DSM) © 2007 Sony Corporationにより削減可能 拡散行列切り替え法 (DSM) • DSM:Diffusion Switching Mechanism [SS04,SP04,SS06] • Feistel構造において,複数の拡散 行列を組み合わせることにより 差分/線形攻撃への耐性を高める 手法 M0: MDS行列, M1: MDS行列 でかつ M0| M1: MDS行列となるように設計 *MDS: Maximum Distance Separable 11 © 2007 Sony Corporation M0 M0 M1 M1 M0 M0 DSMの効果 • 差分/線形攻撃に対する耐性の向上 – 隣接するラウンド関数間の difference cancellation / linear mask cancellation を防止 – 同じラウンド数の差分/線形特性に含まれる Active S-boxの最少個数が多くなることを 保証できる – 必要な総ラウンド数を削減可能 • CLEFIAのケースでは25%ラウンド数が削減 12 © 2007 Sony Corporation DSMの効果(最小active S-box数の比較) 従来技術 DSM適用時, D:差分, L:線形 ラウンド数 CLEFIAの場合、 28個以上active s-boxが必要. 従来技術では最低 16ラウンド必要だった. DSMを用いることで 12ラウンドで達成. 13 © 2007 Sony Corporation 2種類のS-box S0 S1 SS0 8 SS1 ⎛1 2⎞ ⎜⎜ ⎟⎟ 2 1 ⎝ ⎠ SS2 f x-1 in GF(28) g 8 SS3 f, g: GF(2)上 affine 変換 ・4ビットS-boxベース 使用例:Whirlpool, FOX ・GF(28)上逆元関数ベース 使用例:AES, Camellia • 異なる代数構造 – 代数攻撃系への耐性向上 • 2種類のS-boxの利用(配置も考慮) – 飽和攻撃(Saturation Attack)等への耐性向上 14 © 2007 Sony Corporation 鍵スケジュール部 (128ビット鍵) 128ビット鍵 : 12ラウンド F0 F0 F0 F1 F1 F1 DoubleSwap RK0 ,..,RK3 DoubleSwap RK4 ,..,RK7 DoubleSwap RK8,..,RK11 DoubleSwap RK12 ,..,RK15 DoubleSwap 関数 DoubleSwap RK16 ,..,RK19 7 57bit DoubleSwap F0 57bit 128ビット中間鍵 © 2007 Sony Corporation 7 RK20 ,..,RK23 F1 :57bit 15 ラウンド鍵 7 7 : 57bit : 鍵スケジュール部 • 一般化Feistel構造 – データ処理部と共有可能 – 関連鍵攻撃に対する耐性を向上 • DoubleSwap関数 – シンプルなビット置換演算ながら攪拌効果大 – 暗号化時も復号時も同じ処理でラウンド鍵生成 – 最終ラウンドから第1ラウンドへ”戻る”のも容易 16 © 2007 Sony Corporation 安全性評価 • • • • • • • • • • 17 差分攻撃 線形攻撃 差分線形攻撃 Boomerang攻撃 Amplified Boomerang攻撃 Rectangle 攻撃 Truncated 差分攻撃 Truncated 線形攻撃 不能差分攻撃 飽和攻撃 • • • • • • • • • • Gilbert-Minier Collision攻撃 高階差分攻撃 補間攻撃 XSL/代数攻撃 χ2/Statistical攻撃 スライド攻撃 関連暗号攻撃 関連鍵攻撃 関連鍵Boomerang攻撃 関連鍵Rectangle攻撃 © 2007 Sony Corporation 差分攻撃 線形攻撃 4ビットS-box ベース GF(28)上 逆元関数ベース S-box 最大差分確率 最大線形確率 S0 2-4.678 2-4.385 S1 2-6 2-6 • 差分特性: 12ラウンド中に28個のactive S-box – 最大差分特性確率 ≤ 2-4.678×28 = 2-130.984 • 線形特性: 12ラウンド中に30個のactive S-box – 最大線形特性確率 ≤ 2-4.385×30 = 2-131.55 • 12ラウンドCLEFIA をランダム置換と識別するために有効な 差分/線形特性は存在しない 18 © 2007 Sony Corporation DSMの効果(最小active S-box数の比較) 従来技術 DSM適用時, D:差分, L:線形 ラウンド数 128-bit key 192-bit key 256-bit key 19 © 2007 Sony Corporation 不能差分攻撃 • 現在、CLEFIA に対して最も有効な攻撃 • Kimらによる探索アルゴリズムを用いて 2つの9ラウンド不能差分パスを発見 9r 9r (0, α, 0, 0) → (0, α, 0, 0) と (0, 0, 0, α) → (0, 0, 0, α) 但し α ∈{0, 1}32 はあらゆる非ゼロの差分値 20 © 2007 Sony Corporation 各種関連鍵攻撃 • 鍵スケジュール部を強固にすることで防御 – Step.1 一般化Feistel構造により中間鍵 L を生成 – Step.2 中間鍵をDoubleSwap関数で攪拌させながら もとの鍵 K とラウンド定数をマスクしてラウンド鍵を生成 鍵K F0 F0 : 12ラウンド F1 F1 F0 F1 F0 F1 中間鍵 L 21 ラウンド鍵 DoubleSwap RK0 ,..,RK3 DoubleSwap RK4 ,..,RK7 DoubleSwap RK8,..,RK11 DoubleSwap RK12 ,..,RK15 DoubleSwap RK16 ,..,RK19 DoubleSwap RK20 ,..,RK23 : © 2007 Sony Corporation : : 各種関連鍵攻撃 • 一般化Feistel構造 (GFN) – 128ビット鍵: 12ラウンド4系列GFN – 192/256ビット鍵: 10ラウンド8系列GFN あらゆるΔK からΔL への遷移確率が十分小さく なるようにラウンド数を決定 • ラウンド定数 – 鍵長によって異なるラウンド定数のセットを用い ることで、スライド攻撃や関連暗号攻撃を防御 22 © 2007 Sony Corporation Type-2 一般化Feistel構造 8系列 32 ビット 23 F0 F1 F0 F1 F0 F1 F0 F1 F0 F1 F0 F1 F0 F1 F0 F1 © 2007 Sony Corporation ハードウェア実装性能 • ASICで5Kgate以下で実装可能* • 面積当たり速度でAESを上回る最高性能** * 0.09μmCMOS標準セルライブラリ使用 ** 使用ASICライブラリの差(0.09μm, 0.13μm)を考慮した公平な比較のためにCLEFIAの性能を1.5で割っても. 24 © 2007 Sony Corporation 高速・コンパクトH/W実装への寄与点 • 一般化Feistel構造 – 小さな F 関数 – 逆関数が不要 • DSMによりラウンド数を削減 • データ処理部と鍵スケジュールが共有可能 • 各パーツが非常にコンパクト – 拡散行列(遅延も小さい) – S-box – DoubleSwap関数 25 © 2007 Sony Corporation ソフトウェア実装性能 • Athlon64上で12.9cycles/byte, 1.48Gbpsを 達成 * AMD Athlon 64プロセッサ 4000+ (2.4GHz)を使用し, Windows XP 64-bit Edition上で動作. コードはアセンブラ実装. 26 © 2007 Sony Corporation ソフトウェア実装性能 • S-box参照回数はAESより少ないものの, データ依存性が高い. – AES: 160回, CLEFIA: 144回 • 2ブロック並列実装では依存性は低減. * AMD Athlon 64プロセッサ 4000+ (2.4GHz)を使用し, Windows XP 64-bit Edition上で動作. コードはアセンブラ実装. 27 © 2007 Sony Corporation まとめ • 128ビットブロック暗号 を提案 • 高速かつコンパクトな実装が可能 – ハードウェア実装:単位ゲートあたりの速度において 最高記録を達成 – ソフトウェア実装:128ビットブロック暗号において 最も高速なグループ • 既知の暗号解読法に対する安全性を確認 実装コスト 28 © 2007 Sony Corporation 安全性 速度