Presentation is loading. Please wait.

Presentation is loading. Please wait.

黒澤 馨 (茨城大学) kurosawa@mx.ibaraki.ac.jp 情報セキュリティ特論(5) 黒澤 馨 (茨城大学) kurosawa@mx.ibaraki.ac.jp.

Similar presentations


Presentation on theme: "黒澤 馨 (茨城大学) kurosawa@mx.ibaraki.ac.jp 情報セキュリティ特論(5) 黒澤 馨 (茨城大学) kurosawa@mx.ibaraki.ac.jp."— Presentation transcript:

1 黒澤 馨 (茨城大学) kurosawa@mx.ibaraki.ac.jp
情報セキュリティ特論(5) 黒澤 馨 (茨城大学)

2 演習 (2) p=11, q=17, e=3 gcd((p-1)(q-1), e)の値を求めよ。 公開鍵pk、秘密鍵skを求めよ。
演習 (2)  p=11, q=17, e=3 gcd((p-1)(q-1), e)の値を求めよ。 公開鍵pk、秘密鍵skを求めよ。 平文m=7に対する暗号文Cを求めよ。 上記のCを復号せよ。 2018/11/11 confidential

3 演習 (2) p=11, q=17, e=3 の場合 (p-1)(q-1)=10×16=160 ユークリッドの互除法より、
演習 (2)  p=11, q=17, e=3 の場合 (p-1)(q-1)=10×16=160 ユークリッドの互除法より、  gcd((p-1)(q-1), e) = gcd(160, 3) = 1 2018/11/11 confidential

4 演習 (2) p=11, q=17, e=3 の場合 (p-1)(q-1)=10×16=160 ユークリッドの互除法より、
演習 (2)  p=11, q=17, e=3 の場合 (p-1)(q-1)=10×16=160 ユークリッドの互除法より、 gcd((p-1)(q-1),3)=gcd(160, 3)=1 拡張ユークリッドの互除法より、 3×107=1 mod 160 2018/11/11 confidential

5 演習 (2) p=11, q=17, e=3 の場合 N=pq=187 公開鍵 pk=(N,e)=(187,3) 秘密鍵 d=107
演習 (2)  p=11, q=17, e=3 の場合 N=pq=187 公開鍵 pk=(N,e)=(187,3) 秘密鍵 d=107 2018/11/11 confidential

6 演習 (2) 公開鍵 pk=(N,e)=(187,3) 平文 m=7 暗号文 C= me mod N = 73 mod 187 = 156
演習 (2)  公開鍵 pk=(N,e)=(187,3) 平文 m=7 暗号文 C= me mod N = 73 mod 187 = 156 2018/11/11 confidential

7 演習 (2) 公開鍵 pk=(N,e)=(187,3) 秘密鍵 d=107 暗号文 C=156 復号 m= Cd mod N
演習 (2)  公開鍵 pk=(N,e)=(187,3) 秘密鍵 d=107 暗号文 C=156 復号  m= Cd mod N = mod 187 = 7 2018/11/11 confidential

8 ハッシュ関数 長いメッセージ m ハッシュ関数 短い H(m) SHA-1の場合、 160ビット

9 衝突ペア H(m)=H(m’) となる (m,m’) ただし、m≠m’

10 衝突困難なハッシュ関数 衝突ペア(m,m’)を求めることが困難な ハッシュ関数 H

11 鳩ノ巣原理 鳩:n+1羽 巣:n個 2羽以上の鳩が入る巣が、  少なくとも1つは存在する。

12 系1 366人集まると、誕生日が一致するペアが  必ず存在する。

13 系2 H(m)= k ビットのとき、   Hを 2k+1 回計算すると、 必ず衝突ペアが求まる。

14 証明 m=鳩 H(m)=巣:2k個 m1 0…0 m_2k 1…1 m_{2k+1}

15 バースディ・パラドックス √365=19人集まっただけで、  Pr[誕生日が一致するペアが存在]≧0.3

16 定理 q=√n個のボールを n個のバケツに投げ入れたとき、  Pr[2個以上のボールが         同じバケツに入る]≧0.3

17 q個のボール バケツ バケツ バケツ n

18 考え方 Pr[①、②が同じバケツに入る]=1/n Pr[②、③が同じバケツに入る]=1/n … Pr(衝突)~(1/n) ×qC2
= (1/n) ×q(q-1)/2 ~ (1/n) ×q2/2 q=√nのとき、Pr(衝突)~1/2=0.5

