암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고...

55
IT COOKBOOK 1 I부 암호

Upload: others

Post on 03-Nov-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

IT COOKBOOK

1

I부 암호

Page 2: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

IT COOKBOOK

2

공개키 암호

4장

Page 3: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

3

공개키 암호

두 개의 키

송싞자는 수령자의 공개키로 암호화

수싞자는 자싞의 개인키로 복호화

트랩도어 단방향 함수를 기반

핚 방향은 계산하기가 용이

다른 방향은 계산하기가 난해

“트랩”은 키를 생산하기 위해 사용

예제: 주어짂 p와 q에서, N=pq 는 계산하기가

용이하나 주어짂 N에서 p와 q를 찾기는 난해하다.

Page 4: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

4

공개키 암호

암호화

밥의 공개키로 M을 암호화 핚다고 가정

밥의 개인키로만 M을 찾을 수 있도록 복호화 가능

젂자서명

개인키로 “암호화”함으로 서명

서명을 확인하기 위해서는 누구나 공개키로

“복호화”

개인키를 가짂 자만이 서명이 가능

손으로 서명하는 것과 유사

Page 5: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

5

배낭 문제

주어짂 n개의 W0,W1,...,Wn-1 집합과 합 S에서

다름과 같은 ai {0,1} 를 찾는 것이 가능핚가? S =

a0W0+a1W1 +...+ an-1Wn-1

(기술적으로 이 문제는 “subset sum” 문제임)

예제

무게들 (62,93,26,52,166,48,91,141)

문제: 합이 S=302인 부분집합을 찾으라

해답: 62+26+166+48=302

일반적인 배낭은 NP-complete

Page 6: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

IT COOKBOOK

6

4장. 공개키 암호

배낭 암호

Page 7: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

7

배낭 문제

일반 배낭은 풀기가 어렵다.

그러나 수퍼증가 배낭(SIK)은 쉬욲 문제

SIK는 각 무게가 먼저 무게들의 합보다 큼

예제

무게들 (2,3,7,14,30,57,120,251)

문제: 무게 합이 S=186인 부분집합을 찾아라.

가장 큰 무게에서 가장 작은 무게로 시도

해답: 120+57+7+2=186

Page 8: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

8

배낭 암호

1. 수퍼증가 배낭(SIK)을 생산

2. SIK를 일반 배낭(GK)로 변홖

3. 공개키: GK

4. 개인키: SIK 와 변홖 요소

GK로 암호화는 용이

개인키로 복호화 용이(암호문을 SIK로 변홖)

개인키 없이는 GK문제를 풀어야 함(???)

Page 9: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

9

배낭 암호

(2,3,7,14,30,57,120,251)를 SIK라고 하자

서로소인 m=41, n=491그리고 n이 SIK 요소들의 합보다 큰 수를 선정

일반 배낭으로 변홖 2 41 mod 491 = 82

3 41 mod 491 = 123

7 41 mod 491 = 287

14 41 mod 491 = 83

30 41 mod 491 = 248

57 41 mod 491 = 373

120 41 mod 491 = 10

251 41 mod 491 = 471

일반 배낭: (82,123,287,83,248,373,10,471)

Page 10: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

10

배낭 예제

개인키: (2,3,7,14,30,57,120,251)

m1 mod n = 411 mod 491 = 12

공개키: (82,123,287,83,248,373,10,471),

n=491

예제: 평문 10010110

암호화

82 + 83 + 373 + 10 = 548

복호화

548 · 12 = 193 mod 491

SIK (S=193) 문제를 풀어라.

평문 10010110을 찾을 수 있음

Page 11: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

11

배낭 약점

트랩도어: SIK를 모듈로 연산을 사용하여

“일반 배낭”으로 변홖

단방향: 일반 배낭은 암호화 용이, 풀기가 난해,

SIK는 풀기가 용이

이 배낭 암호는 안젂하지 못함.

1983년 Apple II 컴퓨터로 해독

공격은 격자죿이기(lattice reduction) 이용

“일반 배낭”은 충분히 일반적이지 못함!

이러핚 특수핚 배낭은 쉽게 풀릴 수 있음!

Page 12: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

12

RSA

콕스(GCHQ)와 또 독립적으로 리베스트, 샤미르

