128ビットブロック暗号 Camellia 青木 和麻呂* 神田 雅透* 盛合 志帆* 市川 哲也† 松井 充† 中嶋 純子† 時田 俊雄† * 日本電信電話株式会社 † 三菱電機株式会社 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 1 目次 Camelliaの特長 Camelliaの仕様 安全性評価 実装性能 知的所有権情報 標準化活動 まとめ <付録> 詳細な安全性評価コメント 設計方針 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 2 Camelliaの特長 NTTと三菱電機との共同開発。2000年に発表。 両社の暗号設計技術力を結集 NTT: 高速なソフトウェア実装に適した暗号設計 三菱: 小型・高速ハードウェア実装に適した暗号設 計 両社: 安全性評価技術 次期米国政府標準暗号AESと同じインタフェース をサポート ブロック長: 128ビット 鍵長: 128, 192, 256ビット 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 3 Camelliaの特長 高い安全性 既知の解読法に対して安全 今後数十年の利用を考慮した高いセキュリティマージン 様々なプラットフォーム上で効率的な処理 ソフトウェア実装: 32ビットや64ビットプロセッサ上で高速 ICカード(メモリが制限されている8ビットや32ビット プロセッサ)上でコンパクトかつ高性能 ハードウェア実装: 小型かつ高性能 現存する128ビットブロック暗号のなかでは,世界 最小クラスの実装面積 優れた鍵交換高速性: 鍵セットアップ時間が短い 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 4 Camelliaの仕様 暗号化/復号処理: 18段 Feistel 構造 (128ビット鍵) 24段 Feistel 構造 (192, 256ビット鍵) ラウンド関数: SPN 構造 6段ごとにFL/FL-1関数を挿入 副鍵との排他的論理和による入出力ホワイトニング 副鍵生成処理: 簡明 暗号化処理と同じ 2段 Feistel 構造を共用 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 5 Camellia (128ビット鍵) 秘密鍵 (128ビット) 平文 (128ビット) 副鍵 F S1 S4 S3 F ローテーションと副鍵選択 中間鍵生成 F S2 F S4 バイト単位 線形変換 S3 F S2 S1 F Si : 置換表(sボック ス) 暗号化(復号) 処理 鍵生成処理 副鍵 2001.10.09. CRYPTREC Workshop 暗号文 (128ビット) FL FL-1 副鍵 Copyright (C) NTT & Mitsubishi Electric Corp. 2001 6 Camellia (192, 256ビット鍵) 秘密鍵 (192, 256ビット) 平文 (128ビット) 副鍵 F S1 S4 S3 F ローテーションと副鍵選択 中間鍵生成 F S2 F S4 バイト単位 線形変換 S3 F S2 S1 F Si : 置換表(sボック ス) 鍵生成処理 副鍵 2001.10.09. CRYPTREC Workshop 暗号文 (128ビット) FL FL-1 副鍵 Copyright (C) NTT & Mitsubishi Electric Corp. 2001 7 設計方針 (要約) 段関数 FL/FL-1関数 差分解読法・線形解読法に対して高い安全性を実現 様々なプラットフォーム上で高性能な処理を実現 小型のハードウェア実装が可能 構造の規則性を崩す 処理性能に大きな影響を与えない 鍵スケジュール 優れた鍵交換高速性を実現 小型のハードウェア実装が可能 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 8 考慮した安全性 以下のような攻撃に対し,十分な安全性を保つよ うに設計 差分解読法,線形解読法 丸め差分攻撃,丸め線形攻撃 不能差分利用攻撃 ブーメラン攻撃 高階差分攻撃,Square攻撃 補間攻撃,線形和攻撃 等価鍵非存在性 スライド攻撃 関連鍵攻撃 実装攻撃, …… 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 9 安全性に関する第三者評価 公開された第三者評価 著者 発表先 Knudsen Camellia HP Bihamら NESSIE public report 川端,金子 主な結果 (128ビット鍵) 攻撃可能段数 FL/FL-1 解読手法 7 段が識別可能 無 丸め差分 9段 無 差分 8 段が識別可能 無 丸め差分 2nd NESSIE workshop 8段 無 高階差分 He, Qing ICICS2001 6段 --- Square 杉田ら ASIACRYPT2001 9 段が識別可能 無 丸め差分 7 段の不能差分 無 不能差分 現在まで,FL/FL-1関数を除いた12段以上の Camellia(128ビット鍵)に対する攻撃は成功せず (仕様どおりの)Camelliaは安全であり,高いセ キュリティマージンを有していると考えられる 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 10 ソフトウェア実装性能(128ビット鍵) Pentium III (CPU clock: 1GHzの場合) (cycles/byte) 120 暗号化処理速度 (msec) 74.9 Mbps 100 2.5 副鍵生成+1ブロック暗号化 2.0 80 1.5 60 40 20 1.0 高速 高速 229.8 Mbps 0.5 415.6 Mbps 392.6 Mbps 0.0 0 Camellia アセンブリ 自己評価 Camellia アセンブリ CRYPTREC* Camellia ANSI C 最適化未了 TripleDES アセンブリ CRYPTREC* Camellia Camellia TripleDES アセンブリ 自己評価 アセンブリ アセンブリ CRYPTREC* CRYPTREC* [出典] CRYPTREC*: 暗号技術評価報告書(2000年度版) 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 11 ソフトウェア実装性能(128ビット鍵) Z80上でのアセンブリ実装 (CPU clock: 5MHz) Camellia Rijndael* ROM使用量 [バイト数] 1,268 1,221 RAM使用量 [バイト数] 60 63 35,951 35,709 (7.19 msec) (7.15 msec) 37,553 52,094 (7.51 msec) (10.42 msec) (スタック,テキスト,鍵の各領域込み) 副鍵生成+1ブロック暗号化 [ステート数] (動的副鍵生成を利用) 副鍵生成+1ブロック復号 [ステート数] (動的副鍵生成を利用) [出典] Rijndael*: 佐野ら, 第2回NESSIE会議予稿集 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 12 ソフトウェア実装性能(128ビット鍵) その他の結果 Pentium III上のJava実装 (自己評価) 鍵スケジュール: 9,091 サイクル 暗号化処理: 793 サイクル UltraSPARC,Alpha上でのアセンブリ実装 (暗号技術評価報告書2000年度版より) 暗号化/復号処理速度 プロセッサ UltraSPARCIIi Alpha 21264 2001.10.09. CRYPTREC Workshop 1ブロック暗号化/復号 + 鍵スケジュール 暗号化 [サイクル数] 復号 [サイクル数] 暗号化+副鍵生成 [サイクル数] 復号+副鍵生成 [サイクル数] 355 282 355 282 403 448 403 435 Copyright (C) NTT & Mitsubishi Electric Corp. 2001 13 ハードウェア実装性能(128ビット鍵) 自己評価 – 最良の結果 (ASIC) 三菱 0.18mm ASIC CMOS 実装サイズ スループット 処理効率 [Kgates] [Mbps] (=スループット/エリア) 面積最小 8.12 177.62 21.87 最高処理効率 11.87 1,050.90 88.52 処理速度最速 44.30 1,881.25 42.47 実装サイズ スループット 処理効率 [slices] [Mbps] (=スループット/エリア) 面積最小 1,780 227.42 127.76 最高処理効率 (処理速度最速) 9,692 6,749.99 696.45 優先項目 (FPGA) Xilinx VirtexE 優先項目 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 14 知的所有権情報 Camelliaを評価する際に必要となる知的所有権 の利用が無償で行えることを宣誓します Camelliaの基本特許に関しては,Camelliaを 使用するものに対して,相互主義の下に,非排他 的に,無償で実施許諾する方針です 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 15 標準化活動 NESSIE (New European Schemes for Signature, Integrity, and Encryption) プロジェクト 第2次評価フェーズへ進出 IETF Internet-Draftsを提案 Addition of the Camellia Encryption Algorithm to Transport Layer Security (TLS) A Description of the Camellia Encryption Algorithm ISO/IEC JTC 1/SC 27 日本国内委員会へ提案中 Encryption Algorithms (18033) 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 16 詳細情報の問い合わせ Camellia Home Page http://info.isl.ntt.co.jp/camellia/ 仕様書およびサンプルコード 設計方針,実装性能,ソフトウェア実装技法,ハードウェ ア評価,および安全性評価の詳細などに関する技術 文書 E-mail [email protected] [email protected] 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 17 まとめ 128, 192, 256ビット鍵が利用できる128ビットブ ロック暗号Camelliaの提案 明確な設計方針に基づく 高い安全性 攻撃に成功した解読法は知られていない 十分に大きなセキュリティマージンを取っている 様々なプラットフォーム上で効率的な処理 小型で効率的なハードウェア実装 高速なソフトウェア実装 ICカード(メモリが制限された低コストプラットフォー ム)上での効率的な実装 ロイヤリティフリーのアルゴリズム 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 18 ご質問をどうぞ 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 19 付録 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 20 安全性自己評価 差分解読法および線形解読法 丸め差分攻撃および丸め線形攻撃 10段以上のCamelliaでは,ランダム関数との識別が 不可能 不能差分利用攻撃 FL/FL-1関数を含む12段Camelliaには,確率 2-128 以上となる差分特性・線形特性パスが存在しない FL/FL-1関数は鍵の値によって差分パスを変化させる ブーメラン攻撃 FL/FL-1関数を除いた8段Camelliaの最良ブーメラン確 率は 2-66以下と抑えられる 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 21 安全性自己評価 高階差分攻撃およびSquare攻撃 補間攻撃および線形和攻撃 Camelliaのブール多項式での次数が十分に大きくなる と期待 Camelliaの未知係数の最小個数が最大となると期待 実装攻撃 “有利な(Favorable)” アルゴリズムのグループに属す 実装攻撃に対する防御はもっとも簡単 いくつかの防御策は,実装性能に大きな影響を与え ることなく実現可能 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 22 安全性自己評価 等価鍵非存在 スライド攻撃 鍵生成によって作られる副鍵の集合には,元々の秘密 鍵が含まれる 構造の規則性を崩すため,FL/FL-1関数をFeistel構造 の 6段ごとに挿入 関連鍵攻撃 副鍵の関係を制御したり,予測したりすることは困難 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 23 設計方針 – ラウンド関数 P関数 バイト単位の排他的論理和だけで構成可能 様々な環境で効率的な処理 分岐数が最良 差分解読法や線形解読法に対する耐性 Sボックス ガロア体GF(28) での逆数関数のアフィン等価関数を利 用 以下の攻撃に対する耐性 差分解読法及び線形解読法 高階差分攻撃 補間攻撃 ハードウェアでの小型実装 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 24 ラウンド関数の詳細 副鍵 s ボックス P 関数 S1 S4 S3 S2 S4 S3 S2 S1 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 25 設計方針 – FL/FL-1関数 構造の規則性を崩す 通常の Feistel 構造が有する特長を維持 スライド攻撃に対する耐性 将来の(未知の)攻撃に対する耐性 副鍵の順序を除けば,暗号化処理と復号処理が同一 MISTYのFL関数の設計方針を踏襲 任意の固定された副鍵に対して線形変換であるが, その変換は副鍵の値によって変化する ソフトウェアでもハードウェアでも効率的な実装が可能 な論理演算で構成 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 26 FL/FL-1関数の詳細 副鍵 副鍵 <<<1 <<<1 副鍵 FL関数 2001.10.09. CRYPTREC Workshop 副鍵 FL-1関数 Copyright (C) NTT & Mitsubishi Electric Corp. 2001 27 設計方針 – 副鍵生成 ハードウェア実装面 簡明で,暗号化(復号)処理と一部共用可能 128ビット鍵専用の副鍵生成は,128, 192, 256ビット すべての鍵に対する副鍵生成の一部分として実行可能 様々な環境での効率性 鍵セットアップ時間を暗号化時間よりも短くする 動的副鍵生成をサポート 暗号化処理と復号処理とで動的副鍵生成が同一の 方法で計算可能 安全性 等価鍵の非存在 関連鍵攻撃への耐性 2001.10.09. CRYPTREC Workshop Copyright (C) NTT & Mitsubishi Electric Corp. 2001 28 副鍵生成の詳細 KL KR Σ1 F Σ2 F 定数Σi: i 番目の素数の平方根の2番目から 17番目までの16進表現の値 KR KL Σ3 F Σ5 F Σ4 F Σ6 F KA 2001.10.09. CRYPTREC Workshop KB Copyright (C) NTT & Mitsubishi Electric Corp. 2001 29
© Copyright 2024 ExpyDoc