19 定理 q=√n個のボールを n個のバケツに投げ入れたとき、  Pr[2個以上のボールが         同じバケツに入る]≧0.3

20 系3 H(m)= k ビットのとき、   Hを √2k=2k/2 回計算すると、 0.3以上の確率で、衝突ペアが求まる。

21 SHA-1 米国標準のハッシュ関数 H(m)=160ビット Hを2160/2= 280回計算すると、 0.3以上の確率で衝突ペアが求まる。
しかし、 280回=1億年

22 基本圧縮関数 512ビット f 160ビット 160ビット

23 メッセージのPadding m || 0…0 (512ビットの倍数) = x1 || x2 || … xB ||
M=x1 || x2 || … ||xB || L(=mのビット長) ただし、各|xi|=512ビット

24 Merkle-Damgard 変換 L x1 f f ハッシュ値 H(m) hB IV=0…0 h1

25 定理 fが衝突困難なら、Hも衝突困難

26 証明 H(m)=H(m’)となる(m,m’)が見つかったと仮定 |m|≠|m’|の場合

27 |m|≠|m’|の場合 f f H(m)=H(m’)なので、f(|m|, hB)=f(|m’|, hB’)
X B+1‘= |m’| xB+1= |m| f f H(m’) = f (|m’|, hB‘) H(m) = f (|m|, hB) hB hB‘ H(m)=H(m’)なので、f(|m|, hB)=f(|m’|, hB’) いま、|m|≠|m’|なので、fの衝突ペアが求まった。

28 |m|=|m’|の場合 f f H(m)=H(m’)なので、f(|m|, hB)=f(|m’|, hB’)
X B+1‘=|m’| xB+1=|m| f f H(m’) = f (|m’|,hB‘) H(m) = f (|m|,hB) hB hB‘ H(m)=H(m’)なので、f(|m|, hB)=f(|m’|, hB’) hB≠hB’なら、fの衝突ペアが求まった。

29 hB=hB’の場合 f f hB=hB’なので、f(xB, hB-1)=f(xB’, hB-1’)
いま、 (xB, hB-1)≠(xB’, hB-1’)なら、     fの衝突ペアが求まった。

30 m≠m’なので、 (x1, …, xB)≠(x1’, …, xB’) よって、 どこかで fの衝突ペアが求まる。                      (証明終)

31 RSA暗号 公開鍵:N(=p・q)、e 秘密鍵:d s.t. ed = 1 mod (p-1)(q-1) (1) 平文: M ∈ ZN
暗号文: 復号:

32 ディジタル署名 公開鍵:N(=p・q)、e 秘密鍵:d 平文:  M 署名文:     dを知っている人しか計算できない

33 ディジタル署名 公開鍵:N(=p・q)、e 秘密鍵:d 平文:  M 署名文: 検査:

34 デジタル署名 署名文σは、   秘密鍵dを知っている人しか計算できない。 (m, σ)の正当性は、 公開鍵(N,e)を使って誰でも検査できる。

35 敵の攻撃法 公開鍵only攻撃 既知平文攻撃 Non-adaptive 選択平文攻撃 Adaptive 選択平文攻撃
平文の代わりにメッセージという場合もあり。

36 公開鍵only攻撃 N(=p・q)、e (m*、σ*)

37 Hが無い場合(1) 公開鍵only攻撃 検査式は、σe=m mod N (1) σをランダムに選ぶ。 (2) m=σe mod Nとする。

38 既知平文攻撃 N(=p・q)、e 署名 オラクル m1、m2、... σ1、σ2、... (m*、σ*)

39 Non-adaptive 選択平文攻撃 N(=p・q)、e m1、m2、... 署名 オラクル σ1、σ2、... (m*、σ*)

40 Hが無い場合(2) σ=md mod N N(=p・q)、e 敵 (m, σ’/r=md) 署名 オラクル σ’=(rem)d
m’=rem mod N 署名 オラクル σ’=(rem)d =(re)dmd =r md (m, σ’/r=md)

41 Adaptive 選択平文攻撃 N(=p・q)、e m1 署名 オラクル σ1 (m*、σ*)

42 敵は、σ1に基づいてm2を選ぶ。 N(=p・q)、e m2 署名 オラクル σ2 (m*、σ*)