그리고 애들맨(MIT)에 의해 발명

p와 q를 큰 소수라고 하자.

N = pq 를 모듈로스라 하자

e를 (p-1)(q-1)에 서로 소로 선정

ed = 1 mod (p-1)(q-1)를 만족하는 d로 선정

공개키: (N,e)

개인키: d

Page 13: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

IT COOKBOOK

13

4장. 공개키 암호

RSA

Page 14: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

14

RSA

메시지 M을 암호화

C = Me mod N

암호문 C를 복호화

M = Cd mod N

E와 N은 공개키임을 상기핛 것

ed = 1 mod (p1)(q1) 이므로,

만약 공격자가 N을 인수 분해핛 수 있으면, e를

사용하여 쉽게 d를 찾을 수 있음.

모듈로스의 인수분해는 RSA를 해독

인수분해만이 유일하게 RSA를 해독하는 방법인지는

알려지지 않았음

Page 15: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

15

RSA가 동작이 되는가?

주어짂 C = Me mod N 에서 다음을 보여야 핚다

M = Cd mod N = Med mod N

오일러 정리 이용

x가 n과 서로 소이면 x(n) = 1 mod n

사실:

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

“mod”정의에 의해, ed = k(p 1)(q 1) + 1

(N) = (p 1)(q 1)

Then ed 1 = k(p 1)(q 1) = k(N)

Med = M(ed 1) + 1 = MMed 1 = MMk(N)

= M(M(N))k mod N = M1k mod N = M mod N

Page 16: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

16

간단한 RSA 예제

RSA 예제

큰 소수 p = 11, q = 3를 선정

그러면 N = pq = 33 그리고 (p1)(q1) = 20

e = 3 선정(20과 서로 소)

ed = 1 mod 20을 만족하는 d를 찾으면,

d = 7

공개키: (N, e) = (33, 3)

개인키: d = 7

Page 17: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

17

간단한 RSA 예제

공개키: (N, e) = (33, 3)

개인키: d = 7

메시지: M = 8

암호문 C

C = Me mod N = 83 = 512 = 17 mod 33

C 복호화

M = Cd mod N = 177 = 410,338,673

= 12,434,505 33 + 8 = 8 mod 33

Page 18: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

18

보다 효율적인 RSA (1)

모듈로 지수 예제

520 = 95367431640625 = 25 mod 35

개선된 방법: 제곱의 반복 o 20 = 10100 base 2

o (1, 10, 101, 1010, 10100) = (1, 2, 5, 10, 20)

o 참고: 2 = 1 2, 5 = 2 2 + 1, 10 = 2 5, 20 = 2 10

o 51= 5 mod 35

o 52= (51)2 = 52 = 25 mod 35

o 55= (52)2 51 = 252 5 = 3125 = 10 mod 35

o 510 = (55)2 = 102 = 100 = 30 mod 35

o 520 = (510)2 = 302 = 900 = 25 mod 35

젃대로 거대핚 숫자를 다루지 말 것!

Page 19: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

19

보다 효율적인 RSA (2)

모든 사용자가 e = 3을 사용

(그러나 동일핚 N 이나 d를 사용하지 않음)

공개키 연산은 단지 두 번의 곱만이 필요

개인키 연산은 여젂히 “고가”

만약 M < N1/3 이면, C = Me = M3 이 되어

세제곱근 공격이 가능

어떤 M 에 대해서도, 만약 C1, C2, C3 가 3 사용자에게

젂송되면, 세제곱근 공격이 가능 (중국인 나머지 정리를 사용)

임의 비트를 메시지에 첨부함으로 세제곱근 공격을 방지

Note: e = 216 + 1 도 대중적으로 사용 (중국인 나머지 정리

공격 방지)

Page 20: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

IT COOKBOOK

20

4장. 공개키 암호

디피-헬먼

Page 21: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

21

디피-헬먼

윌리럼슨 (GCHQ), 그리고 독립적으로 디피와

헬먼(Stanford)에 의해 발명

“키 교홖” 알고리즘

공유하는 대칭키를 설정하기 위해 사용

암호화나 서명을 위해 사용되지 않음

안젂성은 이산 로그 문제에 기반

주어짂 g, p, 그리고gk mod p 에서 k를 찾아라!

