情報セキュリティ特論(1) 黒澤 馨 (茨城大学) [email protected] 2015/9/30 confidential 1 教科書・参考書 現代暗号への招待: 黒澤 馨 (著), サイエンス社 現代暗号の基礎数理 黒澤馨、尾形わかは(著) 電子情報通信学会編(コロナ社) 2015/9/30 confidential 2 講義内容 • 暗号の歴史 • 確率 • メッセージ認証コード 2015/9/30 confidential 3 暗号の歴史 • シーザー暗号から公開鍵暗号まで 2015/9/30 confidential 4 暗号 •従来: 軍事・外交 •現在: ビジネス、個人のプライバシ 2015/9/30 confidential 5 シーザー暗号(1) •(平文) H A L ↓ ↓ ↓ •(暗号文) I B M 2015/9/30 confidential 6 シーザー暗号(2) •アルゴリズム 何文字かずらすという手順 •鍵 ずらす文字数 2015/9/30 confidential 7 外交と暗号 •ワシントン軍縮交渉(1921年) 軍艦保有数の英米と日本の比率 •日本の主張 10:7 •譲歩の用意 10:6 (暗号解読で知られていた) 2015/9/30 confidential 8 紫暗号(旧海軍) •解読するのは至難のわざ •米の天才フリードマンらが成功 ミッドウェイ海戦に圧勝 山本五十六大将の戦死 2015/9/30 confidential 9 エニグマ暗号(ドイツ) •解読するのは至難のわざ •英の天才チューリングらが成功 Uボートの被害減少 2015/9/30 confidential 10 天才チューリング •チューリング賞 •チューリング機械 計算可能とは何か 2015/9/30 confidential 11 世界初のコンピュータ •コロッサス(英、1943年) エニグマ暗号の解読 •戦後、処分 設計図も焼却処分 厳重な緘口令 2015/9/30 confidential 12 栄誉はエニアックへ •1945年 米ペンシルバニア大学の エッカートとモークリー •18,000本の真空管 •毎秒5,000回の計算 2015/9/30 confidential 13 アメリカでは •ウィーナー 砲弾を命中させるために 計算機の製作を言上 •ノイマン プログラム内蔵を提唱 •シャノン 情報理論 2015/9/30 confidential 14 発熱しない真空管を作れ •1947年 トランジスタ ブラッテン バーディン ショックレー •1954年 パラメトロン 後藤英一 2015/9/30 confidential 15 戦後の暗号 •計算機を利用した解読 •計算機を利用した製作 •計算機を所有していたのは 政府機関と軍関係のみ 2015/9/30 confidential 16 1960年代 •計算機の性能向上 •一般企業も所有し、 •暗号を送金や商取引に 2015/9/30 •標準化の要望 confidential 17 DES暗号 •1976年 米国標準暗号に制定 2015/9/30 •アルゴリズムは公開 鍵のみ秘密 平文=64ビット 暗号文=64ビット 鍵長=56ビット confidential 18 Deep Crack •1999年 DES暗号を22時間で破る •製作費用 わずか25万ドル 2015/9/30 confidential 19 AES暗号 •次期暗号をコンテストで募る •Rijndaelに決定(2001年) 平文 128ビット 暗号文 128ビット 鍵長 128、194、256ビット 2015/9/30 confidential 20 共通鍵暗号の弱点 •送信者と受信者が鍵を共有 •どうやって鍵を配送するか ? スーツケースに入れて運ぶ 手間と費用が大変 2015/9/30 confidential 21 公開鍵暗号の登場 •暗号化鍵pkを公開 !! •復号鍵skのみを秘密 •ただし、 pkからskを求めることは困難 2015/9/30 confidential 22 DHとRSA •1976年 Diffie and Hellman が概念 •1977年 RSA暗号 2015/9/30 confidential 23 英のGCHQ •実は、1975年以前に 公開鍵暗号 •秘密厳守 •特許もとらず 2015/9/30 confidential 24 代表的な公開鍵暗号 • RSA暗号 N=pqの素因数分解の困難さを利用 • ElGamal暗号 有限巡回群上の離散対数問題を利用 2015/9/30 confidential 25 現代暗号理論 •デジタル署名 •電子選挙 •電子現金 •放送型暗号系 •零知識証明などなど 計算機科学の一大分野に成長 2015/9/30 confidential 26 講義内容 • 暗号の歴史 • 確率 教科書、2章p.8~ • メッセージ認証コード 2015/9/30 confidential 27 確率とは • さいころを考える Pr(1) Pr(2) ・・・・・・・・・ Pr(6) | 1 6 標本空間 U ={1,2,・・・,6} 確率分布 確率関数 1 Pr(1)=Pr(2)=・・・= 6 さいころ 1 2015/9/30 2 3 4 5 6 confidential 28 確率とは • さいころを考える Pr(1) Pr(2) ・・・・・・・・・ Pr(6) | 1 6 標本空間 U ={1,2,・・・,6} 確率分布 確率関数 1 Pr(1)=Pr(2)=・・・= 6 さいころ 1 2015/9/30 2 3 4 5 6 confidential (1) i = 1,・・・,6に対し Pr(i)≧0 (2) Pr(1)+・・・+Pr(6) = 1 29 • 定義1 以下の性質が成り立つとき、 (標本空間 U、確率関数Pr)の組を 確率分布と呼ぶ (1) 各 u∈ U に対し、 Pr(u)≧0 (2) Σu Pr(u) = 1 2015/9/30 confidential 30 • |U| = 集合Uの要素数 • たとえば、 U = { 1, 2, ・・・ , 6 } のとき、|U| = 6 • 定義2 各 u∈ U に対し、 1 Pr(u) = U が成り立つ確率分布を一様分布という 2015/9/30 confidential 31 | 1 6 1 1 1 Pr(A) = + = 6 6 3 1 2015/9/30 2 3 4 5 6 confidential 32 | 1 6 1 1 1 Pr(A) = + = 6 6 3 1 2 3 4 5 6 事象A 2015/9/30 confidential 33 | 1 6 1 1 1 Pr(A) = + = 6 6 3 1 2 3 4 5 6 事象A • 定義3 標本空間Uの部分集合Aを事象と呼び、 Pr(A) = Pr(μ) と定義する。 μ A 2015/9/30 confidential 34 1 2 Pr(A) = 1 - = 3 3 | 1 6 1 1 1 Pr(A) = + = 6 6 3 1 2 事象A 3 4 5 6 余事象A • 定義3 標本空間Uの部分集合Aを事象と呼び、 Pr(A) = Pr(μ) μ A と定義する。 事象Aの補集合Aは余事象と呼ばれ、 Pr(A) = 1 – Pr(A) 2015/9/30 confidential 35 A B A∩B A∪B 2つの部分集合、A,B U⊆ に対し |A∪B| = |A| + |B| - |A∩B| 2015/9/30 confidential 36 A B A∩B A∪B 2つの部分集合、A,B ⊆ U に対し |A∪B| = |A| + |B| - |A∩B| 確率においても、同様に Pr(A∪B) = Pr(A) + Pr(B) - Pr(A∩B) ≦ Pr(A) + Pr(B) 2015/9/30 confidential 37 • (例) コインを2枚投げる 2枚目 H T H HH HT T TH TT 1枚目 H=表 T=裏 標本空間 U Pr(HH)=Pr(HT)=Pr(TH)=Pr(TT)=1/4 2015/9/30 confidential 38 • (例) コインを2枚投げる 2枚目 H T H HH HT T TH TT 1枚目 H=表 T=裏 標本空間 U 少なくとも一回は表が出る 事象A A = { HH,HT,TH }, Pr(A) = ¼ + ¼ + ¼ = ¾ 2015/9/30 confidential 39 • (例) コインを2枚投げる 2枚目 H T H HH HT T TH TT 1枚目 H=表 T=裏 標本空間 U 少なくとも一回は表が出る 事象A A = { HH,HT,TH } 余事象A A = { TT }, 2015/9/30 confidential 40 条件付確率 Pr(μ) • Pr(μ| B) = if μ∈B ① Pr(B) • Pr(μ| B) = 0 if μ B ② 事象A ⊆ U の条件付確率 Pr(A|B) = Pr(μ|B) μ A Pr(A∩B) = ③ Pr(B) ⇒ Pr(A∩B) = Pr(A|B) ・ Pr(B) 2015/9/30 confidential 41 B1 B2 ・・・・・・・・ Bn U= A • 標本空間 U がn個の事象 B1,B2,・・・,Bnに分割されていると仮定する。 すると、任意の事象Aに対し n n Pr(A) = Pr(A∩B ) = Pr(A|Bi)・Pr(Bi) i i 1 i 1 2015/9/30 confidential 42 B1 B2 ・・・・・・・・ U= Bn A Pr(B1 | A) = Pr(A∩B1) / Pr(A) 分子 = Pr(A | B1) ・Pr(B1) 分母 = ΣPr(A | Bi)・Pr(Bi) = Pr(A | B1) ・Pr(B1) / ΣPr(A | Bi)・Pr(Bi) 2015/9/30 confidential 43 B1 B2 ・・・・・・・・ U= Bn A ベイズの定理 Pr(B1 | A) = Pr(A | B1) ・Pr(B1) / ΣPr(A | Bi)・Pr(Bi) 2015/9/30 confidential 44 講義内容 • 暗号の歴史 • 確率 • メッセージ認証コード 教科書, p.12~ 2015/9/30 confidential 45 なりすまし攻撃 好き アリス ボブ 敵 2015/9/30 confidential 46 改ざん攻撃 アリス きらい 好き ボブ 敵 2015/9/30 confidential 47 メッセージ認証 平文 アリス 鍵 K 認証子 (好き,Tag) 敵 2015/9/30 ボブ 鍵 K ・なりすまし攻撃 ・改ざん攻撃 confidential 48 方式 • • • • p=大きな素数 鍵 K=(a,b) ← {0, 1, …, p-1} 平文 m ∈ {0, 1, …, p-1} Tag=a・m+b mod p 2015/9/30 confidential 49 送信者のアルゴリズム • 平文 m ∈ {0, 1, …, p-1} • 鍵 K=(a,b) ← {0, 1, …, p-1} • アリスは、 Tag =a・m+b mod p を計算し、(m,Tag)をボブに送る。 2015/9/30 confidential 50 受信者のアルゴリズム • 平文 m ∈ {0, 1, …, p-1} • 鍵 K=(a,b) ← {0, 1, …, p-1} • (m,Tag)を受け取ったボブは、 Tag=a・m+b mod p • が成り立てばaccept 2015/9/30 confidential 51 メッセージ認証 平文 アリス 鍵 K 認証子 (m,Tag) ボブ 鍵 K = (a,b) = (a,b) 敵 • p=素数 • 鍵 a,b ← {0,1,2,・・・,p-1} からランダムに選 • 平文 m ∈ {0,1,2,・・・,p-1} 2015/9/30 confidential 52 メッセージ認証 平文 アリス 鍵 K 認証子 (m,Tag) ボブ 鍵 K = (a,b) = (a,b) 敵 Tag = a m + b mod p pは素数 • 鍵 a,b ← {0,1,2,・・・,p-1} からランダムに選ぶ 平文 m ∈ {0,1,2,・・・,p-1} 2015/9/30 confidential 53 定理 • 本方式においては、 Pr(なりすまし成功) = 1/p Pr(改ざん成功) = 1/p 2015/9/30 confidential 54 なりすまし攻撃 m, Tag アリス ボブ K=(a,b) 敵 ボブ accepts if Tag=a×m+b mod p 2015/9/30 confidential 55 なりすまし確率 (m, Tag)=固定 アリス ボブ 敵 K=(a,b):ランダム Pr(ボブ accepts) = Pr(Tag=a×m+b mod p となる鍵(a,b)を持っている) 2015/9/30 confidential 56 なりすまし攻撃 b a 0 1 2 ・ ・ ・ p-1 0 1 2 ・・・ p-1 (0,0) (0,1) (0,2) ・・・ (0,p-1) (1,0) ・ ・ (2,0) ・ A ・ ・ ・ ・ ・ ・ (p-1,0) ・・・・・・・・・ (p-1,p-1) 標本空間 U Tag = a m + b mod p となる(a,b)の集合A 2015/9/30 confidential 57 b a 0 1 2 ・ ・ ・ p-1 0 1 2 ・・・ p-1 (0,0) (0,1) (0,2) ・・・ (0,p-1) (1,0) ・ ・ (2,0) ・ A ・ ・ ・ ・ ・ ・ (p-1,0) ・・・・・・・・・ (p-1,p-1) 標本空間 U A = ボブがだまされるという事象 = (Tag = a m + b mod p ) が成り立つ事象 固定 2015/9/30 confidential 58 b a 0 1 2 ・ ・ ・ p-1 0 1 2 ・・・ p-1 (0,0) (0,1) (0,2) ・・・ (0,p-1) (1,0) ・ ・ Tag=am+b (2,0) ・ ・ ・ mod p ・ ・ ・ ・ (p-1,0) ・・・・・・・・・ (p-1,p-1) 標本空間 U この面積 Pr(A) = 全面積 2015/9/30 confidential 59 b a 0 1 2 ・ ・ ・ p-1 0 1 2 ・・・ p-1 (0,0) (0,1) (0,2) ・・・ (0,p-1) (1,0) ・ ・ Tag=am+b (2,0) ・ ・ ・ mod p ・ ・ ・ ・ (p-1,0) ・・・・・・・・・ (p-1,p-1) 標本空間 U この面積 Pr(A) = 全面積 この式が成り立つ(a,b)の個数 = (a,b)の総数 2015/9/30 confidential 60 b a 0 1 2 ・ ・ ・ p-1 0 1 2 ・・・ p-1 (0,0) (0,1) (0,2) ・・・ (0,p-1) (1,0) ・ ・ Tag=am+b (2,0) ・ ・ ・ mod p ・ ・ ・ ・ (p-1,0) ・・・・・・・・・ (p-1,p-1) 標本空間 U この式が成り立つ(a,b)の個数 Pr(A) = (a,b)の総数 = p2 2015/9/30 confidential 61 b a 0 1 2 ・ ・ ・ p-1 0 1 2 ・・・ p-1 (0,0) (0,1) (0,2) ・・・ (0,p-1) (1,0) ・ ・ Tag=am+b (2,0) ・ ・ ・ mod p ・ ・ ・ ・ (p-1,0) ・・・・・・・・・ (p-1,p-1) 分子: aを決めると、 bが決まる。 この式が成り立つ(a,b)の個数 Pr(A) = (a,b)の総数 = p2 a = 0 → b = tag a = 1 → b = tag - m ・ ・ ・ p個 a = p-1 → b = tag - (p-1)m 2015/9/30 confidential 62 b a 0 1 2 ・ ・ ・ p-1 0 1 2 ・・・ p-1 (0,0) (0,1) (0,2) ・・・ (0,p-1) (1,0) ・ ・ Tag=am+b (2,0) ・ ・ ・ mod p ・ ・ ・ ・ (p-1,0) ・・・・・・・・・ (p-1,p-1) 標本空間 U この式が成り立つ(a,b)の個数 Pr(A) = (a,b)の総数 p a = 0 → b = tag = p2 a = 1 → b = tag - m 1 = p 2015/9/30 ・ ・ ・ p個 a = p-1 → b = tag - (p-1)m confidential 63 • • ∀x ,P(x) 全てのx 各x 任意のx For any x ∀x ,∀y,P(x,y) 全ての(x,y) 各(x,y) 任意の(x,y) • に対し、P(x)が成り立つ ∀m, ∀Tag, 2015/9/30 に対し、P(x,y)が成り立つ Pr(なりすまし攻撃でボブが騙される) = confidential 1 p 64 改ざん攻撃 アリス 鍵 K (m,Tag) (m’,Tag’) = m’ ≠ m ボブ 鍵 K = (a,b) (a,b) 敵 2015/9/30 confidential 65 改ざん攻撃 アリス 鍵 K (m,Tag) (m’,Tag’) = 事象A m’ ≠ m ボブ 鍵 K = (a,b) (a,b) 敵 2015/9/30 confidential if accept = 事象B 66 改ざん攻撃 任意に固定 アリス 鍵 K (m,Tag) (m’,Tag’) = 事象A ボブ 鍵 K = (a,b) (a,b) 敵 2015/9/30 confidential if accept = 事象B 67 • 事象A = {(a,b)| Tag = a・m + b mod p } • 事象B = {(a,b)| Tag’ = a・m’ + b mod p } • ∀m, ∀Tag, ∀m’(≠m), ∀Tag’ Pr(ボブが騙される) Pr(A∩B) = Pr(B|A) = Pr(A) = 2015/9/30 事象A,Bが成り立つ(a,b)の数 事象Aが成り立つ(a,b)の数 confidential = 1 p 68 方式 • 平文 m ∈ {0, 1, …, p-1} • 鍵 (a,b) ← {0, 1, …, p-1} • アリスは、 Tag=a・m+b mod p を計算し、(m,Tag)をボブに送る。 • ボブは、 Tag=a・m+b mod p • が成り立てばaccept 2015/9/30 confidential 69 定理 • 本方式においては、 Pr(なりすまし成功)=1/p Pr(改ざん成功)=1/p 2015/9/30 confidential 70 長いメッセージの場合 • 平文 m1, m2 ∈ {0, 1, …, p-1} • 鍵 (a, b, c) ← {0, 1, …, p-1} • Tag=a・m1+b・m2+c mod p 2015/9/30 confidential 71 演習(1) • この方式においても、 Pr(なりすまし成功)=1/p Pr(改ざん成功)=1/p が成り立つことを証明せよ。 2015/9/30 confidential 72 演習(2) 以下の方式の Pr(なりすまし成功)、Pr(改ざん成功) を求めよ。 • 平文 m1, m2 ∈ {0, 1, …, p-1} • 鍵 (a, c) ← {0, 1, …, p-1} • Tag=a・m1+a2・m2+c mod p 2015/9/30 confidential 73
© Copyright 2024 ExpyDoc