43 敵は、σ1,σ2基づいてm3を選ぶ。 N(=p・q)、e m3 署名 オラクル σ3 (m*、σ*)

44 望ましい署名方式 Adaptive選択平文攻撃に対しても、偽造が不可能な署名方式

45 ランダムオラクルモデル ハッシュ関数Hを理想化したモデル ランダムオラクル H H(x) ← 乱数 x 各参加者

46 選択平文攻撃 in the ランダムオラクルモデル
N(=p・q)、e m’1、m’2、... m1、m2、... H H(m)←乱数 署名 オラクル σ’1、σ’2、... σ1、σ2、...

47 RSA問題 N,e,y(=xe mod N)から、xを求めよ。 RSA仮定 RSA問題を解く多項式時間アルゴリズムは存在しない。

48 定理 RSA署名方式は、adaptive選択平文攻撃に対しても偽造が不可能  under RSA仮定  in the ランダムオラクルモデル。

49 証明 Adaptive 選択平文攻撃によって 偽造に成功する敵のプログラムAが 存在したと仮定すると、 RSA問題を解けるアルゴリズムBを
  構成できることを示す。

50 B N(=p・q)、e 敵A N、e、y(=xe mod N) 確率εで出力 確率 x qH回質問 qs回質問 H 署名 H(m)←乱数
m’1、m’2、... m1、m2、... H H(m)←乱数 敵A 署名 オラクル σ1、σ2、... H(m’1), H(m’2), … 確率εで出力 確率 x

51 B N(=p・q)、e 敵A N、e、y(=xe mod N) 署名 Hオラクル オラクル Bがシミュレート Bがシミュレート
このプログラムAはgiven Bがシミュレート

52 Bの動作 Hオラクル、署名オラクルをシミュレートする。 しかし、Bは秘密鍵dを知らない。 Bは、どうやって署名オラクルをシミュレート
 すればいいのか?

53 N、e、y(=xe mod N) B N(=p・q)、e m1 H 敵A 署名 オラクル

54 N、e、y(=xe mod N) B N(=p・q)、e m1 H 敵A 署名 オラクル H(m1)=r1e mod N

55 敵Aがm1をHオラクルに質問したとき、Bは
i m H(m) σ 1 m1 r1e 2 qs+qH

56 N、e、y(=xe mod N) B N(=p・q)、e m1 m1 H 敵A 署名 オラクル H(m1)=r1e mod N

57 N、e、y(=xe mod N) B N(=p・q)、e m1 m1 H 敵A 署名 オラクル σ=r1 H(m1)=r1e mod N

58 B N(=p・q)、e 敵A 署名 H オラクル こうすれば、検査式 H(m1)=σ1e mod N が成立 m1 m1 σ1=r1
H(m1)=r1e mod N 検査式 H(m1)= r1e =σ1e mod N

59 敵Aがm1を署名オラクルに質問した時、 i m H(m) σ 1 m1 r1e r1 2 qs+qH

60 N、e、y(=xe mod N) B N(=p・q)、e m2 H 敵A 署名 オラクル

61 N、e、y(=xe mod N) B N(=p・q)、e m2 H 敵A 署名 オラクル σ=r2

62 敵Aがm2を署名オラクルに質問したとき、 i m H(m) σ 1 m1 r1e r1 2 m2 r2 qs+qH

63 N、e、y(=xe mod N) B N(=p・q)、e m2 m2 H 敵A 署名 オラクル r2

64 N、e、y(=xe mod N) B N(=p・q)、e m2 m2 H 敵A 署名 オラクル r2 H(m2)=r2e mod N

65 敵Aがm2をHオラクルに質問したとき、Bは
i m H(m) σ 1 m1 r1e r1 2 m2 r2e r2 qs+qH

66 N、e、y(=xe mod N) B N(=p・q)、e H 敵A 署名 オラクル m*, σ*

67 N、e、y(=xe mod N) B N(=p・q)、e mi =m* H 敵A 署名 オラクル m*, σ*

68 N、e、y(=xe mod N) B N(=p・q)、e mi =m* H 敵A 署名 オラクル H(mi)=y m*, σ*

69 敵Aは、i番目のmで偽造 m H(m) σ 1 m1 r1e r1 2 m2 r2e r2 i m* =偽造 qs+qH