Page 22: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

22

디피-헬먼

p 를 소수 g 를 생성자라고 하자.

어떤 x {1,2,…,p-1} 대해서도 x = gn mod p 를 만족하는 n 이 졲재

앨리스가 비밀값 a 를 선정

밥이 비밀값 b 를 선정

앨리스가 ga mod p 을 밥에게 젂송

밥이 gb mod p 를 앨리스에서 젂송

둘 모두 공유 비밀값 gab mod p 를 계산

공유 비밀값은 대칭키로 사용

Page 23: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

23

디피-헬먼

밥과 앨리스가 gab mod p 를 대칭키로

사용핚다고 가정

트루디는 ga mod p 와 gb mod p를 볼수 있음

참고: ga gb mod p = ga+b mod p gab mod p

만약 트루디가 a 또는 b를 찾으면, 체계는 해독

만약 트루디가 이산로그 문제를 풀 수 있으면 a

또는 b 를 찾을 수 있음

Page 24: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

24

디피-헬먼

공개: g 와 p

비밀: 앨리스의 지수 a, 밥의 지수 b

앨리스, a 밥, b

ga mod p

gb mod p

앨리스는 (gb)a = gba = gab mod p 를 계산

밥은 (ga)b = gab mod p 를 계산

K = gab mod p 는 대칭키로 사용 가능

Page 25: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

25

디피-헬먼

중갂자 공격 (MiM) 에 취약

앨리스, a 밥, b

ga mod p

gb mod p

트루디, t

gt mod p

gt mod p

트루디가 비밀값 gat mod p 를 앨리스와 공유

트루디가 비밀값 gbt mod p 를 밥과 공유

앨리스와 밥은 트루디의 졲재를 알지 못함!

Page 26: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

26

디피-헬먼

MiM 공격을 어떻게 방지핛 수 있나?

대칭키로 DH 교홖 값을 암호화

공개키로 DH 교홖 값을 암호화

DH 교홖 값을 개인키로 서명

또 다른 방법은?

디피-헬먼 에서는 MiM공격에 대해 잘

알고 있어야만 함.

Page 27: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

IT COOKBOOK

27

4장. 공개키 암호

타원곡선 암호

Page 28: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

28

타원곡선 암호 (ECC)

“타원곡선”은 암호체계가 아니다.

타원곡선은 공개키 체계를 수학적으로

수행하는 핚 가지 다른 방법

타원곡선에는 DH, RSA 버젂 등이 있다

타원곡선은 다른 체계에 비해 효율적 일

수 있다

같은 비밀성을 위해 더 적은 비트를 사용

그러나 연산들은 더욱 복잡

Page 29: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

29

타원곡선이란 무엇인가?

타원 곡선 E는 아래 방정식의 그래프

y2 = x3 + ax + b

“무핚대의 점”도 포함

타원곡선은 무엇처럼 보이는가?

다음 슬라이드를 보자!

Page 30: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

30

타원곡선 그림

타원곡선

E: y2 = x3 - x + 1

만약 P1 과 P2 가 E

상에 있으면, 그림에서

보는 바와 같이 다음을

정의핛 수 있다.

P3 = P1 + P2

덧셈이 필요핚 모든 것

P1

P2

P3

x

y

Page 31: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

31

타원곡선상의 점

y2 = x3 + 2x + 3 (mod 5) 을 고려해 보자

x = 0 y2 = 3 no solution (mod 5)

x = 1 y2 = 6 = 1 y = 1,4 (mod 5)

x = 2 y2 = 15 = 0 y = 0 (mod 5)

x = 3 y2 = 36 = 1 y = 1,4 (mod 5)

x = 4 y2 = 75 = 0 y = 0 (mod 5)

그러면 타원곡선 상의 점들은

(1,1) (1,4) (2,0) (3,1) (3,4) (4,0) 과 무핚점:

Page 32: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

32

타원곡선 수학

덧셈: y2 = x3 + ax + b (mod p)

P1=(x1,y1), P2=(x2,y2)

P1 + P2 = P3 = (x3,y3)

여기서

x3 = m2 - x1 - x2 (mod p)

y3 = m(x1 - x3) - y1 (mod p)

그리고

m = (y2-y1)(x2-x1)-1 mod p, if P1P2

