870 likes | 1.17k Views
情報セキュリティ特論( 6 ). 黒澤 馨 (茨城大学) kurosawa@mx.ibaraki.ac.jp. RSA 暗号 素因数分解の困難さ ElGamal 暗号 離散対数問題の困難さ. RSA 暗号 素因数分解の困難さ ElGamal 暗号 離散対数問題の困難さ 答えは、 x=3. 離散対数問題. y=a x mod p (= 素数) となる x を求めよ、という問題。 p=1024 ビットのとき、 10 億年. mod 5 において. フェルマーの定理. 2 の位数は 4. mod 5 において.
E N D
情報セキュリティ特論(6) 黒澤 馨 (茨城大学) kurosawa@mx.ibaraki.ac.jp confidential
RSA暗号 素因数分解の困難さ • ElGamal暗号 離散対数問題の困難さ confidential
RSA暗号 素因数分解の困難さ • ElGamal暗号 離散対数問題の困難さ 答えは、x=3 confidential
離散対数問題 • y=ax mod p (=素数) となるxを求めよ、という問題。 • p=1024ビットのとき、10億年 confidential
mod 5 において フェルマーの定理 confidential
2の位数は4 • mod 5 において フェルマーの定理 4の位数は2 3の位数は4 confidential
2の位数は4: p-1(=4)を割り切る • mod 5 において 4の位数は2: p-1(=4)を割り切る 3の位数は4: p-1(=4)を割り切る confidential
aの位数 となる最小のn • 定理 任意の元aの位数は、p-1を割り切る。 confidential
Diffie-Hellmanの鍵共有法 • p = 大きな素数, q = p-1を割り切る大きな素数 g = 位数が大きな素数qの元 gq=1 mod p confidential
Diffie-Hellmanの鍵共有法 confidential
Diffie-Hellmanの鍵共有法 confidential
Diffie-Hellmanの鍵共有法 敵 盗聴 confidential
DH問題 1億年(DH仮定) 敵のゴール p, q, confidential
DLOG 10億年(離散対数仮定) 離散対数問題 DH問題 1億年(DH仮定) 離散対数問題との関係 ? confidential
(定理) DLOGを解くアルゴリズムAが存在するなら DHを解くアルゴリズムBが存在する (証明) B A confidential
(定理) DLOGを解くアルゴリズムAが存在するなら DHを解くアルゴリズムBが存在する (証明) B A confidential
PPT : Probabilistic Polynomial Time 確率的 多項式 時間 PPTアルゴリズム A 乱数テープ R confidential
PPTアルゴリズム A 乱数テープ R R Aがaを 出力 この面積 Pr(Aが解く) = 全面積 a confidential
離散対数仮定 確率ε以上でDLOGを解くような PPTアルゴリズムは存在しない • DH仮定 確率ε以上でDH問題を解くような PPTアルゴリズムは存在しない confidential
定理 • 離散対数仮定が成り立てば、 DH仮定が成り立つ。 confidential
ElGamal暗号 • 公開鍵: p= 大きな素数 q= p-1を割り切る大きな素数 g=位数がqとなる元 y (=gx mod p) • 秘密鍵: x confidential
ElGamal暗号 • 公開鍵: p, q, g, y(=gx mod p) • 秘密鍵: x • 平文: m • 暗号化: r ← zp-1 E(m)=(gr, myr) confidential
ElGamal暗号 • 公開鍵:p, q, g, y(=gx mod p) • 秘密鍵: x • 平文: m • 暗号化:E(m)=(gr, myr) • 復号: myr / (gr)x=m(gx)r/grx=m mod p confidential
敵への入力 • 公開鍵:p,q,g,y • 暗号文: (gr, m・yr) mod p confidential
巡回群 • <g>={1, g, g2, …, gq-1} は、 (生成元)gで生成される巡回群 confidential
DDH仮定 • (g, gr, y, yr) と (g, gr, y, z)は 多項式時間で区別できない。 • ただし、 zは<g> からランダムに選ばれた要素 confidential
DDH仮定より • 平文: m∈{1, g, g2, …, gq-1} とする。 • 暗号文: E(m) = (gr, myr) ~(gr, m z ) ただし、 zは<g>からランダムに選ばれた要素。 confidential
DDH仮定より • 平文: m∈{1, g, g2, …, gq-1} とする。 • 暗号文: E(m) = (gr, myr) ~(gr, m z ) ただし、 zは<g>からランダムに選ばれた要素。 mz=m×乱数 → one-time pad confidential
DDH仮定より • 平文: m∈{1, g, g2, …, gq-1} とする。 • 暗号文: E(m) = (gr, myr) ~(gr, m z ) ただし、 zは<g>からランダムに選ばれた要素。 mz=m×乱数 → one-time pad mに関する情報は、もれていない confidential
ElGamal暗号の安全性 • DDH仮定の下、 • 平文mに関する情報は、何ももれていない。 confidential
A B なりすまし攻撃 オレオレ confidential
A B Aの公開鍵 v (=g-s mod p) s s v =g-s mod p をチェック confidential
A B C Bが、なりすませてしまう s s s オレはAだ confidential
A B Schnorrの認証法 v =g-s mod p s r←ランダム x=gr mod p x c c←ランダム y=r+sc mod q y gy=gr+sc=gr(gs)c=xv-c x =gyvc mod p confidential
A B Schnorrの認証法 v =g-s mod p s r←ランダム x=gr mod p x c c←ランダム y=r+sc mod q y x =gyvc mod p をチェック confidential
零知識性 • Bには、sに関する情報が一切漏れていない。 confidential
零知識性 • Bには、sに関する情報が一切漏れていない if Bは、自分自身で通信系列(x,c,y)を 生成できる。 confidential
定理 • Bは、自分自身で通信系列(x,c,y)を 生成できる。 confidential
A B 証明 v =g-s mod p s r←ランダム x=gr mod p x c c←ランダム y=r+sc mod q y x =gyvc mod p をチェック confidential
B B 証明 x 1. c←ランダム c 2. y←ランダム y 3. x =gyvc mod p confidential
B B 証明 4. x 1. c←ランダム c 2. y←ランダム y 3. x =gyvc mod p confidential
健全性 • Bをacceptさせられるなら、Aはsを知っている。 confidential
健全性 • Bをacceptさせられるなら、Aはsを知っている。 • Aをサブルーチンとして使って、sを求めることができる confidential
定理 • AがBをacceptさせられる • Aをサブルーチンとして使って、 sを求めることができる confidential
A B 証明 x c c←ランダム y x =gyvc mod p confidential
A B Aを初期状態にリセット confidential
A B もう一度、Aを走らせる x confidential
A B 証明 x c’ c’←ランダム confidential
A B 証明 x c’ c’←ランダム y’ x =gy’vc’ mod p confidential
A B 証明 x c, c’ x =gyvc mod p y, y’ x =gy’vc’ mod p confidential