70 Bは、H(m)=yとおく i m H(m) σ 1 m1 r1e r1 2 m2 r2e r2 i=偽造 m* y qs+qH

71 B N(=p・q)、e 敵A N、e、y(=xe mod N) 署名 H オラクル mi =m* H(mi)=y 検査式
(σ*)e=H(m*)=y (=xe) mod N m*, σ* x= σ*

72 敵Aは、偽造文σ*を出力 i m H(m) σ 1 m1 r1e r1 2 m2 r2e r2 i=偽造 m* y σ* qs+qH

73 Bは、y=xe mod Nの解として、x=σ*を出力
i m H(m) σ 1 m1 r1e r1 2 m2 r2e r2 i=偽造 m* y x=σ* qs+qH

74 B Bは、iの値を知らない 敵A N、e、y(=xe mod N) 署名 H オラクル mi =m* H(mi)=y m*, σ*

75 Bは、iの値をランダムに推測 i m H(m) σ 1 m1 r1e r1 2 m2 r2e r2 … i=推測 m* y x=σ*
qs+qH

76 Pr(ランダムなiの値が当たる)=1/ (qs+qH)
m H(m) σ 1 m1 r1e r1 2 m2 r2e r2 i=推測 m* y x=σ* qs+qH

77 B N(=p・q)、e 敵A N、e、y(=xe mod N) 確率εで出力 確率 x qH回質問 qs回質問 H 署名 H(m)←乱数
m’1、m’2、... m1、m2、... H H(m)←乱数 敵A 署名 オラクル σ1、σ2、... H(m’1), H(m’2), … 確率εで出力 確率 x

78 B N(=p・q)、e 敵A N、e、y(=xe mod N) 確率εで出力 確率 x qs回質問 H 署名 H(m)←乱数 オラクル
m’1、m’2、... m1、m2、... H H(m)←乱数 敵A 署名 オラクル σ’1、σ’2、... σ1、σ2、... 確率εで出力 確率 (Coron’2000) x

79 Katz and Wang (2003) 署名文: 検査: 定理:

80 B N(=p・q)、e 敵A N、e、y(=xe mod N) 確率ε 確率 x qs回質問 署名 H オラクル (0,m1)
m1、m2、... H H(0,m1)←乱数 H(1,m2)←乱数 敵A 署名 オラクル σ1、σ2、... ... Bがうまくシミュレート 確率ε Bがうまくシミュレート 確率 x

81 Bはオラクルを以下の様にシミュレート ... ... ... ... 敵Aの出力する は mi bi ←ランダム σi m1 r1 m2 1
r1 m2 1 r2 ... ... ... ... (注)ri、tiはランダムに選ばれる 敵Aの出力する  は

82 の場合 mi bi ←ランダム σi m1 r1 m2 1 r2 ... ... ... ... mj = = = 1

83 なので Bがxを出力する確率は

84 の場合 mi bi ←ランダム σi m1 r1 m2 1 r2 ... ... ... ... mj = = = 1

85 なので Bがxを出力する確率は

86 今、敵Aが     を確率   で 出力すると仮定する。 このとき、Bが x を出力する確率は Pr[xを出力] =

87 演習(1) n>kと仮定する。 このとき、nビットのメッセージをkビットに圧縮すると、必ず衝突ペアが存在するのはなぜか。

88 演習(2) ハッシュ値が40ビットであるハッシュ関数Hを考える。確率0.3以上で衝突ペアを求めたい。Hを何回計算すればいいか。

89 メッセージのPadding m || 0…0 (512ビットの倍数) = x1 || x2 || … xB ||
M=x1 || x2 || … ||xB || L(=mのビット長) ただし、各|xi|=512ビット

90 Merkle-Damgard 変換 L x1 f f ハッシュ値 H(m) hB IV=0…0 h1

91 演習(3) xB x1 f f hB-1 H(m)=hB IV=0…0 h1 上記の構成においては、衝突ペアが求まることを示せ。

92 演習(4) xB x1 f f hB-1 IV=0…0 h1 hB H(m)=hB||L 上記の構成は、衝突困難であることを示せ。


Download ppt "黒澤 馨 (茨城大学) kurosawa@mx.ibaraki.ac.jp 情報セキュリティ特論(5) 黒澤 馨 (茨城大学) kurosawa@mx.ibaraki.ac.jp."

Similar presentations


Ads by Google