情報セキュリティ特論( 4 )

78
22/06/15 confidential 1 情情情情情情情情情情4 情情 情情情情情 () [email protected]

Upload: rigel-cervantes

Post on 02-Jan-2016

35 views

Category:

Documents


2 download

DESCRIPTION

情報セキュリティ特論( 4 ). 黒澤 馨 (茨城大学) [email protected]. 演習. m 2 ). ( m 1 ,. E_K. E_K. Tag. CBC-MAC について、以下の M=(m 1 , m 2 ), Tag を基に、偽造せよ。. E k. E k. E k. E k. m 2. m 2 ). ( m 1 ,. m 1 + Tag. m 1. Tag. Tag. 共通鍵暗号系. 鍵 k. 暗号化 アルゴリズム E. 復号 アルゴリズム D. 暗号文 C. 平文 m. m. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 情報セキュリティ特論( 4 )

23/04/20 confidential 1

情報セキュリティ特論( 4 )

黒澤 馨 (茨城大学)[email protected]

Page 2: 情報セキュリティ特論( 4 )

23/04/20 confidential 2

演習

E_KE_K

Tag

( m1, m2 )

CBC-MAC について、以下のM=(m1, m2), Tag を基に、偽造せよ。

Page 3: 情報セキュリティ特論( 4 )

23/04/20 confidential 3

EkEk

Tag

m1+Tag m2 )

EkEk

Tag

