1 / 34

공개열쇠 암호

공개열쇠 암호. 2001. 11. 단국대학교 이민섭 E-Mail : msrhee@dankook.ac.kr . 목 차. 1. 서론 2. 일방향함수 3. 일방향함수의 예 4. 부분집합의 합 문제를 이용한 암호 5. 소인수분해의 어려움을 이용한 암호 6. 이산대수 문제를 이용한 암호 7. 타원곡선 암호 8. 공개열쇠 암호의 응용. A. B. F. E. C. D. 서 론. 대칭키 분배 문제 대칭키 관리 문제 n 명이 상호통신을 하려면 개의 열쇠 필요

ulani
Download Presentation

공개열쇠 암호

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. 공개열쇠 암호 2001. 11. 단국대학교 이민섭 E-Mail : msrhee@dankook.ac.kr

  2. 목 차 • 1. 서론 • 2. 일방향함수 • 3. 일방향함수의 예 • 4. 부분집합의 합 문제를 이용한 암호 • 5. 소인수분해의 어려움을 이용한 암호 • 6. 이산대수 문제를 이용한 암호 • 7. 타원곡선 암호 • 8. 공개열쇠 암호의 응용 www.anseo.dankook.ac.kr/~cryptec

  3. A B F E C D 서 론 • 대칭키 분배 문제 • 대칭키 관리 문제 • n명이 상호통신을 하려면 개의 열쇠 필요 • W.Diffie와 M.Hellman이 새로운 방안 제시(1976년) • “New Directions in Cryptography” • 암호화 열쇠와 복호화 열쇠 사이의 관계가 독립적인 비대칭 암호 설계 • Trapdoor 일방향함수를 이용하여 암호시스템 설계 • Merkle-Hellman, RSA, ElGamal, ECC 등 www.anseo.dankook.ac.kr/~cryptec

  4. f x f(x)= y easy f-1 f-1 x= f-1 (y) x= f-1 (y) y y easy difficult trapdoor 일방향함수(One Way Function) • 일방향함수(one way function) • 덫문 일방향 함수(trapdoor one way function) www.anseo.dankook.ac.kr/~cryptec

  5. f(m1,m2 ,…, mn)= y (m1,m2 ,m3 ,…, mn) easy f-1 : y (m1,m2 ,m3 ,…, mn) (?) difficult 초증가수열 S* (trapdoor) 일방향함수(One Way Function) • 부분집합의 합 문제 • 많은 큰 수들의 집합에서 선택된 수들의 합을 구하는 일은 쉽지만, 주어진 합으로부터 선택된 수를 찾기 어려운 점을 이용하는 이론 • 양의 정수들의 집합 S={x1,x2 ,x3 ,…, xn}에 대하여 www.anseo.dankook.ac.kr/~cryptec

  6. 일방향함수(One Way Function) • 부분집합의 합 문제의 예 • S={x1,x2 ,x3 ,…, x8} • 이진수열 (m1,m2 ,m3 ,…, mn )이 주어진 경우 m1x1+ m2x2+…+ mnxn = y • Y가 주어진 경우 y=m1x1+ m2x2+…+ mnxn = y 를 만족하는 이진벡터 (m1,m2 ,m3 ,…, mn )를 구하는 문제 • S={x1,x2 ,x3 ,…, x8} = {1078,684,201,497,683,1428,1197,31} • (01101110)이 주어진 경우 x2+ x3 +x5+ x6+ x7 = 684+ 201 + 683 +1428 +1197 = 4199 을 쉽게 수할 수 있다 • 4199가 주어진 경우 (01101110)을 구하는 것은 어렵다 (28 가지 모두 시행) easy www.anseo.dankook.ac.kr/~cryptec

  7. 일방향함수(One Way Function) • 초증가수열 S* • 양의 정수들의 집합 S*={d1,d2 ,d3 ,…, dn}가 임의의 j>1에 대하여 dj>d1+d2+…+dj-1를 만족하는 수열 • 초증가수열의 예 • 공비가 2이상인 등비수열 : S*={1,2,22,23, …, 2n} • 예 : S={6,15,31,55,112,243,529,1015} : 초증가 수열의 집합 • 합이 930인 경우 (1) 1015는 없다 m8 = 0 (2) 529는 반드시 있어야 한다 : m7= 1 (3) 930-529=4 이므로 243은 반드시 있어야 한다. m6= 1 같은 방법으로 계속 시행하면 (01101110)을 얻을 수 있다 • 초증가수열을 이용한 암호의 예 : Merkle-Hellman www.anseo.dankook.ac.kr/~cryptec

  8. f : 135979 x 115979 f -1 135979 115979 ? 135979x115979=15770708441 15770708441 easy difficult 소인수분해 문제 • 소인수분해 문제(factorization problem) • 큰 두 소수의 곱을 구하기는 쉽지만, 큰 두 소수의 곱인 합성수의 소인수 분해가 어려운 점을 이용하는 이론 • 예 : RSA, Rabin, LUC 등 www.anseo.dankook.ac.kr/~cryptec

  9. f (x)  10xmod19 f -1 10 Ind109=x f(10)  1010 9mod19 10 x9mod19 easy difficult 이산대수문제 • 이산대수 문제(discrete logarithm problem) • 큰 수 n을 법으로 하는 지수승 y kx mod n은 계산하기 쉽지만, 주어진 y와 k에 대하여 식 y kx mod n을 만족하는 x를 구하기 어려운 점을 이용하는 이론 • Diffie- Hellman, ElGamal, Massey-Omura, ECC www.anseo.dankook.ac.kr/~cryptec

  10. 19를 법으로 하는 지수•로그표 www.anseo.dankook.ac.kr/~cryptec

  11. B의 개인키 DB = 복호화 열쇠 (비공개) B의 공개키 EB = 암호화 열쇠 (공개) Trapdoor을 이용하여 EB 로 부터 DB를 구함 평문 P 평문 P 암호 알고리즘 복호 알고리즘 사용자 A 암호문 C=EB (p) 사용자 B 덫문일방향함수와 공개열쇠암호 • 공개열쇠암호 • 암호화 열쇠로부터 복호화 열쇠를 얻기가 거의 불가능한 암호계 www.anseo.dankook.ac.kr/~cryptec

  12. Merkle-Hellman 암호계 • 열쇠생성과정 • 양의 정수들의 초증가수열 집합 S*={d1,d2 ,…, dk} 선택 • 소수 p와 1<n<p를 만족하는 정수 n선택 • p를 법으로 한 n의 역원n-1을 계산 • gcd(n,p) =1= n-1•n + p•t, t는 적당한 정수 • 각 di에 대하여 ei ndimod p를 계산, 초증가수열이 아닌 집합 S={e1,e2 ,…, ek}를 구함 • 공개열쇠(공개) : S={e1,e2 ,…, ek} • 개인열쇠(비공개) : (p,n, n-1,S*) www.anseo.dankook.ac.kr/~cryptec

  13. Merkle-Hellman 암호계 • 암호화 과정 • 평문을 이진벡터 (m1,m2 ,m3 ,…, mk)로 표현 • 열쇠집합 S={e1,e2 ,…, ek}를 이용하여 C=m1e1+ m2e2+…+ mkek 를 계산하여 암호문 C를 생성 • 복호화 과정 • n-1를 이용하여 D  n-1• Cmod p를 계산. 즉 D  n-1• Cmod p  m1n-1e1+m2n-1e2+…+mkn-1ek  m1e1+ m2e2+…+ mkek • 초증가수열집합 S*={d1,d2 ,…, dk} 를 이용하여 평문을 이진벡터 (m1,m2 ,m3 ,…, mk)를 얻음 www.anseo.dankook.ac.kr/~cryptec

  14. Merkle-Hellman 암호계의 예 공개(키서버에 등록) S={e1,e2 ,…, ek} ={1078,684,207,497,683,1428,1197,31} 사용자 A 사용자 B S*={d1,d2 ,d3 ,…, d8} ={6,15,31,55,112,243,529,1015} P=2001 , n=850 , n-1 = 1914 S={e1,e2 ,…, ek} ={1078,684,207,497,683,1428,1197,31} 평문 P=(0,1,1,0,1,1,1,0) C=m1e1+ m2e2+…+ m8e8 =684+207+683+1428+1197 =4199 D  n-1• Cmod p  1914x4199 mod 2001  930 mod 2011 암호문 C=4199 평문 P=(0,1,1,0,1,1,1,0) www.anseo.dankook.ac.kr/~cryptec

  15. f(x)xe mod n x f(x)= y easy f-1(y)x  (xe)d mod n x= f-1(y) y difficult (n) =(p-1)(q-1) Trapdoor RSA 암호 • RSA 암호 • 1978년, 미국 M.I.T대학의 Rivest, Shamir 그리고 Adleman에 의해서 고안된 공개열쇠 암호 • 소인수분해의 어려움에 기반 • n=pq • ed1 mod (n)을 만족하는 양의 정수 • (n)=(p-1)(q-1) www.anseo.dankook.ac.kr/~cryptec

  16. 공개(키서버에 등록) n, e n=pq을 계산(소수 p,q 선택) (n)과 서로소인 e를 선택 (즉, (e, (n))=1) d : ed1 mod (n)을 만족하는 양의 정수를 계산(단, (n)=(p-1)(q-1)) 공개 열쇠 : n,e 개인열쇠 : d 사용자 A 사용자 B 사용자 B가 전문P를 보낼 때 P=D(C) Cd (Pe)d mod n C=E(P) Pe mod n C=E(P) 사용자 A가 서명S을 보낼 때 S=E(P) Pdmod n P=D(S) Se mod n (Pd)e mod n S=E(P) RSA 공개열쇠 암호 www.anseo.dankook.ac.kr/~cryptec

  17. 공개 : n=2173 e=207 n=pq을 계산(소수 p,q 선택) (n)과 서로소인 e를 선택 (즉, (e, (n))=1) d : ed1 mod (n)을 만족하는 양의 정수를 계산(단, (n)=(p-1)(q-1)) 공개 열쇠 : n,e 개인열쇠 : d 사용자 A 사용자 B RSA 암호 예 p=41 q=53 선택 n= 2173 , (n)=2083 ,d=623, e=207 d=623 이므로 1566623  594 mod 2173, 1963623  80 mod 2173 1150623 1156 mod 2173 … 11자리 블록: 01001010010 00001010000 … 이진수: 0100 1010 0100 0001 0100 0010 … ASCII: 4A 41 42 42 45 52 57 49 43 4B 59 전 문: J A B B E R W I C K Y 전 문: J A B B E R W I C K Y ASCII: 4A 41 42 42 45 52 57 49 43 4B 59 이진수: 0100 1010 0100 0001 0100 0010 … 11자리 블록: 01001010010 00001010000 … 10진수: 594, 80, 1156, 1109, 299, 1317,105,857 암호화: 594207 1566 mod 2173 80207 1963 mod 2173 , 1156207 1150 mod 2173 … B가 전문을 보낼때 www.anseo.dankook.ac.kr/~cryptec

  18. RSA의 이론적 배경 • 좋은 RSA암호계가 되기 위한 p,q,d의 조건 • p,q는 같지 않고 거의 같은 크기의 자리 수이어야 한다. • 100자리 이상의 소수 • p-1과 q-1은 매우 큰 소인수를 가져야 한다. • gcd(p-1, q-1)은 작은 값이어야 한다. • Max{p,q}+1<d<n-1이 되도록 d를 선택해야 한다. • RSA암호의 해독문제 • 공개열쇠 e와 n을 이용하여 ed1 mod (n)를 만족하는d를 구하는 문제 • 임의의 자연수 e와 k가 서로소이면 ed1 mod k인 d는 존재하며 Lame의 정리와 Euclid호제법을 이용하여 구함 • n의 소인수분해 문제 ⇔ (n)=(p-1)(q-1)을 구하는 문제 www.anseo.dankook.ac.kr/~cryptec

  19. 소인수분해문제 • 인수분해의 효율적인 알고리즘 • 이차선별법 • 1983년, 69자리의 10진수 소인수분해 • 1989년, 106자리의 10진수 소인수분해 • 1994년, 129자리(428비트)의 10진수 소인수분해(RSA-129) • 수체선별법 • 이차선별법보다 더 효율적(120자리 이상의 합성수) • 1996년, 130자리의 10진수 소인수분해(RSA-130) • 타원곡선법 • 소인수분해 예측시간 MIPS년 =초당 1,000,000회 시행하여 1년간 시행 = 3.1X1013 회 시행 www.anseo.dankook.ac.kr/~cryptec

  20. 공개(키서버에 등록) n, B n=pq (p≡3mod 4, q≡3mod 4인 소수) 사용자 A 사용자 B 사용자 B가 사용자A에게 전문을 보낼 때 복호변환 함수 암호변환 함수 C=E(P)P(P+B)mod n Rabin암호 • Rabin암호 • 소인수 분해의 어려움에 기반 www.anseo.dankook.ac.kr/~cryptec

  21. 공개열쇠 : p, g (단, p는 소수이고 g는 Fp의 생성원) 송신자 A A 와 B의 암호열쇠(ga)bmod p 수신자 B 비밀열쇠 : a 선택 공개열쇠 : ga mod p 비밀열쇠: b 선택 공개열쇠 : gb mod p 이산로그를 이용한 공개열쇠 암호들 • Diffie-Hellman 열쇠 교환시스템 • 원리 : 체 Fp위에서 ga과 gb을 가지고 gab를 얻기 어려움 • 1984년 Coppersmith에 의하여 p = 2n인 경우로 일반화 www.anseo.dankook.ac.kr/~cryptec

  22. Massey-Omura 암호계 • 1983 년 Massey 와 Omura 에 의하여 개발된 암호계 • 원리 • Galois 체 Fq만 공개되고 각 사용자 X는 임의의 수 eX를 gcd(eX,q-1)=1 이 되도록 선택하고 dX eX 1 mod q이 되는dX를 구하고, (eX, dX)을 공개하지 않는다. • 개인(비밀)열쇠 • 사용자 A : (eA, dA)사용자 B : (eB, dB) www.anseo.dankook.ac.kr/~cryptec

  23. 공개 : Fq 송신자 A 수신자 B 비밀열쇠 : (eA, dA) 평문 : P peAmod q 를 계산 peAmod q peAeBdA peBmod q 를 계산 peAeBmod q peBdB pmod q를 계산 peBmod q Massey-Omura 암호계 비밀열쇠 : (eB, dB) peAeBmod q를 계산 www.anseo.dankook.ac.kr/~cryptec

  24. 공개 원시다항식 x5+x2+1로 가지는 체 F32 송신자 A 수신자 B 비밀열쇠 : (eA=15, dA=29) 평문 : P=10110= 24+22+2 peA = (24+22+2)15 = 24+2+1=10011를 계산 비밀열쇠 : (eB=7, dB=9) peAeB=(24+2+1)7 =24+22+2+1=10111 을 계산 peA=10011 peAeB=10111 peB =(24+22+2+1)29 = 24+1=10001를 계산 peB=10001 peBdB =(24+1)9=24+22+2=10110를 계산 Massey-Omura 암호계의 예 www.anseo.dankook.ac.kr/~cryptec

  25. 공개 : g, gamod q 수신자 A 송신자 B (gk)agak mod q 계산 Pgak / gak  P 계산 (gk ,Pgak) 임의의 k 선택 Pgakmod q 를 계산 ElGamal 암호 • ElGamal 암호 • 1985년 ElGamal이 Galois 체 Fq 위에서 제안한 암호 • 큰 위수를 가지는 임의의 원소 g를 공개하고 각 사용자 A는 자신이 임의의 수 a (0<a<q-1)를 선택해서, gamod q 를 계산하고, a는 공개하지 않고, gamod q 는 공개한다. www.anseo.dankook.ac.kr/~cryptec

  26. 원시다항식: x13 + x5+ x4+ x2+1을 이용한 체 F8192 공개 : g = x +1, ga = x11+ x9+ x8+ x7+x6 + x5+ x3+ x2+x 수신자 A 송신자 B ElGamal 암호 예 P= x12+ x10+ x9+ x7+x6 + x5+ x3+ x2+x+1 을 보내기 위해 k=5192선택 gk = (x +1)5192 = x10+ x9+ x5+x+1 (ga)k = x11 + x3 + 1 Pgak = x10+ x9+x6 + x5+ x4+ x3+x 개인열쇠 : a=200 (gk)ax11 + x3 + 1 Pgak / gak  x12+ x10+ x9+ x7+x6 + x5+ x3+ x2+x+1 (gk ,Pgak ) 전송 www.anseo.dankook.ac.kr/~cryptec

  27. 타원곡선 암호 • 타원곡선의 정의 • E = {(x,y) : y2 = x3 + ax + b}U{O} • 실수체 R 위에서의 타원곡선 E의 임의의 점 P와 Q에 대하여 덧셈을 다음과 같이 정의한다. (1) P + O = O + P (O는 무한원점) (2) – O = O (3) P = (x1 , y1) ≠ O 이면 P + Q = (x1 , - y1) (4) Q = –P 이면 P + Q = O (5) P ≠ O, Q ≠ O, Q ≠ - P 일 때, P ≠ O 이면, 선분 와 그 곡선 E와의 교점을 R이라 할 때 P + Q = - R로, P = O 이면, P에서의 곡선의 접선과 그 곡선 E와의 교점을 R이라 할 때 P + Q = - R로 정의 A 2A www.anseo.dankook.ac.kr/~cryptec

  28. 타원곡선 암호계 • 타원곡선에서의 덧셈 • 실수체 위의 타원곡선 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 • 타원곡선에서의 덧셈 예 • 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) www.anseo.dankook.ac.kr/~cryptec

  29. 타원곡선 암호 • 유한체 위에서의 타원곡선 예 • 체 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 www.anseo.dankook.ac.kr/~cryptec

  30. 타원곡선 암호 • 타원곡선 암호의 예 • 타원곡선을 이용한 Massey-Omura 암호계 • 공개사항 : Fq, E, N • 1단계 : A와 B는 각각 eA와 eB를 선택하고 각각 dA ≡ eA-1 modN 과 dB ≡ eB-1 modN을 계산. • 2단계 : A는 eAP를 계산하여 사용자 B에게 보낸다. • 3단계 : B는 eB(eAP)를 계산하여 사용자 A에게 보낸다. • 4단계 : A는 dA(eBeAP) = eBP를 계산하여 B에게 보낸다. • 5단계 : B는 dB(eBP) = P를 계산하여 A에게 보낸다. www.anseo.dankook.ac.kr/~cryptec

  31. 타원곡선 암호 • 타원곡선 암호의 예 • 타원곡선을 이용한 ElGamal 암호계 • 공개사항 : Fq, E, Q • 1단계 : A와 B는 각각 aA∈Z와 aB ∈Z를 선택하여 개인열쇠로 하고 aAQ와 aBQ를 계산하여 공개. • 2단계 : A는 k ∈Z를 선택하고 (kQ, P+k(aBQ))를 계산, B에게 보냄. • 3단계 : B는 aB(kQ) = aBkQ를 계산, P +kaBQ – aBkQ =P를 얻음. www.anseo.dankook.ac.kr/~cryptec

  32. 타원곡선 암호 • 타원곡선의 안전성 www.anseo.dankook.ac.kr/~cryptec

  33. 공개열쇠 암호의 응용 • 서명 • 컴퓨터 통신망을 통하여 전달되는 전자적 형태로 저장된 서류에 서명 • 위조불가(Unforgeable), 서명자인증(Authentic), 부인불가(Nonrepudiation) 변경불가(Unalterable), 재사용불가(Not Reusable) • Hash 함수 • 임의의 길이의 입력 메세지를 고정된 길이의 출력값으로 압축시키는 함수 • 데이타의 무결성 검증, 메세지 인증에 사용 • 충돌회피함수 • 열쇠분배 및 공유 • 사용자 또는 기관이 비밀열쇠를 설정하여 다른 사용자에게 전달하는 • 신원확인 • 개인의 신원을 전자적으로 증명 www.anseo.dankook.ac.kr/~cryptec

  34. 공개열쇠 암호의 응용 • 비밀분산 • 비밀을 분산시키는 방법으로 열쇠를 분산 • 영지식증명 • 한 사람이 다른 사람에게 사실의 증명에 관한 어떤 정보도 보이지 않고, 사실의 증명을 알고 있음을 확신하도록 만드는 방법 • 전화로 동전던지기 www.anseo.dankook.ac.kr/~cryptec

More Related