q q 情報セキュリティ 第4回:2007年5月11日(金) q q 本日学ぶこと 使い捨てパッド DES (Data Encryption Standard) AES (Advanced Encryption Standard) ブロック暗号のモード 使い捨てパッドは無条件に安全だが,非実用的 対称暗号成功の秘訣は,排他的論理和() DESのファイステル構造は,暗号化と復号が同じ構造 AESは,コンペ方式による標準化で選定された 対称暗号を使いたいなら,AES 2 (復習)暗号系 平文 暗号化 平文 暗号 化鍵 復号 鍵 復号 盗聴可能な 通信路 暗号文 暗号文 3 (復習)単一換字暗号 平文 平文 abc... WYH... 暗号化 暗号 化鍵 復号 鍵 復号 WYH... abc... 暗号文 暗号文 4 使い捨てパッド 平文 10101 暗号 化鍵 復号 10101 鍵 暗号文 復号 01001 01001 暗号化 11100 11100 平文 01001 暗号文 5 使い捨てパッドの暗号アルゴリズム 平文: M = m1m2m3… 鍵: K = k1k2k3… 暗号化: C = c1c2c3… ただし,ci = ki mi q ビット単位で,鍵と平文の排他的論理和を求める. 復号:M' = m'1m'2m'3 … ただし, m'i = ki ci = ki (ki mi) = ki ki mi = (ki ki) mi = 0 mi = mi q 送受信者の間で 共有しておく. mi, ki, ci, m'iは 1ビット ビット単位で,鍵と暗号文の排他的論理和を求める. Vernamによって1917年に考案され,特許になった. 「バーナム暗号」とも呼ばれる. 6 排他的論理和の性質 xy=yx xx=0 x y xy 1 1 0 0 1 1 1 0 1 0 0 0 排他的論理和の 真理値表 xを平文,yを鍵とみなすと, この式は,使い捨てパッドにおける 暗号化と復号の関係を表す. xyy=x x=y ⇒ xz=yz z = x y ⇒ x = z y, y = x z 7 使い捨てパッドは解読不可能 暗号文のみでは,同じ長さの任意のビット列が平文の候補と なり,そこから平文を特定できない. q 無条件に安全であり,情報理論的に解読不可能 (比較)実用化されている暗号アルゴリズムは,計算量的に解 読不可能 既知平文攻撃や選択平文攻撃を用いれば,暗号化に使用し たビット列を求めることができる. q c = k m ⇒ k = c m しかしこれで求めた k は,(平文,暗号文)=(m,c)という暗号化 の鍵としてしか使えない. q k を知っても,それ以外の秘密通信の復号・解読には役に立た ない. 8 鍵をどのようにして共有する? 事前にビット列を共有しておき,暗号化・復号のたびに,使用 したビット列に線を引いて消す. 10110101 11110010 01101011 10110101 11110010 01101011 暗号化する側がビット列を生成し,暗号文と別のルートで秘 密に送る. 暗号化鍵 復号鍵 9 使い捨てパッドは非現実的 平文と同じ長さの鍵が必要 q 鍵の共有(配送)が難しい q 秘密の通信路があるのなら,そこにメッセージを送れば? 鍵は「使い捨て」でなければならない q 平文が1GBなら,鍵も1GB 再利用すると,過去の通信内容が復号できてしまう. 鍵は真の乱数であり,かつ共有しなければならない q 計算機が生成できるのは,擬似乱数か,再現性のない(物理ノ イズによる)乱数のいずれか. 10 使い捨てパッドから学ぶこと 排他的論理和は,「2度適用すると,元に戻る」ので,暗号化 や復号の処理に適している. q ストリーム暗号 暗号 化鍵 擬似乱数 平文 q 暗号文 DES,AESなどの対称暗号でも活用 11 現代の対称暗号 DES (Data Encryption Standard) q q q q 1977年に連邦情報処理標準規格に採用された対称暗号 鍵長64bit,ブロック長64bit ファイステル構造により安全性を高める 「兵器」とみなされ,かつて輸出規制があった AES (Advanced Encryption Standard) q q q q q Rijndaelともいう NISTが公募して2000年に選定された対称暗号 鍵長128/192/256 bit,ブロック長128bit SPN構造により安全性と処理効率を実現 特許などの制限がなく無料で利用可能 12 DESとAESに関わる組織と考案者 NSA NBS 選定 修正 Lucifer 応募 IBM (Feistel他) 改組 DES NIST 米国 当局 選定 Rijndael AES 暗号 方式 応募 Daemen & Rijmen 考案者 NSA:米国安全保障局,National Security Agency NBS:米国商務省標準局,National Bureau of Standards NIST:米国国立標準技術研究所 13 DESの概要 暗号化 平文 鍵 転置 復号 暗号文 転置 ラウンド1 サブ鍵1 ラウンド2 サブ鍵2 ラウンド16 サブ鍵16 ラウンド16 ラウンド2 ラウンド1 転置 転置 暗号文 平文 14 ファイステル構造(暗号化1) Li-1 ki Ri-1 f Li Ri i 番目のラウンド(DESでは1≦i<16) q q Li = Ri-1 Ri = Li-1 f (ki , Ri-1) 15 ファイステル構造(暗号化2) Li-1 ki Ri-1 f Li Ri 最終ラウンド(DESではi=16) q q Li = Li-1 f (ki , Ri-1) Ri = Ri-1 16 ファイステル構造(復号1) Li Ri ki f Li-1 Ri-1 i 番目のラウンド(DESでは1≦i<16) q q Ri-1 = Li Li-1 = Ri f (ki , Li ) = Ri f (ki , Ri-1) 17 DESとAESの安全性は? DES q q q q 70~80年代は安全な対称暗号として使用されていた. 1993年,線形解読法が提案される. 1999年には22時間で解読(鍵発見). 現在では使用は推奨されない. AES q q q コンペ方式による標準化(専門家らによる十分な期間の検証) により安全性が認められた. 数学的構造を持つ(数式で記述できる)ことが安全性を脅かす かもしれない(ただし現時点で具体的な攻撃方法はない). ラウンド数が少ない場合の解読の試みがなされている. 18 トリプルDES (3DES) DES-EDE3 q q 暗号アルゴリズムは,「鍵1でDES暗号化」して,「鍵2でDES復 号」して,「鍵3でDES暗号化」 鍵長は56×3=168bit(鍵空間は2168),ブロック長は64bit DES-EDE2 q q 長さは3倍だが,空間は3倍 よりもうんと大きい 暗号アルゴリズムは,「鍵1でDES暗号化」して,「鍵2でDES復 号」して,「鍵1でDES暗号化」 鍵長は56×2=112bit,ブロック長は64bit 19 暗号アルゴリズム設計者の苦悩 暗号化や復号が高速にできると,解読も高速にできてしまう かもしれない. 処理速度が,暗号化<復号というアルゴリズムは? q q 圧縮ソフトウェアでは圧縮<伸張のことが多い. 暗号化<復号のアルゴリズムを考案すると,構造が複雑になり, 思わぬところから欠陥が見つかるかもしれない. 20 ブロック暗号のモード 平文・暗号文のブロック化 q q ブロック長のサイズで分割して,暗号アルゴリズムを適用する ブロック長に満たなければ,詰め物を加える(パディング) 複数ブロックの暗号化の方法 q q ECB (Electric CodeBook)モード…安全でない Ci = E(K, Mi) CBC (Cipher Block Chaining)モード…安全 Ci = E(K, (Ci-1 Mi)) C0は初期ベクトル(盗聴されてもよい) CTR (CounTeR)モード…安全 Ci = E(K, CTR + i) Mi CTRは乱数(盗聴されてもよい) q Ci, Mi, CTRは 1ブロック 21 ECBモードはなぜ安全でないか ECBモードのブロック暗号を盗聴していて,過去とまったく 同じ(暗号化された)ブロックがくれば,この二つのブロック の平文は同じだと分かる. 1パスワード=1ブロックで暗号化して管理しているとき, 暗号化ブロックを置き換えることで,他人のパスワードを改 ざんし,成りすまして認証を受けることができてしまう. 22
© Copyright 2025 ExpyDoc