( m1, m2

m1

Page 4: 情報セキュリティ特論( 4 )

23/04/20 confidential 4

共通鍵暗号系

暗号化アルゴリズム

E

復号アルゴリズム

D平文m

鍵 k

暗号文 C m

敵 解読したい

Page 5: 情報セキュリティ特論( 4 )

23/04/20 confidential 5

どうやって、鍵 K を共有?

暗号化アルゴリズム

E

復号アルゴリズム

D平文m

鍵 k

暗号文 C m

敵 解読したい

Page 6: 情報セキュリティ特論( 4 )

23/04/20 confidential 6

公開鍵暗号系

暗号化アルゴリズム

E

復号アルゴリズム

D平文m

暗号文 C m

暗号化の鍵 Pk を公開

復号鍵 Sk は秘密

Page 7: 情報セキュリティ特論( 4 )

23/04/20 confidential 7

14

13

12

11

4

4

4

4

mod 5 において

16

15

14

13

12

11

4

4

4

4

4

4

mod 7 において

・・・

Page 8: 情報セキュリティ特論( 4 )

23/04/20 confidential 8

1)1(

12

mod11

1

1

1

p

p

p

p

p

p が素数のとき

フェルマーの定理

)11(

11

pa

a

pa

に対し任意のなる 

pa p mod11

pa

pa

thatsuchaanyFor

p mod1

111

 

   

    

Page 9: 情報セキュリティ特論( 4 )

23/04/20 confidential 9

共通鍵暗号系

• Pohlig-Hellman 暗号 共通鍵 素数 p 及び ed = 1 mod (p-1) となる (e,d)

p,e, 平文 m

暗号化アルゴリズム

復号アルゴリズム

p,e,d p,e,d

pCm d modpmC e mod

共通鍵 共通鍵

Page 10: 情報セキュリティ特論( 4 )

23/04/20 confidential 10

)1(1

)1(mod1

pked

ped

m

mm

m

m

pmC

pk

pk

ed

ded

)1(

)1(1

mod)(

=1 pm p mod11

フェルマーの定理より

Page 11: 情報セキュリティ特論( 4 )

23/04/20 confidential 11

共通鍵暗号系

• Pohlig-Hellman 暗号 共通鍵 素数 p 及び ed = 1 mod (p-1) となる (e,d)

p,e, 平文 m

暗号化アルゴリズム

復号アルゴリズム

p,e p,d

pCm d modpmC e mod

例: m=3,e=3,d=7,p=11 の場合

11= 11=

11=

3= 7= 10==3 =7

11mod5

33

C

11mod3

57

m

3= 〃

3555

5335

935

11mod35

7

26

24

2

Page 12: 情報セキュリティ特論( 4 )

23/04/20 confidential 12

共通鍵暗号系

• Pohlig-Hellman 暗号 共通鍵 素数 p 及び ed = 1 mod (p-1) となる (e,d)

p,e, 平文 m

暗号化アルゴリズム

復号アルゴリズム

p,e,d p,e,d

pCm d modpmC e mod

共通鍵 共通鍵

Page 13: 情報セキュリティ特論( 4 )

23/04/20 confidential 13

共通鍵暗号系

• Pohlig-Hellman 暗号 共通鍵 素数 p 及び ed = 1 mod (p-1) となる (e,d)

p,e, 平文 m

暗号化アルゴリズム

復号アルゴリズム

p,e,d p,e,d

pCm d modpmC e mod

共通鍵 共通鍵X X X

Page 14: 情報セキュリティ特論( 4 )

23/04/20 confidential 14

公開鍵方式にすると

• Pohlig-Hellman 暗号 共通鍵 素数 p 及び ed = 1 mod (p-1) となる (e,d)

p,e, 平文 m

暗号化アルゴリズム

復号アルゴリズム

p,e d

pCm d modpmC e mod

公開鍵 秘密鍵

Page 15: 情報セキュリティ特論( 4 )

23/04/20 confidential 15

公開鍵暗号にすると

• Pohlig-Hellman 暗号 共通鍵 素数 p 及び ed = 1 mod (p-1) となる (e,d)

p,e, 平文 m

暗号化アルゴリズム

復号アルゴリズム

p,e, d

pCm d modpmC e mod

公開鍵 秘密鍵

敵は、秘密鍵 d

を計算できる

Page 16: 情報セキュリティ特論( 4 )

23/04/20 confidential 16

素因数分解

• p,q から、 N=pq を計算するのは簡単• N(=pq) を素因数分解するのは困難• |N|=1024 ビットのとき、1 0 億年

Page 17: 情報セキュリティ特論( 4 )

23/04/20 confidential 17

公開鍵暗号系• RSA 暗号 ( 鍵生成アルゴリズム )

512 ビットの素数 p,q をランダムに生成 N = pq とおく ed = 1 mod (p-1)(q-1) となる (e,d) を求める

平文 m

暗号化アルゴリズム

復号アルゴリズム

N(=pq),e d

NCm d modNmC e mod

公開鍵 秘密鍵

Page 18: 情報セキュリティ特論( 4 )

23/04/20 confidential 18

RSA 暗号

平文 m

暗号化アルゴリズム

復号アルゴリズム

N(=pq),e d

NCm d modNmC e mod

公開鍵 秘密鍵

敵 p,q を求めることはできない

ed = 1 mod (p-1)(q-1)

敵は、 (p-1)(q-1) を計算できない

よって、敵は d がわからない

Page 19: 情報セキュリティ特論( 4 )

23/04/20 confidential 19

〃)1)(1(1

)1)(1(mod1

qpked

qped

m

mm

m

m

pmC

qpk

qpk

ed

ded

)1)(1(

)1)(1(1

mod)(

=1

pm p mod11

フェルマーの定理より

pm qpk mod1)1)(1(

Page 20: 情報セキュリティ特論( 4 )

23/04/20 confidential 20

同様に

p,q は互いに素なので

qmC d mod0

NmC

qpmCd

d

mod

mod0

pmC d mod0

Page 21: 情報セキュリティ特論( 4 )

23/04/20 confidential 21

同様に

p,q は互いに素なので

qmC d mod0

NmC

qpmCd

d

mod

mod0

pmC d mod0

86mod024

8mod024

6mod024

互いに素でない

Page 22: 情報セキュリティ特論( 4 )

23/04/20 confidential 22

同様に

p,q は互いに素なので

qmC d mod0

NmC

qpmCd

d

mod

mod0

pmC d mod0

86mod024

8mod024

6mod024

互いに素でない

互いに素

qpmC d

素因数

Page 23: 情報セキュリティ特論( 4 )

23/04/20 confidential 23

RSA 暗号

• 公開鍵 : N ( =pq ), e

• 秘密鍵 : d ただし ed = 1 mod (p-1)(q-1)

• 平 文 : M

• 暗号文 : • 復 号 :

NMC e modNCM d mod

Page 24: 情報セキュリティ特論( 4 )

23/04/20 confidential 24

RSA 暗号

• 公開鍵 : N ( =pq ), e

• 秘密鍵 : d ただし ed = 1 mod (p-1)(q-1)

• このようなdをどう求めるか?

Page 25: 情報セキュリティ特論( 4 )

23/04/20 confidential 25

(問題) 7x = 1 mod 10 を解け

a   ,  b

ユークリッド

アルゴリズム

gcd(a,b)

10

= 7=

=1

Page 26: 情報セキュリティ特論( 4 )

23/04/20 confidential 26

(問題) 7x = 1 mod 10 を解け

a   ,  b

拡張

ユークリッド

アルゴリズム

ax + by = gcd(a,b)

となる (x,y)

10

= 7=

10 7 1

=3

=2

-

Page 27: 情報セキュリティ特論( 4 )

23/04/20 confidential 27

(問題) 7x = 1 mod 10 を解け

a   ,  b

拡張

ユークリッド

アルゴリズム

ax + by = gcd(a,b)

となる (x,y)

10

= 7=

10 7 1

=3

=2

-

7y = 1 mod 10

両辺の mod 10 をとる

=3

Page 28: 情報セキュリティ特論( 4 )

23/04/20 confidential 28

(問題) 7x = 1 mod 10 を解け

a   ,  b

拡張

ユークリッド

アルゴリズム

ax + by = gcd(a,b)

となる (x,y)

10

= 7=

10 7 1

=3

=2

-

7y = 1 mod 10

両辺の mod 10 をとる

=3

∴ 7x = 1 mod 10

3=

Page 29: 情報セキュリティ特論( 4 )

23/04/20 confidential 29

• ユークリッドアルゴリズム 10 = 7 × 1 ・・・ 3

7 = 3 × 2 ・・・ 1

3 = 1 × 3 ・・・ 0

Page 30: 情報セキュリティ特論( 4 )

23/04/20 confidential 30

• ユークリッドアルゴリズム 10 = 7 × 1 ・・・ 3 gcd(10,7) =

gcd(7,3)

                                        を証明する。 7 = 3 × 2 ・・・ 1

3 = 1 × 3 ・・・ 0

=

gcd(10,7)

Page 31: 情報セキュリティ特論( 4 )

23/04/20 confidential 31

(10,7) の

公約数

(7,3) の公約数

・ d1

① d1 が (10,7) の公約数と仮定すると ②

10 = 7 × 1 + 3

(10,7) の公約数は(7,3) の公約数の部分集合であることを証

Page 32: 情報セキュリティ特論( 4 )

23/04/20 confidential 32

(10,7) の

公約数

(7,3) の公約数

・ d1

① d1 が (10,7) の公約数と仮定すると ②

10 = 7 × 1 + 3

d1 は割り切る d1 は割り切る

(10,7) の公約数は(7,3) の公約数の部分集合であることを証

Page 33: 情報セキュリティ特論( 4 )

23/04/20 confidential 33

(10,7) の

公約数

(7,3) の公約数

・ d1

① d1 が (10,7) の公約数と仮定すると ②

10 = 7 × 1 + 3

d1 は割り切る d1 は割り切る

d1 は両方割り切る

(10,7) の公約数は(7,3) の公約数の部分集合であることを証

Page 34: 情報セキュリティ特論( 4 )

23/04/20 confidential 34

(10,7) の

公約数

(7,3) の公約数

・ d1

① d1 が (10,7) の公約数と仮定すると ②

10 = 7 × 1 + 3

③ d1 は (7,3) の公約数d1 は割り切る d1 は割り切る

d1 は両方割り切る

(10,7) の公約数は(7,3) の公約数の部分集合であることを証

Page 35: 情報セキュリティ特論( 4 )

23/04/20 confidential 35

(7,3) の

公約数

(10,7) の

公約数・ d1

左図の様ならば、同様に①~③よりd2 は (7,3) の公約数

・ d2

Page 36: 情報セキュリティ特論( 4 )

23/04/20 confidential 36

(10,7) の

公約数・ d1

つまり、 (10,7) の公約数の集合は

(7,3) の公約数の集合の部分集合でなければならない

・ d2

(7,3) の公約数

Page 37: 情報セキュリティ特論( 4 )

23/04/20 confidential 37

(10,7) の

公約数

(7,3) の

公約数・ d 次に、 (7,3) の公約数は

(10,7) の公約数の部分集合であることを証

Page 38: 情報セキュリティ特論( 4 )

23/04/20 confidential 38

(10,7) の

公約数

(7,3) の

公約数・ d

① d が (7,3) の公約数と仮定すると ②

10 = 7 × 1 + 3

d は割り切る d は割り切る

Page 39: 情報セキュリティ特論( 4 )

23/04/20 confidential 39

(10,7) の

公約数

(7,3) の

公約数・ d

① d が (7,3) の公約数と仮定すると ②

10 = 7 × 1 + 3

よって ③ d は (10,7) の公約数

d は両方割り切る

d は割り切る d は割り切る

Page 40: 情報セキュリティ特論( 4 )

23/04/20 confidential 40

(7,3) の

公約数 つまり、 (7,3) の公約数の集合は

(10,7) の公約数の集合の部分集合である

・ d

(10,7) の公約数

Page 41: 情報セキュリティ特論( 4 )

23/04/20 confidential 41

(1) { (10,7) の公約数 } ⊆ { (7,3) の公約数 }

(2) { (10,7) の公約数 } { (7,3)⊇ の公約数 }

よって { (10,7) の公約数 } = { (7,3) の公約数 }

ゆえに gcd(10,7) = gcd(7,3)

Page 42: 情報セキュリティ特論( 4 )

23/04/20 confidential 42

• 定理 a = q ・ b + c のとき gcd(a,b) = gcd(b,c)

( 証明 )

(1) { (a,b) の公約数 } ⊆ { (b,c) の公約数 }

(2) { (a,b) の公約数 } { (b,c)⊇ の公約数 }

よって   { (a,b) の公約数 } = { (b,c) の公約数 }

ゆえに gcd(a,b) = gcd(b,c)

Page 43: 情報セキュリティ特論( 4 )

23/04/20 confidential 43

• ユークリッドアルゴリズム 10 = 7 × 1 ・・・ 3 gcd(10,7) =

gcd(7,3)

7 = 3 × 2 ・・・ 1 gcd(7,3) = gcd(3,1)

= 1

3 = 1 × 3 ・・・ 0

=

gcd(10,7)

Page 44: 情報セキュリティ特論( 4 )

23/04/20 confidential 44

• 拡張ユークリッドアルゴリズム 10 = 7 × 1 ・・・ 3

7 = 3 × 2 ・・・ 1

3 = 1 × 3 ・・・ 0=

gcd(10,7)

10 = 10×1 + 7×0

7 = 10×0 + 7×1

3 = 10×1 + 7×(-1)

1 = 10×(-2) + 7×3gcd(10,7) x y

Page 45: 情報セキュリティ特論( 4 )

23/04/20 confidential 45

(問題) 7x = 1 mod 10 を解け

a   ,  b

拡張

ユークリッド

アルゴリズム

ax + by = gcd(a,b)

となる (x,y)

10

= 7=

10 7 1

=3

=2

-

7y = 1 mod 10

両辺の mod 10 をとる

=3

∴ 7x = 1 mod 10

3=

Page 46: 情報セキュリティ特論( 4 )

23/04/20 confidential 46

RSA 暗号

• 公開鍵 : N ( =pq ), e

• 秘密鍵 : d ただし ed = 1 mod (p-1)(q-1)

• このようなdをどう求めるか?

Page 47: 情報セキュリティ特論( 4 )

23/04/20 confidential 47

• p = 素数のとき 0 < a < p なる任意の a に対し gcd(p,a) = 1

 よって px + ay = 1

   となる (x,y) が存在 a y = 1 mod p

乗法逆元: pamod

1 

=

例: p = 5 のとき

gcd(5,1) = 1

gcd(5,2) = 1

gcd(5,3) = 1

gcd(5,4) = 1

Page 48: 情報セキュリティ特論( 4 )

23/04/20 confidential 48

• すなわち 0 < a < p なる任意の a に対し mod p における乗法逆元が存在する

例: mod 5 において 1×1 = 1 mod 5

2×3 = 1 〃 3×2 = 1  〃 4×4 = 1                     〃

乗法逆元  〃

  〃

  〃

44

1

23

1

32

1

5mod11

1

Page 49: 情報セキュリティ特論( 4 )

23/04/20 confidential 49

• ( 問 ) 2x = 3 mod 5 を解け

Page 50: 情報セキュリティ特論( 4 )

23/04/20 confidential 50

• ( 問 ) 2x = 3 mod 5 を解け• ( 解 )

    〃    〃

  〃 

  〃 

    なので

4

9

33

32

12

2

1

5mod32

1

x

x

Page 51: 情報セキュリティ特論( 4 )

23/04/20 confidential 51

• 群 : +、- ができる世界• 環 : +、-、 × ができる世界• 体 : +、-、 × 、 ÷ ができる世界

(例) 実数の世界     mod 5 の世界 = GF(5)

Page 52: 情報セキュリティ特論( 4 )

23/04/20 confidential 52

• 有限体(ガロア体)   要素数が有限の体

• GF(p)

   要素数が p の体

• GF(2)

   要素数が最小の体

Page 53: 情報セキュリティ特論( 4 )

23/04/20 confidential 53

• 定理    GF(q) が存在する

                  ただし、 p は素数

   

kpqorpq   

基礎体

=

拡大体

=

Page 54: 情報セキュリティ特論( 4 )

23/04/20 confidential 54

• フェルマーの定理    p = 素数のとき    0 < a < p なる任意の a に対し

pa p mod11

Page 55: 情報セキュリティ特論( 4 )

23/04/20 confidential 55

• ( 簡単な証明 )

  〃  〃  〃

342

132

422

5mod212

Page 56: 情報セキュリティ特論( 4 )

23/04/20 confidential 56

• ( 簡単な証明 )

  〃  〃  〃

342

132

422

5mod212

5mod)4321()4321(24

×

Page 57: 情報セキュリティ特論( 4 )

23/04/20 confidential 57

• ( 簡単な証明 )

  〃  〃  〃

342

132

422

5mod212

  〃          12

5mod)4321()4321(24

4

×

Page 58: 情報セキュリティ特論( 4 )

23/04/20 confidential 58

• p が合成数のとき

  〃  〃  〃  〃

452

242

032

422

6mod212

6mod0)54321(25

×

Page 59: 情報セキュリティ特論( 4 )

23/04/20 confidential 59

• ( 証明 )

  〃

  〃

1

2

1

)1(

2

mod1

pbpa

ba

pba

Page 60: 情報セキュリティ特論( 4 )

23/04/20 confidential 60

• ( 補題 )

}1,,2,1{},,{ 121 pbbb p   

Page 61: 情報セキュリティ特論( 4 )

23/04/20 confidential 61

• ( 証明 )

      まず 0 ≦ bi ≦ p-1

bi = 0 と仮定すると a×i = 0 mod p 両辺 i で割ると ∴a = 0 〃      これは矛盾 よって 1 ≦ bi ≦ p-1

Page 62: 情報セキュリティ特論( 4 )

23/04/20 confidential 62

• ( 証明 続き )

次にある i ≠ j に対し   bi = bj と仮定すると a×i = a×j mod p

∴ i = j 〃  これは矛盾

1

2

1

p

1

2

1

b

b

bp

1 ~ p-1

Page 63: 情報セキュリティ特論( 4 )

23/04/20 confidential 63

• ( フェルマーの定理の証明 )

  〃

  〃

)1()1(

22

mod11

pbpa

ba

pba

pppa p mod)121()121(1

×

ap-1=1 mod p

Page 64: 情報セキュリティ特論( 4 )

23/04/20 confidential 64

RSA 暗号の生成

① 大きな素数 p,q を生成 ② ed = 1 mod (p-1)(q-1)

      となる (e,d) を求める③ の計算 

NMC e modNCM d mod

Page 65: 情報セキュリティ特論( 4 )

23/04/20 confidential 65

RSA 暗号の生成

① 大きな素数 p,q を生成 ② ed = 1 mod (p-1)(q-1)

      となる (e,d) を求める③ の計算

    d=21024 程度なので、 1 億年

NMC e modNCM d mod

Page 66: 情報セキュリティ特論( 4 )

23/04/20 confidential 66

2

2

2

2

2

2

)10011(

)10010(2

)1001(

)1000(2

)100(2

)10(2

2)10011(19

a

aaayy

a

aaayy

ayy

aay

x

         

         

   の高速計算法xa

高々

2(n-1) 回の乗算

n ビット

Page 67: 情報セキュリティ特論( 4 )

23/04/20 confidential 67

• 素数は無限個存在する

( 証明 )    素数の集合 = { 2,5,7,11 } ( と仮定する ) p = 2×5×7×11+1    とおく。すると p は 2 で割り切れない

   p は 11 で割り切れない よって、 p はどの素数でも割り切れない ゆえに  p は素数である。 これは矛盾

・・・

Page 68: 情報セキュリティ特論( 4 )

23/04/20 confidential 68

(N,e),C 解読 m ( 1 億年)

N 素因数分解 p,q ( 10 億年)

RSA 仮定

素因数分解仮定

Page 69: 情報セキュリティ特論( 4 )

23/04/20 confidential 69

1, ・・・ ,1

鍵生成

アルゴリズム

N(=pq),e,d

ただし |N| = n

ビットn ビット

確率的多項式時間アルゴリズム

乱数テープ

Page 70: 情報セキュリティ特論( 4 )

23/04/20 confidential 70

(N,e),C m( 1 億年)

RSA 仮定乱数テープ

R

解読

成功

(N,e)

C

R

Pr( 解読 ) < ε

この体積全体積

Page 71: 情報セキュリティ特論( 4 )

23/04/20 confidential 71

• RSA 仮定   任意の確率的多項式時間解読アルゴリズム   A に対し       Pr (解読) < ε

   ただし、確率は 鍵生成アルゴリズムの乱数テープ      解読アルゴリズム A の乱数テープ 平文 m

   についてとる

Page 72: 情報セキュリティ特論( 4 )

23/04/20 confidential 72

• 定理 確率 ε で素因数分解に成功する 確率的多項式時間解読アルゴリズム B

が存在  

   確率 ε で RSA 解読に成功する   確率的多項式時間解読アルゴリズム A

が存在

Page 73: 情報セキュリティ特論( 4 )

23/04/20 confidential 73

• 定理 確率 ε で素因数分解に成功する 確率的多項式時間解読アルゴリズム B

が存在  

   確率 ε で RSA 解読に成功する   確率的多項式時間解読アルゴリズム A

が存在

(?)

難しい

易しい

Page 74: 情報セキュリティ特論( 4 )

23/04/20 confidential 74

(証明)

N,e,C p,qBN

A

Page 75: 情報セキュリティ特論( 4 )

23/04/20 confidential 75

(証明)

N,e,C p,q

乱数テープR

BN

A

Page 76: 情報セキュリティ特論( 4 )

23/04/20 confidential 76

(証明)

N,e,C p,q

乱数テープR

BN

より  d を求める

)1)(1(mod1 qpde

NCm d mod m

A

Page 77: 情報セキュリティ特論( 4 )

23/04/20 confidential 77

演習 (1)

Mod 15 の世界において、以下の x を求めよ。• 2x=1

• 4x=1

• 7x=1

• 8x=1

• 11x=1

• 13x=1

• 14x=1

Page 78: 情報セキュリティ特論( 4 )

演習 (2)

p=11, q=17, e=3 とする RSA 暗号について考える。

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

23/04/20 confidential 78