1 / 55

I 부

I 부. 암호. 4 장. 공개키 암호. 공개키 암호. 두 개의 키 송신자는 수령자의 공개키 로 암호화 수신자는 자신의 개인키 로 복호화 트랩도어 단방향 함수를 기반 한 방향은 계산하기가 용이 다른 방향은 계산하기가 난해 “ 트랩 ” 은 키를 생산하기 위해 사용 예제 : 주어진 p 와 q 에서 , N=pq 는 계산하기가 용이하나 주어진 N 에서 p 와 q 를 찾기는 난해하다. 공개키 암호. 암호화 밥의 공개키로 M 을 암호화 한다고 가정

skip
Download Presentation

I 부

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. I부 암호

  2. 4장 공개키 암호

  3. 공개키 암호 • 두 개의 키 • 송신자는 수령자의 공개키로 암호화 • 수신자는 자신의 개인키로 복호화 • 트랩도어 단방향 함수를 기반 • 한 방향은 계산하기가 용이 • 다른 방향은 계산하기가 난해 • “트랩”은 키를 생산하기 위해 사용 • 예제: 주어진 p와 q에서, N=pq 는 계산하기가 용이하나 주어진 N에서 p와 q를 찾기는 난해하다.

  4. 공개키 암호 • 암호화 • 밥의 공개키로 M을 암호화 한다고 가정 • 밥의 개인키로만 M을 찾을 수 있도록 복호화 가능 • 전자서명 • 개인키로 “암호화”함으로 서명 • 서명을 확인하기 위해서는 누구나 공개키로 “복호화” • 개인키를 가진 자만이 서명이 가능 • 손으로 서명하는 것과 유사

  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

  6. 4장. 공개키 암호 배낭 암호

  7. 배낭 문제 • 일반 배낭은 풀기가 어렵다. • 그러나 수퍼증가 배낭(SIK)은 쉬운 문제 • SIK는 각 무게가 먼저 무게들의 합보다 큼 • 예제 • 무게들 (2,3,7,14,30,57,120,251) • 문제: 무게 합이 S=186인 부분집합을 찾아라. • 가장 큰 무게에서 가장 작은 무게로 시도 • 해답: 120+57+7+2=186

  8. 배낭 암호 1. 수퍼증가 배낭(SIK)을 생산 2. SIK를 일반 배낭(GK)로 변환 3. 공개키: GK 4. 개인키: SIK 와 변환 요소 • GK로 암호화는 용이 • 개인키로 복호화 용이(암호문을 SIK로 변환) • 개인키 없이는 GK문제를 풀어야 함(???)

  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)

  10. 배낭 예제 • 개인키: (2,3,7,14,30,57,120,251) m1 mod n = 411 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을 찾을 수 있음

  11. 배낭 약점 • 트랩도어: SIK를 모듈로 연산을 사용하여“일반 배낭”으로 변환 • 단방향: 일반 배낭은 암호화 용이, 풀기가 난해,SIK는 풀기가 용이 • 이 배낭 암호는 안전하지 못함. • 1983년 Apple II 컴퓨터로 해독 • 공격은 격자줄이기(lattice reduction) 이용 • “일반 배낭”은 충분히 일반적이지 못함! • 이러한 특수한 배낭은 쉽게 풀릴 수 있음!

  12. RSA • 콕스(GCHQ)와 또 독립적으로 리베스트, 샤미르 그리고 애들맨(MIT)에 의해 발명 • p와 q를 큰 소수라고 하자. • N = pq 를 모듈로스라 하자 • e를 (p-1)(q-1)에 서로 소로 선정 • ed = 1 mod (p-1)(q-1)를 만족하는 d로 선정 • 공개키: (N,e) • 개인키: d

  13. 4장. 공개키 암호 RSA

  14. RSA • 메시지 M을 암호화 • C = Me mod N • 암호문 C를 복호화 • M = Cd mod N • E와 N은 공개키임을 상기할 것 • ed = 1 mod (p1)(q1) 이므로,만약 공격자가 N을 인수 분해할 수 있으면, e를 사용하여 쉽게 d를 찾을 수 있음. • 모듈로의 인수분해는 RSA를 해독 • 인수분해만이 유일하게 RSA를 해독하는 방법인지는 알려지지 않았음

  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 = MMed  1 = MMk(N) = M(M(N))k mod N = M1k mod N = M mod N

  16. 간단한 RSA 예제 • RSA 예제 • 큰 소수 p = 11, q = 3를 선정 • 그러면 N = pq = 33 그리고 (p1)(q1) = 20 • e = 3 선정(20과 서로 소) • ed = 1 mod 20을 만족하는 d를 찾으면, d = 7 • 공개키: (N, e) = (33, 3) • 개인키: d = 7

  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

  18. 보다 효율적인 RSA (1) • 모듈로 지수 예제 • 520 = 95367431640625 = 25 mod 35 • 개선된 방법: 제곱의 반복 • 20 = 10100 base 2 • (1, 10, 101, 1010, 10100) = (1, 2, 5, 10, 20) • 참고: 2 = 1 2, 5 = 2  2 + 1, 10 = 2  5, 20 = 2  10 • 51= 5 mod 35 • 52= (51)2 = 52 = 25 mod 35 • 55= (52)2 51 = 252 5 = 3125 = 10 mod 35 • 510 = (55)2 = 102 = 100 = 30 mod 35 • 520 = (510)2 = 302 = 900 = 25 mod 35 • 절대로 거대한 숫자를 다루지 말 것!

  19. 보다 효율적인 RSA (2) • 모든 사용자가 e = 3을 사용(그러나 동일한 N이나 d를 사용하지 않음) • 공개키 연산은 단지 두 번의 곱만이 필요 • 개인키 연산은 여전히 “고가” • 만약 M < N1/3 이면, C = Me = M3이 되어세제곱근 공격이 가능 • 어떤 M 에 대해서도, 만약 C1, C2, C3가 3 사용자에게 전송되면, 세제곱근 공격이 가능 (중국인 나머지 정리를 사용) • 임의 비트를 메시지에 첨부함으로 세제곱근 공격을 방지 • Note: e = 216 + 1도 대중적으로 사용 (중국인 나머지 정리 공격 방지)

  20. 4장. 공개키 암호 디피-헬먼

  21. 디피-헬먼 • 윌리럼슨 (GCHQ), 그리고 독립적으로 디피와 헬먼(Stanford)에 의해 발명 • “키 교환” 알고리즘 • 공유하는 대칭키를 설정하기 위해 사용 • 암호화나 서명을 위해 사용되지 않음 • 안전성은 이산 로그 문제에 기반 • 주어진 g, p, 그리고gk mod p 에서 k를 찾아라!

  22. 디피-헬먼 • p 를 소수 g 를 생성자라고 하자. • 어떤 x  {1,2,…,p-1} 대해서도 x = gn mod p 를 만족하는 n 이 존재 • 앨리스가 비밀값 a 를 선정 • 밥이 비밀값 b 를 선정 • 앨리스가 ga mod p 을 밥에게 전송 • 밥이 gb mod p 를 앨리스에서 전송 • 둘 모두 공유 비밀값 gab mod p 를 계산 • 공유 비밀값은 대칭키로 사용

  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 를 찾을 수 있음

  24. 디피-헬먼 • 공개: g 와 p • 비밀: 앨리스의 지수 a, 밥의 지수 b ga mod p gb mod p 앨리스, a 밥, b • 앨리스는 (gb)a = gba = gab mod p 를 계산 • 밥은 (ga)b = gab mod p 를 계산 • K = gab mod p 는 대칭키로 사용 가능

  25. 디피-헬먼 • 중간자 공격 (MiM) 에 취약 ga mod p gt mod p gt mod p gb mod p 트루디, t 밥, b 앨리스, a • 트루디가 비밀값 gat mod p 를 앨리스와 공유 • 트루디가 비밀값 gbt mod p 를 밥과 공유 • 앨리스와 밥은 트루디의 존재를 알지 못함!

  26. 디피-헬먼 • MiM 공격을 어떻게 방지할 수 있나? • 대칭키로 DH 교환 값을 암호화 • 공개키로 DH 교환 값을 암호화 • DH 교환 값을 개인키로 서명 • 또 다른 방법은? • 디피-헬먼 에서는 MiM공격에 대해 잘 알고 있어야만 함.

  27. 4장. 공개키 암호 타원곡선 암호

  28. 타원곡선 암호 (ECC) • “타원곡선”은 암호체계가 아니다. • 타원곡선은 공개키 체계를 수학적으로 수행하는 한 가지 다른 방법 • 타원곡선에는 DH, RSA 버전 등이 있다 • 타원곡선은 다른 체계에 비해 효율적 일 수 있다 • 같은 비밀성을 위해 더 적은 비트를 사용 • 그러나 연산들은 더욱 복잡

  29. 타원곡선이란 무엇인가? • 타원 곡선 E는 아래 방정식의 그래프 y2 = x3 + ax + b • “무한대의 점”도 포함 • 타원곡선은 무엇처럼 보이는가? • 다음 슬라이드를 보자!

  30. y P2 P1 x P3 타원곡선 그림 • 타원곡선 E: y2 = x3 - x + 1 • 만약 P1과 P2가 E 상에 있으면, 그림에서 보는 바와 같이 다음을 정의할 수 있다. P3 = P1 + P2 • 덧셈이 필요한 모든 것

  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) 과 무한점: 

  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 P1P2 m = (3x12+a)(2y1)-1 mod p, if P1 = P2 특수한 경우: 만약 m 이 무한대인 경우P3 = , 그리고  + P = P 모든 P에 대해

  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 = -32-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)

  34. ECC 디피-헬먼 • 공개: 타원곡선과 곡선상의 점 (x,y) • 비밀: 앨리스의 A 와 밥의 B A(x,y) B(x,y) 앨리스, A 밥, B • 앨리스가 A(B(x,y))를 계산 • 밥이 B(A(x,y))를 계산 • AB = BA 이므로 이들 값은 동일

  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)

  36. 4장. 공개키 암호 공개키의 용도

  37. 공개키의 용도들 • 비밀성 • 데이터를 안전하지 않은 채널로 전송 • 안전하지 않은 미디어에 안전하게 저장 • 인증 (나중에) • 전자 서명은 무결성과 부인봉쇄를 제공 • 대칭키로 부인봉쇄는 불가

  38. 부인봉쇄-부정 • 앨리스는 밥으로 부터 100장의 주식을 주문 • 앨리스는 대칭키를 이용하여 MAC을 계산 • 주식값 폭락, 앨리스는 주문하지 않았다고 주장 • 밥이 앨리스의 주문을 증명할 수 있는가? • 할 수 없다!밥도 역시 대칭키를 알고 있기 때문에 메시지를 속일 수가 있다 • 문제: 밥은 앨리스가 주문을 한 것을 알고 있지만 증명할 수가 없다.

  39. 부인 봉쇄 • 앨리스가 100장의 주식을 밥에게서 주문 • 앨리스는 그녀의 개인키로 주문을 서명 • 주식값 폭락, 앨리스는 주문하지 않았다고 주장 • 밥이 앨리스의 주문을 증명할 수 있는가? • 할 수 있다!앨리스의 개인키를 가진 사람만이 그 주문에 서명할 수 있다. • 위의 경우 앨리스의 비빌키가 도난 당하지 않았다고 가정 (폐기 문제)

  40. 4장. 공개키 암호 선서명 후암호화vs. 선암호화 후서명

  41. 공개키 표기법 • 서명: 앨리스의 개인키로 메시지 M 서명:[M]앨리스 • 암호화:앨리스의 공개키로 메시지 M암호화:{M}앨리스 • 그러면 {[M]앨리스}앨리스 = M [{M}앨리스]앨리스 = M

  42. 비밀성과 부인봉쇄 • 비밀성과 부인봉쇄 둘 다 원한다고 가정 • 공개키 암호로 두 가지 모두 가능한가? • 앨리스가 밥에게 메시지 전송 • 선서명 후암호화{[M]앨리스}밥 • 선암호화 후서명[{M}밥]앨리스 • 순서가 의미가 있는 것인가?

  43. Sign and Encrypt • M = “나는 당신을 죽도록 사랑합니다.” {[M]앨리스}밥 {[M]앨리스}챨리 밥 챨리 앨리스 • 문제: 무엇이 문제인가? • 답: 챨리는 암호를 잘못 이해한다!

  44. 선암호 후서명 • M = “이성과 열정은…” [{M}밥]앨리스 [{M}밥]챨리 밥 앨리스 챨리 • 찰리는 M을 복호화 할 수 없음에 유의 • 문제: 문제가 무엇인가? • 답: 밥은 암호를 잘못 이해하고 있다!

  45. 4장. 공개키 암호 공개키 기반체계

  46. 공개키 인증서 • 사용자의 성명과 공개키를 포함(다른 정보도 포함 가능) • 인증서는 이 증서를 보증할 발행자가 서명 (예: VeriSign 회사) • 인증서의 서명은 서명자의 공개키로 확인

  47. 인증기관 • 인증기관은 인증서에 서명하고 그 인증서를 발행하는 제3의 신뢰성 있는 기관 • 서명을 확인하는 것은 해당되는 개인키의 소유자의 동일성 여부를 확인 • 서명을 확인하는 것이 인증서의 공급원을 확인하는 것이 아님! • 인증서는 공개! • 만약 CA가 잘못하면 큰 문제가 발생(예를 들면 CA가 다른 사람에게 마이크로 소프트의 인증을 발행!) • 인증서의 일반 양식은 X.509

  48. PKI • 공개키 기반체계는 공개키 암호를 안전하게 사용하는데 필요한 모든 요소들로 구성 • 키 생산과 관리 • 인증 기관 • 인증 폐기 등 • PKI 일반적인 표준을 없음 • 몇 가지 “신뢰 모텔들”을 검토

  49. PKI 신뢰 모델 • 완전 독점 모텔 • 모든 분야의 신뢰 조직은 하나의 CA만을 사용 • VeriSign을 가장 선호 (당연한 이유) • 만약 CA가 손상되면 큰 문제 • 만약 CA를 신뢰하지 못하면 큰 문제!

  50. PKI 신뢰 모델 • 소수 독점 모델 • 다수의 신뢰받는 CA • 이 접근 방법이 현재 브라우즈에서 사용 • 브라우저는 서명들을 확인하기 위해 80개 이상의 인증서를 보유! • 사용자는 신뢰하는 CA를 결정할 수 있음

More Related