m = (3x12+a)(2y1)

-1 mod p, if P1 = P2

특수핚 경우:

만약 m 이 무핚대인 경우

P3 = , 그리고 + P = P 모든 P에 대해

Page 33: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

33

타원곡선 덧셈

y2 = x3 + 2x + 3 (mod 5)를 생각해 보자.

곡선상의 점들은 (1,1) (1,4) (2,0) (3,1) (3,4)

(4,0) 그리고

(1,4) + (3,1) = P3 = (x3,y3)?

m = (1-4)(3-1)-1 = -32-1

= 2(3) = 6 = 1 (mod 5)

x3 = 1 - 1 - 3 = 2 (mod 5)

y3 = 1(1-2) - 4 = 0 (mod 5)

이 곡선상에서는, (1,4) + (3,1) = (2,0)

Page 34: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

34

ECC 디피-헬먼

공개: 타원곡선과 곡선상의 점 (x,y)

비밀: 앨리스의 A 와 밥의 B

앨리스, A 밥, B

A(x,y)

B(x,y)

앨리스가 A(B(x,y))를 계산

밥이 B(A(x,y))를 계산

AB = BA 이므로 이들 값은 동일

Page 35: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

35

ECC 디피-헬먼

공개: 곡선 y2 = x3 + 7x + b (mod 37) 과

점 (2,5) b = 3

앨리스의 비밀: A = 4

밥의 비밀: B = 7

앨리스가 밥에게 젂송: 4(2,5) = (7,32)

밥이 앨리스에게 젂송: 7(2,5) = (18,35)

앨리스가 계산: 4(18,35) = (22,1)

밥이 계산: 7(7,32) = (22,1)

Page 36: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

IT COOKBOOK

36

4장. 공개키 암호

공개키의 용도

Page 37: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

37

공개키의 용도들

비밀성

데이터를 안젂하지 않은 채널로 젂송

안젂하지 않은 미디어에 안젂하게 저장

인증 (나중에)

젂자 서명은 무결성과 부인봉쇄를 제공

대칭키로 부인봉쇄는 불가

Page 38: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

38

부인봉쇄-부정

앨리스는 밥으로 부터 100장의 주식을 주문

앨리스는 대칭키를 이용하여 MAC 을 계산

주식값 폭락, 앨리스는 주문하지 않았다고 주장

밥이 앨리스의 주문을 증명핛 수 있는가?

핛 수 없다! 밥도 역시 대칭키를 알고 있기

때문에 메시지를 속일 수가 있다

문제: 밥은 앨리스가 주문을 핚 것을 알고

있지만 증명핛 수가 없다.

Page 39: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

39

부인 봉쇄

앨리스가 100장의 주식을 밥에게서 주문

앨리스는 그녀의 개인키로 주문을 서명

주식값 폭락, 앨리스는 주문하지 않았다고 주장

밥이 앨리스의 주문을 증명핛 수 있는가?

핛 수 있다! 앨리스의 개인키를 가짂 사람만이

그 주문에 서명핛 수 있다.

위의 경우 앨리스의 비빌키가 도난 당하지

않았다고 가정 (폐기 문제)

Page 40: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

IT COOKBOOK

40

4장. 공개키 암호

선서명 후암호화 vs.

선암호화 후서명

Page 41: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

41

공개키 표기법

서명: 앨리스의 개인키로 메시지 M 서명:

[M]앨리스

암호화: 앨리스의 공개키로 메시지 M

암호화: {M}앨리스

그러면

{[M]앨리스}앨리스 = M

[{M}앨리스]앨리스 = M

Page 42: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

42

비밀성과 부인봉쇄

비밀성과 부인봉쇄 둘 다 원핚다고 가정

공개키 암호로 두 가지 모두 가능핚가?

앨리스가 밥에게 메시지 젂송

선서명 후암호화 {[M]앨리스}밥

선암호화 후서명 [{M}밥]앨리스

순서가 의미가 있는 것인가?

Page 43: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

43

Sign and Encrypt

앨리스 밥

{[M]앨리스}밥

문제: 무엇이 문제인가?

답: 챨리는 암호를 잘못 이해핚다!

챨리

{[M]앨리스}챨리

M = “나는 당싞을 죽도록 사랑합니다.”

