q q 情報セキュリティ 第4回:2005年5月12日(金) q q
本日学ぶこと 使い捨てパッド DES (Data Encryption Standard) AES (Advanced Encryption Standard) ブロック暗号のモード
本日の授業で学ぶ語句 符号化,XOR,使い捨てパッド,鍵管理,ストリーム暗号 DES,ブロック暗号,ファイステル構造,ラウンド,サブ鍵,ラウンド関数,トリプルDES AES,Rijndael,SPN構造 ブロック暗号,ブロック,ブロック長,ストリーム暗号,ECBモード,CBCモード,CTRモード 使い捨てパッドは無条件に安全だが,非実用的 ファイステル構造は,暗号化と復号が同じ構造(サブ鍵の順序が反対) AESは,コンペ方式による標準化で選定された 対称暗号を使いたいなら,AES
(復習)暗号系を図にすると 平文 平文 暗号化 暗号 化鍵 復号 鍵 復号 盗聴可能な 通信路 暗号文 暗号文
平文 平文 暗号文 暗号文 (復習)単一換字暗号は 暗号化 復号 暗号 化鍵 復号 鍵 abc... WYH... WYH...
平文 平文 暗号文 暗号文 使い捨てパッドは 暗号化 復号 暗号 化鍵 復号 鍵 11100 11100 10101 10101 01001
排他的論理和の性質 x y = y x x x = 0 x y y = x x = y ⇒ x z = y z z = x y ⇒ x = z y, y = x z xを平文,yを鍵とみなすと, この式は,使い捨てパッドにおける 暗号化と復号の関係を表す.
使い捨てパッドは解読可能? 既知平文攻撃や選択平文攻撃を用いれば,暗号化に使用したビット列を求めることができる. c = k m ⇒ k = c m しかしこれで求めた k は,(平文,暗号文)=(m,c)という暗号化の鍵としてしか使えない. k を知っても,それ以外の秘密通信の復号・解読には役に立たない
暗号化鍵 復号鍵 ビット列をどのようにして共有する? 事前にビット列を共有しておき,暗号化・復号のたびに,使用したビット列に線を引いて消す. 暗号化する側がビット列を生成し,暗号文と別のルートで秘密に送る. 10110101 11110010 01101011 10110101 11110010 01101011 暗号化鍵 復号鍵
ファイステル構造の数式表現(暗号化1) Li-1 ki Ri-1 f Li Ri Li = Ri-1 Ri = Li-1 f (ki , Ri-1)
ファイステル構造の数式表現(暗号化2) Li-1 ki Ri-1 f Li Ri Li = Li-1 f (ki , Ri-1) 最終ラウンド Li = Li-1 f (ki , Ri-1) Ri = Ri-1
Li-1 = Ri f (ki , Li ) = Ri f (ki , Ri-1) ファイステル構造の数式表現(復号1) Li Ri ki f Li-1 Ri-1 i 番目のラウンド(最終ラウンドでないとき) Ri-1 = Li Li-1 = Ri f (ki , Li ) = Ri f (ki , Ri-1) 最終ラウンドのときは各自考えること
AES(Advanced Encryption Standard) Rijndaelともいう ファイステル構造ではなくSPN構造を採用 NISTが公募して2000年に選定 安全性を評価したのは情報セキュリティの専門家 鍵長は128,192,256ビットから選べる ブロック長(平文・暗号文の長さ)は128ビット固定 特許などの制限がなく無料で利用可能 DESは「兵器」であり,かつて輸出規制があった
DESとAESに関わる組織と考案者 NSA NBS NIST Lucifer DES Rijndael AES IBM Daemen & 改組 米国 当局 修正 選定 選定 Lucifer DES Rijndael AES 暗号 方式 応募 応募 IBM (Feistel他) Daemen & Rijmen 考案者 http://h2np.net/bit/aes2/ http://www.jiten.com/dicmi/docs/d/2900s.htm http://www.itmedia.co.jp/anchordesk/articles/0409/28/news057.html NSA:米国安全保障局,National Security Agency NBS:米国商務省標準局,National Bureau of Standards NIST:米国国立標準技術研究所(綴りは教科書参照)
暗号アルゴリズム設計者の苦悩 暗号化や復号が高速にできると,解読も高速にできてしまうかもしれない. 処理速度が,暗号化<復号というアルゴリズムは? 圧縮ソフトウェアでは圧縮<伸張のことが多い. 暗号化<復号のアルゴリズムを考案すると,構造が複雑になり,思わぬところから欠陥が見つかるかもしれない.