1 / 42

제 8 장 키 관리 및 ECC Public-key Cryptography and ECC

제 8 장 키 관리 및 ECC Public-key Cryptography and ECC. 200 7. 11. 26. 목 차. 8.1 키 관리 (Key Management) 8.2 Diffie-Hellman 키 교환 (Diffie-Hellman Key Exchange) 8.3 타원곡선 연산 (Elliptic Curve Arithmetic) 8.4 타원곡선 암호 (Elliptic Curve Cryptography). 8.1 키 관리. 8.1.1 공개키의 분배

damali
Download Presentation

제 8 장 키 관리 및 ECC Public-key Cryptography and ECC

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. 제8장 키 관리 및 ECCPublic-key Cryptography and ECC 2007. 11. 26

  2. 목 차 8.1 키 관리 (Key Management) 8.2 Diffie-Hellman 키 교환 (Diffie-Hellman Key Exchange) 8.3 타원곡선 연산(Elliptic Curve Arithmetic) 8.4 타원곡선 암호 (Elliptic Curve Cryptography) 2

  3. 8.1 키 관리 8.1.1 공개키의 분배 8.1.2 공개키에 의한 비밀키 분배 3

  4. 8.1.1 공개키의 분배 공개키의 분배 방식 공개 발표 (Public announcement) 공개적으로 사용 가능한 디렉토리 이용(Pubicly available directory) 공개키 기관(Public-key authority) 공개키 인증서(Public-key certificates) 4

  5. 8.1.1 공개키의 분배(cont’) 1) 공개 발표 자신의 공개키를 다른 사용자에게 전송 등의 방법으로 공개 문제점 어떤 사용자가 다른 사용자 A로 위장하여 공개 가능 A 로 전송되는 암호화 메시지를 읽을 수 있게 되고, 인증에도 사용 가능 5

  6. 8.1.1 공개키의 분배(cont’) 2) 공개적으로 사용 가능한 디렉토리 6

  7. 8.1.1 공개키의 분배(cont’) 디렉토리의 필요 사항 기관은 각 가입자의 공개키 관련 정보 공개디렉토리 유지 각 가입자는 디렉토리 기관에 공개키를 등록 가입자는 필요시 새로운 것으로 교체 가능 기관은 디렉토리를 공표 가입자는 전자적으로 디렉토리에 접근 가능 문제점 디렉토리 기관으로 위장하여 공포 및 갱신 배포 교란 제 3자가 다른 가입자의 공개키 정보를 수정 7

  8. 8.1.1 공개키의 분배(cont’) 3) 공개키 기관 공개키 기관에서 공개키 발행, 보관 분배 제어 8

  9. 8.1.1 공개키의 분배(cont’) 공개키의 배분 단계 1 단계 A가 B의 공개키에 대한 요구를 타임 스탬프와 함께 기관으로 전송 2 단계 공개키 기관은 B의 공개키와 1 단계의 메시지를 자신의 개인키로 암호화하여 전송 A의 요구 내용으로부터 자신의 요구가 수정되지 않았음을 확인 가능 타임스탬프로부터 B의 공개키가 최신 것이라는 확인 가능 3 단계 B의 공개키를 저장하고, A의 식별자(IDA)와 임시비표(N1)을 B의 공개키로 암호화하여 전송 4, 5 단계 B는 1, 2 단계와 같은 방법으로 A의 공개키 획득 9

  10. 8.1.1 공개키의 분배(cont’) 인증 단계 6 단계 B는 임시비표 N1, N2를 A의 공개키로 암호화하여 전송 A는 N1의 존재로부터 통신 상대가 B임을 확신 7 단계 A는 N2를 B의 공개키로 암호화하여 전송 B는 N2의 존재로부터 통신 상대가 A임을 확신 문제점 공개키 기관의 디렉토리 수정에 취약 공개키 기관의 온라인 응답 한계와 시스템의 병목 현상 10

  11. 8.1.1 공개키의 분배(cont’) 4) 공개키 인증서 인증기관이 공개키 인증서를 발행하여 공개키의 소유자, 유효기간, 무결성을 보증 11

  12. 8.1.1 공개키의 분배(cont’) 인증서 방식을 위한 요구 사항 임의의 가입자는 인증서의 내용(이름, 공개키) 확인 가능 임의의 가입자는 인증서의 정당성 확인 가능 인증 기관만이 인증서 생성과 갱신 가능 임의의 가입자는 인증서의 유효성 확인 가능(타임스탬프 이용) 절차 가입자 A는 인증기관에 공개키(KUa)를 제시하고 인증서 발급을 신청(안전한 방법을 이용하여야 함) 기관은 인증서(CA)를 공급하며, 이 인증서를 통신 상대인 B에게 전달함 CA = EKRauth[T, IDA, KUa] 12

  13. 8.1.2 공개키에 의한 비밀키의 분배 공개키는 느리기 때문에 길이가 짧은 관용 암호를 위한 비밀키 분배에 많이 사용됨 1) 단순 비밀키 분배 1 단계 A는 키 쌍 {KUa, KRa}을 생성하고, 식별자 IDA와 함께 공개키 Kua를 전송 2 단계 B는 관용 암호를 위한 비밀키 Ks를 생성하고 A의 공개키로 암호화하여 전송 13

  14. 8.1.2 공개키에 의한 비밀키의 분배(cont’) 문제점 :적극적인 공격에 취약함(E는 적) 1. A는 공개키 쌍 {KUa, KRa}을 생성하고, 공개키 전송 2. E가 메시지를 가로채고, 자신의 공개키(KUe)를 IDA와 함께 전송 3. B는 비밀키 Ks를 생성하고 E의 공개키로 암호화하여 전송 EKUe[Ks] 4. E는 메시지를 가로채어 Ks를 획득 DKRe[EKUe [Ks]] = Ks 5. E는 A에게 EKUe [Ks] 전송 ⇒ E는 A와 B가 모르게 비밀값 Ks 획득 (도청 공격) 14

  15. 8.1.2 공개키에 의한 비밀키의 분배(cont’) 2) 기밀성과 인증을 가지는 비밀키 분배 적극적, 소극적 공격에 대한 해결 방안 15

  16. 8.1.2 공개키에 의한 비밀키의 분배(cont’) 공개키를 교환했다고 가정한 분배 절차 1) 단계 A의 식별자와 임시비표(N1)를 B의 공개키로 암호화하여 전송 2) 단계 B는 새로운 임시비표(N2)와 N1을 A의 공개키로 암호화하여 전송 N1은 통신 상대가 B임을 A에게 보증 3) 단계 A는 A임을 보증하기 위해 B의 공개키로 암호화한 N2을 반환 4) 단계 A는 비밀키 Ks를 선택하여 M = EKUb[EKRe[Ks]]를 B에게 전송(인증과 기밀성 동시에 보장) 5) 단계 B는 M을 복호화하여 Ks를 얻음 16

  17. 8.1.2 공개키에 의한 비밀키의 분배(cont’) 3) 공개키와 대칭키의 혼합 방식 IBM에서 사용하는 방식 개념 각 사용자에게 비밀의 마스타키를 배분 키 분배 센터(KDC)를 이용하여 마스타키로 암호화한 비밀 세션키를 분배 공개키 암호방식 체계를 기존의 비밀키 암호방식의 KDC 위에 추가로 배치 3계층 암호화 체계: [공개키]=>[마스터키]=>[세션키]=>[데이터] 공개키 방식은 마스터키 갱신시에만 사용 하나의 KDC가 넓게 분포된 사용자 집단을 서비스하는 구조에서 유리 17

  18. 8.2 Diffie-Hellman 키교환 공개키 알고리즘 1976년 Diffie와Hellman 발표(일반적으로 Diffie-Hellman (DH)키교환으로 언급됨) 공개키 암호방식의 시초 공개키 알고리즘의 목적 두사용자가 안전하게 키를 교환 메시지의 암호화에 사용 DH 알고리즘의 안전성은 이산 대수(discrete logarithm) 계산의 어려움에 의존 y=gx형태에서 y를 알더라도 x를 계산하기는 불가능 18

  19. 8.2 Diffie-Hellman 키교환(cont’) 이산대수 임의의 소수 p에 대하여 근의 멱승이 1부터 p-1까지의 모든 정수를 생성하는 원시근을 a라 함. 원시근 : 거듭제곱을 해나가면서 그 수와 서로소인 모든 나머지가 나타나는 수 소수는 항상 원시근을 가짐 a의 멱승에 대한 p 모듈로 계산 결과 a mod p, a2mod p, ....., ap-1 mod p 는 1부터 p-1까지의 각각 다른 정수를생성 지수 i : 밑수 a, 모듈로 p에서의 b에 대한 이산대수 또는 색인(index)이라 부름 임의의 정수 b, 소수 p의 원시근 a에 대하여 b = ai mod p, 0 ≤ i ≤ (p-1) 19

  20. 8.2 Diffie-Hellman 키교환(cont’) 이산대수의 예 솟수 p=7, 원시근 a =3 일때, b = a i mod p에서 20

  21. 8.2 Diffie-Hellman 키교환(cont’) DH 키 교환 알고리즘 사용자 A와 B가 키 교환을 한다고 가정 소수 p와 그의 원시근 a는 공개 A : 난수 Xa < p 을 선택, Ya= aXa mod p을 계산, Ya를 B에 전송 B : 난수 Xb < p을 선택, Yb= aXb mod p을 계산, Yb를 A에 전송 A : K = Yb(Xa) mod p를 계산 B : K = Ya(Xb) mod p를 계산 A와 B양쪽의 K값 계산결과는 동일하므로 A와 B가 동일한 비밀키K를 교환하게 됨 21

  22. 8.2 Diffie-Hellman 키교환(cont’) K 값의 동일함 검증 22

  23. 8.2 Diffie-Hellman 키교환(cont’) DH 키 교환의 안전성 Xa와 Xb는 비 공개됨 공개된 p, a, Ya, Yb만을 갖고 공격 키를 결정하기 위해 침입자는 다음의 이산대수를 계산하여야 함 Xb = inda,p (Yb) 큰 소수에 대한 Xb를 찾는 것은 실행 불가능한것으로 간주됨 임의의 정수 Yb와 소수 p의 원시근 a 에 대하여 다음과 같은 유일한 지수 Xb존재 Yb = aXb mod p ; 0 ≤ Xb ≤ (p-1) 지수 Xb를 밑수 a와 모듈로 p에 대한 Xb의 이산대수 또는 인덱스라 하며, 이 값을 inda,p(Yb)로 표현 23

  24. 8.2 Diffie-Hellman 키교환(cont’) 키 교환의 예 • 공격자는 {2, 6}으로부터 1의 계산이 어려움 • 공격자는 {9, 8}으로부터 7의 계산이 어려움 24

  25. 8.2 Diffie-Hellman 키교환(cont’) DH 알고리즘의 응용 각자가 장기간 사용할 Xa를 생성하고 공개값 Ya를 계산 이 공개값들과 솟수 p와 그의 원시근 α을 중앙 디렉토리에 저장 사용자 B는 사용자 A의 공개값을 구하여 비밀키를 계산하고 이를 이용하여 메시지를 암호화하여 A에게 전송 가능 이 방식은 중앙 디렉토리의 신뢰가 전제되어야 함 사용자 A와 B만이 키를 계산할 수 있기 때문에 기밀성을 제공 단지 사용자 B만이 암호화된 메시지를 생성가능으로 인증 제공 (강한 인증기능 필요) 신분 위장이나 재전송 공격(키의 재사용)의 방어는 불가 25

  26. 8.3 타원곡선 연산 8.3.1 타원형 곡선 8.3.2 유한체 상에서 타원형 곡선 8.3.3 타원형 곡선에서의 암호 8.3.4 타원형 곡선 암호의 안전성 공개키 암호방식 표준 및제품은 대부분 RSA를사용 안전한 RSA 를위하여 지속적으로 키의 길이를 증가 26

  27. 8.3 타원곡선 연산 타원곡선 암호란? 타원곡선 위의 이산대수문제를 기반으로 한 공개키 암호 1985년 Koblitz와 Miller에 의해 독립적으로 제안 타원곡선 암호의 장점 작은 키 크기(메모리, 전력 측면에서 우수) 빠른 속도 높은 안전성 : 해독에 지수승 시간이 걸림. 확률적 암호 응용 분야: 키 교환, 서명, 인증, 암호화 타원곡선 암호의 단점 구현의 어려움(유한체 이론 및 정수론에 기반) 메시지 확장이 두 배 27

  28. 8.3.1 타원형 곡선 타원형 곡선의 3차 방정식(타원은 아니며, 3차원 곡선) 타원곡선 형태 : y2 + axy + by = x3 + cx2 + dx +e a, b, c, d, e : 실수 가장 높은 지수가 3이기때문에 3차원이라고 한다. 타원형 곡선의 정의 E = {(x,y) : y2 = x3 + ax + b}U{O} (a, b : 실수) O는 무한원점(point at infinity) 타원형 곡선에서 3점이 일직선상에 있다면, 그들의 합은 O 으로 정의한다. 28

  29. 8.3.1 타원형 곡선(cont’) 실수 체 R 위에서의 타원곡선 E의 임의의 점 P와 Q에 대하여 덧셈을 다음과 같이 정의한다 (1) P + O = P (O는 무한원점) (2) – O = O (3) P = (x1 , y1) ≠ O 이면 -P = (x1 , - y1) (4) Q = –P 이면 P + Q = O (5) P ≠ O, Q ≠ O, Q ≠ - P 일 때, P ≠ Q 이면, 선분 와 그 곡선 E와의 교점을 R이라 할 때 P + Q = - R로, P = Q 이면, P에서의 곡선의 접선과 그 곡선 E와의 교점을 R이라 할 때 P + Q =2P= - R로 정의 29

  30. 8.3.1 타원형 곡선(cont’) R - R 30

  31. 8.3.1 타원형 곡선(cont’) 타원곡선에서의 덧셈 실수체 위의 타원곡선 y2 = x3 + ax + b의 점 P, Q, P + Q의 좌표 (x1, y1), (x2, y2), (x3, y3)라 하면, (1) x1≠x2 : x3 = {(y2 - y1)/(x2 - x1)}2– x1– x2, y3 = - y1 + {(y2 - y1)/(x2 - x1)}(x1 - x3) (2) P = Q : x3 = {(3x12 + a)/(2y1)}2– 2x1, y3 = - y1 + (3x12 + a)/(2y1)(x1 - x3) (3) P = - Q : P + Q = O 31

  32. 8.3.1 타원형 곡선(cont’) 타원곡선에서의 덧셈 예 y2 = x3 - 36x의 점 P = (-3, 9), Q = (-2, 8) P,Q를 지나는 직선 : y = - x + 6 직선과 곡선의 교점의 x좌표는 (- x + 6)2 = x3-36x의 근 => x = -3, - 2, 6이므로 R = (6, 0) => P + Q = - R = (- 6, 0) 32

  33. 8.3.1 타원형 곡선(cont’) 33

  34. 8.3.2 유한체 상에서 타원형 곡선 유한체(finite field) 타원곡선이 정의되어 있는 유한체에 따라서 타원곡선은 서로 다른 형태를 갖게 되며 구현방법도 차이가 있다. 크게 유한체의 표수(characteristic)에 따라 Fp ,F2m와Fpm으로 구분한다 유한체 : 원소의 개수가 유한개인 Field 유한체를 Galois field라고도 부름 34

  35. 8.3.2 유한체 상에서 타원형 곡선 유한체(finite field) 35

  36. 8.3.2 유한체 상에서 타원형 곡선(cont’) “타원형 그룹 mod p”의 정의 4a3 + 27b2 (mod p) ≠ 0 p는 소수, p보다 작은 두 개의 음이 아닌 a와 b를 선택 Ep(a, b)는 타원형 그룹 mod p 를 나타냄 원소 (x, y)는 zero point O 와 함께 y2 ≡x3 + ax + b (mod p)를 만족하는 p 보다 작은 음이 아닌 정수의 쌍 예: p = 23인 경우 타원형 곡선 y2 = x3 + x + 1 의 검토 a = b = 1 4×13 + 27×12 (mod 23) = 8 ≠ 0 를 얻음으로써 “타원형 그룹 mod 23”에 대한 조건을 만족 그림 10.10 : 타원곡선의 식을 만족하는 모든 정수의 점을 표시함 36

  37. 8.3.2 유한체 상에서 타원형 곡선(cont’) 유한체 위에서의 타원곡선 예 체 Z11위에서 y2= x3+x+6에 의하여 정의되는 타원곡선군 E(Z11) = {O} ∪{(2,4), (2,7), (3,5), (3,6), (5,2), (5,9), (7,2), (7,9), (8,3), (8,0), (10,2), (10,9)} 점 P = (2,4), Q = (3,5)에 관한 P+Q=(7,2)이고 2P = (5,9) 실제 P + Q = (7,2)의 x좌표는 x3 = [(5-4) / (3-2)]2– 2 – 3 = -4 ≡ 7 mod 11 37

  38. 8.3.2 유한체 상에서 타원형 곡선(cont’) 38

  39. 8.4.1 타원형 곡선에서의 키 교환 방정식 Q = kP ; 여기서 Q, P ∈ EP (a, b) 이고 k < p 주어진 k와 P로 Q를 계산하는 것은 쉽지만, 주어진 Q와 P로 k를 결정하는 것은 어려움. 1) 키 교환 준비 소수 p  2180 와 a, b 를 선택하여 점 EP(a, b)의 타원형 그룹을 정의 nG = O를 만족하는 n (G의 order)이 매우 큰 소수가 되는 EP(a, b)에서의 생성점 G(x1, y1)을 선택하여 EP(a, b)와 G는 공개 A는 개인키로서 na < n을 선택하고, 공개키 PA = na × G 를 계산(공개키는 EP(a, b)에서의 점) B는 유사하게 개인키 nb를 선택하고 공개키 PB 를 계산 비밀키 Ka= na × PB = na × na × G=nb ×PA = Kb 39

  40. 8.4.2 타원 곡선에서의 암/복호화 암/복호화 시스템 인자로써 생성점 G와 타원형 그룹 EP (a,b)를 요구 암호화 평문 메시지 m을 점 Pm 으로 변환 B는 A에게 줄 공개키 Pb = nb × G를 생성하여 A에게 전송 B에게 메시지 Pm을 보내기 위해 난수 k을 선택 A는 B의 공개키 Pb 와 난수 k를 이용하여 암호문 Cm생성 암호문 Cm = {kG, Pm + kPB } A는 kPB을 Pm에 더함으로써 메시지 Pm 을 감춤 복호화 Pm+kPB-nB (kG)=Pm+k(nBG)-nB (kG)=Pm 40

  41. 8.4.2 타원형 곡선에서의 암호(cont’) 적용 예 가정 p 는 751, 방정식은 y2 = x3 – x + 188 (Ep(-1,188)), G = (0,376) A는 B에게 타원형 점 Pm = (561,201)을 암호화하여 보내고자 함 A가 난수 386을 k 로 선택 B의 공개키 PB = (201,5) 임 Cm = {kG, Pm + kPB } kG = 386(0,376) = (676, 558) Pm + kPB = (561,201) + 386(201,5) = (385, 328) 암호문 Cm = {(676, 558), (385, 328)} 41

  42. 8.4.3 타원형 곡선 암호의 안전성 타원형 곡선 이산대수문제에 기반한 암호 주어진 kP와 P로 k을 결정하는 것이 얼마나 어려운가에 의존 타원형 곡선 대수와 소인수 분해의 계산량 비교 : 표 10.2 1 MIPS-Years : 초당 백만 개의 명령어 처리할 수 있는 프로세서가 1년간 행할 수 있는 계산량 42

More Related