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 ご清聴ありがとうございました