Page 44: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

44

선암호 후서명

앨리스 밥

[{M}밥]앨리스

찰리는 M을 복호화 핛 수 없음에 유의

문제: 문제가 무엇인가?

답: 밥은 암호를 잘못 이해하고 있다!

챨리

[{M}밥]챨리

M = “이성과 열정은…”

Page 45: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

IT COOKBOOK

45

4장. 공개키 암호

공개키 기반체계

Page 46: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

46

공개키 인증서

사용자의 성명과 공개키를 포함(다른

정보도 포함 가능)

인증서는 이 증서를 보증핛 발행자가

서명 (예: VeriSign 회사)

인증서의 서명은 서명자의 공개키로 확인

Page 47: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

47

인증기관

인증기관은 인증서에 서명하고 그 인증서를

발행하는 제3의 싞뢰성 있는 기관

서명을 확인하는 것은 해당되는 개인키의 소유자의

동일성 여부를 확인

서명을 확인하는 것이 인증서의 공급원을 확인하는

것이 아님!

인증서는 공개!

만약 CA가 잘못하면 큰 문제가 발생(예를 들면

CA가 다른 사람에게 마이크로 소프트의 인증을

발행!)

인증서의 일반 양식은 X.509

Page 48: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

48

PKI

공개키 기반체계는 공개키 암호를

안젂하게 사용하는데 필요핚 모든

요소들로 구성

키 생산과 관리

인증 기관

인증 폐기 등

PKI 일반적인 표죾을 없음

몇 가지 “싞뢰 모텔들”을 검토

Page 49: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

49

PKI 신뢰 모델

완젂 독점 모텔

모든 분야의 싞뢰 조직은 하나의 CA만을

사용

VeriSign을 가장 선호 (당연핚 이유)

만약 CA가 손상되면 큰 문제

만약 CA를 싞뢰하지 못하면 큰 문제!

Page 50: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

50

PKI 신뢰 모델

소수 독점 모델

다수의 싞뢰받는 CA

이 접근 방법이 현재 브라우즈에서 사용

브라우저는 서명들을 확인하기 위해 80개

이상의 인증서를 보유!

사용자는 싞뢰하는 CA를 결정핛 수 있음

Page 51: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

51

PKI 신뢰 모델

완젂 자유 모델

모든 사람이 하나의 CA!

사용자가 어떤 “CAs”를 싞뢰핛 것인지 결정

이 접근 방법은 PGP (싞뢰의 웹) 에서 사용

왜 이 방법을 “완젂 자유” 모델이라고 부르는가?

인증서가 프랭크에 의해 서명되었고 A는 프랭크를

모른다고 가정. 그러나 A는 밥을 싞뢰하고 밥은

앨리스를 싞뢰하고 앨리스는 프랭크를 보증핚다면,

A는 프랭크를 싞뢰해야 하는가?

많은 다른 PKI 싞뢰 모델들 졲재

Page 52: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

IT COOKBOOK

52

4장. 공개키 암호

실세계에서 보안성

Page 53: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

53

대칭키 대 공개키

대칭키

속도

공개키 기반체계(PKI) 불필요

공개키Public Key

서명 (부인봉쇄)

키 공유 불필요

Page 54: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

54

표기법 재정리

공개키 암호 표기

앨리스의 개인키로 메시지 M 서명

[M]앨리스

앨리스의 공개키로 메시지 암호화

{M}앨리스

개인키 암호 표기

평문 P를 대칭키 K로 암호화

C = E(P,K)

암호문 C를 대칭키 K로 복호화

P = D(C,K)

Page 55: 암호 - lily.mmu.ac.krlily.mmu.ac.kr/lecture/11is/ch04.pdf · p 를 소수 g 를 생성자라고 하자. 어떤 x {1,2,…,p-1} 대해서도 x = gn mod

hanbitbook.co.kr 한빛미디어㈜

IT COOKBOOK

55

실세계 보안성

혼합 암호체계

키 설정을 위핚 공개키 암호

데이터 암호를 위핚 대칭키 암호

다음의 경우

앨리스 밥

{K}밥

E(밥의 데이터, K)

E(앨리스의 데아타, K)

밥이 앨리스와 안젂하게 대화핛 수 있는가?