430 likes | 942 Views
전자상거래보안. 공개키 암호. 2010. 9. 중부대학교 정보보호학과 이병천 교수. 차례. 공개키 암호의 개념 기초 암호수학 공개키암호 알고리즘 RSA 암호 ElGamal 암호 전자서명. 1. 공개키 암호의 개념. 공개키 암호의 도입 “ New directions in cryptography ” ; Diffie , Hellman 공개키 암호 방식 이론 발표, 1976년 RSA 공개키 암호 방식 ; Rivest , Shamir, Adleman ,
E N D
전자상거래보안 공개키암호 2010. 9. 중부대학교 정보보호학과 이병천 교수
차례 • 공개키 암호의 개념 • 기초 암호수학 • 공개키암호 알고리즘 • RSA 암호 • ElGamal암호 • 전자서명
1. 공개키 암호의 개념 • 공개키 암호의 도입 • “New directions in cryptography” ; Diffie, Hellman 공개키 암호 방식 이론 발표, 1976년 • RSA 공개키 암호 방식 ; Rivest, Shamir, Adleman, • 소인수분해 문제 이용, 1978년 • MH 공개키 암호 방식 ; Merkle, Hellman, • Knapsack 문제 이용 (c) Byoungcheon Lee, Joongbu Univ.
대칭키 암호와 공개키 암호 대칭키 암호 공개키 암호 (c) Byoungcheon Lee, Joongbu Univ.
공개키 암호 방식 송신자 수신자 암호문 C 평문 M 평문 M E 암호화 D 복호화 가입자 A 가입자 B KeB KdB 공개키 목록 KeB 키생성 seed 공중통신망 (c) Byoungcheon Lee, Joongbu Univ.
공중 통신망 공중 통신망 공개키 암호를 이용한 키관리 KAB KAC KAD KBA KBC KBD KdA 가입자A 가입자A KdB 가입자D 가입자D 가입자B 가입자B KDA KDB KDC KdB KCA KCB KCD 가입자C 가입자C KdC KeA KeB KeC KeD Ke : 공개키 Kd : 비밀키 KAB : AB간의 키 관용 암호 방식 공개키 암호 방식 (c) Byoungcheon Lee, Joongbu Univ.
대칭키 암호방식과 공개키 암호방식의 비교 (c) Byoungcheon Lee, Joongbu Univ.
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) (c) Byoungcheon Lee, Joongbu Univ.
어려운 수학적 문제 • 쉬운 문제: 다항식 문제 (P 문제) • 정해진시간 안에 문제를 풀 수 있는 간단한 알고리즘이 존재 • 어려운 문제: 지수식 문제 (NP 문제) • 정해진시간 안에 문제를 풀 수 있는 간단한 알고리즘이 존재하지 않음. • 소인수분해 문제 • n = p q p, q : 소수 • 이산대수 문제 • y g xmod p (c) Byoungcheon Lee, Joongbu Univ.
f : 135979 x 115979 f -1 135979 115979 ? 135979x115979=15770708441 15770708441 easy difficult 소인수분해 문제 • 소인수분해 문제(factorization problem) • 큰 두 소수의 곱을 구하기는 쉽지만, 큰 두 소수의 곱인 합성수의 소인수 분해가 어려운 점을 이용하는 이론 • 예 : RSA, Rabin, LUC 등 (c) Byoungcheon Lee, Joongbu Univ.
f (x) 10xmod19 f -1 10 Ind109=x f(10) 1010 9mod19 10 x9mod19 easy difficult 이산대수문제 • 이산대수 문제(discrete logarithm problem) • 큰 수 n을 법으로 하는 지수승 y kx mod n은 계산하기 쉽지만, 주어진 y와 k에 대하여 식 y kx mod n을 만족하는 x를 구하기 어려운 점을 이용하는 이론 • Diffie- Hellman, ElGamal, Massey-Omura, ECC (c) Byoungcheon Lee, Joongbu Univ.
2. 기초 암호수학 • 별도 유인물 참조
3. RSA 공개키 암호 • 1977년 MIT의 Ron Rivest, Adi Shamir, Leonard Adleman에 의해 처음으로 제안된 공개키 암호 알고리즘 • 아직도 안전하다고 인정되고 널리 사용됨 • 소인수분해 문제의 어려움 이용 • 키 길이 : 1024비트, 2048비트 Rivest Adleman Shamir (c) Byoungcheon Lee, Joongbu Univ.
RSA 암호 방식 • 키생성 • n = pq계산 p,q : 소수 • (n) = (p –1) (q –1) 계산 : 오일러 함수, n보다 작은 수 중에서 n과 서로 소가 되는 수의 개수. • gcd (e, (n)) = 1 를 만족하는 e 선택 • e d 1 mod (n) 인 d 를 계산 • (e, n) : 공개 암호화 키 • d : 비밀 복호화 키 (c) Byoungcheon Lee, Joongbu Univ.
RSA 암호 방식 (계속) • 암호화 • CM emod n • 복호화 • M C dmod n • 복호화 증명 ed = (n) t + 1 • M Med mod n M (n) t + 1 mod n M (n) tM mod n (M t) (n)M mod n M mod n (c) Byoungcheon Lee, Joongbu Univ.
RSA 암호 방식 (계속) • 암호화 및 복호화 C (c) Byoungcheon Lee, Joongbu Univ.
RSA 암호 방식의 예 • 키생성 • p = 3, q = 11 • n = 33, (33) = (3 –1) (11 – 1) = 20 • e=3을 선택, gcd (3, 20) = 1 • d=7 계산, 3x7=1 mod 20 • 평문 메시지 M = 5 • 암호화 • C M e mod n 53 mod 33 26 • 복호화 • M Cd mod n 267 mod 33 5 (c) Byoungcheon Lee, Joongbu Univ.
공개키 암호의 해독 RSA-200 해독 2005. 5. 9. F. Bahr, M. Boehm, J. Franke, and T. Kleinjung Date: Mon, 9 May 2005 18:05:10 +0200 (CEST) From: Thorsten Kleinjung Subject: rsa200 We have factored RSA200 by GNFS. The factors are RSA-200 = 2799783391122132787082946763872260162107044678695542853756000992932612840010 7609345671052955360856061822351910951365788637105954482006576775098580557613 579098734950144178863178946295187237869221823983 = 3532461934402770121272604978198464368671197400197625023649303468776121253679 423200058547956528088349 × 7925869954478333033347085841480059687737975857364219960734330341455767872818 152135381409304740185467 병렬컴퓨터 이용 2.2GHz Opteron컴퓨터의 75년 계산량 사용 http://www.loria.fr/~zimmerma/records/rsa200 (c) Byoungcheon Lee, Joongbu Univ.
ElGamal 암호 방식 • 이산대수 문제의 어려움을 이용하는 공개키암호 y gx mod p g : 원시원소 p : 소수 y 가 주어졌을 때 x를 구하는 문제 (c) Byoungcheon Lee, Joongbu Univ.
ElGamal 암호 방식 (계속) • 이산대수 문제 예 Z23 51 5 58 16 515 19 mod 23 52 2 59 11 516 3 mod 23 53 10 510 9 517 15 mod 23 54 4 511 22 518 6 mod 23 55 20 512 18 519 7 mod 23 56 8 513 21 520 12 mod 23 57 17 514 13 521 14 mod 23 • 18은 5의 몇제곱수인가? - 12 • 위 표가 없다면 어떻게 알아낼 수 있겠는가? - 어렵죠. (c) Byoungcheon Lee, Joongbu Univ.
Z23에서의 승산표 (c) Byoungcheon Lee, Joongbu Univ.
ElGamal 암호 방식 (계속) • 키생성 • 비밀키 xB선택(p보다 작은 수),공개키 계산yB g XB mod p • 암호화 • k R Zp(p : 소수) – p보다 작은 임의의 난수를 선택 • K yBk • C1 g k mod p • C2 KM mod p (M : 평문) • C = (C1,C2 ) • 복호화 • K (g k) XB mod p C1 XB mod p • M C2 / K mod p (c) Byoungcheon Lee, Joongbu Univ.
ElGamal 암호 방식 (계속) • ElGamal 암호 방식의 구성 C (c) Byoungcheon Lee, Joongbu Univ.
ElGamal암호 방식 • ElGamal 암호 방식 예 C = (21, 18) (c) Byoungcheon Lee, Joongbu Univ.
연습문제 1 • 다음의 경우 ElGamal암호의 키생성, 암호화, 복호화사례를 들어 보시오. (손으로 계산) • p=31인 경우 • p=41인경우
연습문제 2 • 다음의 경우 ElGamal암호의 키생성, 암호화, 복호화 사례를 들어 보시오. (Big Integer Calculator를 이용하여 계산) • p= 251 인경우 • p= 5573 인경우
전자서명의 정의 • 전자서명이란“현재 사용되고 있는 도장이나 사인을 디지털 정보로 구현한 것” • 전자서명의 기능 • 사용자 인증 • 메시지 인증
전자서명의 종류 • RSA (Rivest & Shamir & Adleman제안, 1978) • ElGamal(ElGamal제안 , 1985) • DSA (NIST에서 1991년 미국전자서명 표준으로 제안) • Schnorr(1989년 Schnorr가 개인식별방식과 함께 제안) • GQ (1998년 Guillou와 Quisquater가 제안) • ESIGN (1991년 후지오까, 오까모도, 미야구찌가 제안) • Fiat Shamir (Fiat, Shamir, 1987) • KCDSA (1999, TTA표준) • ECDSA (2000, DSA의 변형, 미국 NIST 전자서명 표준) • EC-KCDSA (2001, KCDSA의 변형, TTA표준) (c) Byoungcheon Lee, Joongbu Univ.
전자서명의 요구조건 • 위조불가 (unforgeable) • 서명자이외의 타인이 서명을 위조하기 어려움 • 서명자 인증 (user authentication) • 서명이 누구의 서명인지 확인할 수 있어야 함 • 부인불가 (non-repudiation) • 서명자는 서명사실을 부인할 수 없어야 함 • 변경불가 (unalterable) • 한번 서명한 문서는 내용을 변조할 수 없어야 함. • 재사용 불가 (not reusable) • 다른 문서의 서명을 위조하거나 하는 목적에 기존의 서명을 이용할 수 없어야 함. (c) Byoungcheon Lee, Joongbu Univ.
수기서명과 전자서명의 비교 (c) Byoungcheon Lee, Joongbu Univ.
해쉬함수 Message M • 해쉬함수란? • 임의의 길이의 입력메시지에 대해 고정된 길이의 해쉬값(특징값, 지문)을 출력하는 함수 • 키를 사용하지 않는 공개된 함수 • 일방향함수: 출력 해쉬값으로부터 입력메시지를 찾아내기 어렵다. • 충돌회피성: 같은 해쉬값을 가지는 메시지쌍을 찾는 것이 어려워야 함 • MD5, SHA1, SHA2, HAS160 등 • 해쉬함수의 응용 • 전자서명 • 메시지인증코드 (공유키 사용) H Message Digest D = H(M) (c) Byoungcheon Lee, Joongbu Univ.
공개키 암호를 이용하는 전자서명 ※본인 인증 송신자는 자신만이 가지고 있는 개인키와 인증기관에서 인증 받은 공개키, 즉 인증서를 통해 본인 임을 입증 ※ 무결성 보장 원문의 해쉬값과전자서명값을 복호화한해쉬값을비교함으로서 위.변조 여부를 판단 ※ 부인 봉쇄 송신자는 자신만이 가지고 있는 개인키를 이용하여 전자서명을 하였으므로 문서를 전송하지 않았다고 부인 불가 해쉬값 원문 원문 비교 전자서명값 전자서명값 해쉬값 해쉬값 개인키 공개키 송신자인증서 송신자(Client) 전자서명 생성 수신자(Server) 전자서명 검증 (c) Byoungcheon Lee, Joongbu Univ.
RSA 전자서명 RSA 공개키암호 알고리즘을 거꾸로 사용 - 개인키를 이용한 서명, 공개키를 이용한 검증 S, M (c) Byoungcheon Lee, Joongbu Univ.
RSA 전자서명 • RSA 전자서명의 예 M = 5, S = 15 (c) Byoungcheon Lee, Joongbu Univ.
연습문제 3 • 다음의 경우 RSA 전자서명의 키생성, 서명, 검증의 사례를 들어보시오. • p=7, q=17 인경우 • p=31, q=47인경우
ElGamal전자서명 • 키생성 • 비밀키 xB선택(p보다 작은 수), • 공개키 계산yB g XB mod p • 서명 • kR Zp –1 • Rgk mod p • H = h(M) • S (H–XAR )k –1mod p –1 • 검증 • H = h(M) • yARRS =? gHmod p 확인
M, S, R ElGamal전자서명 (c) Byoungcheon Lee, Joongbu Univ.
ElGamal 전자서명 • ElGamal 디지털 서명 예 M = 10, S = 11, R = 17 (c) Byoungcheon Lee, Joongbu Univ.
연습문제 4 • 다음의 경우 ElGamal서명 알고리즘의 키생성, 서명, 검증의사례를 들어 보시오. • p=17 인경우 • p=59 인 경우 • p=257 인경우
Schnorr 서명 • 키생성 • 비밀키 xA • 공개키 yA • 서명 생성 • 는 m에 대한 서명 • 서명 검증 해쉬함수의 사용 (c) Byoungcheon Lee, Joongbu Univ.
과제물 • 연습문제 1~4를 풀어서 제출 • 작은 숫자인 경우 손으로 계산하여 풀 것 • 큰 숫자인 경우 Big Integer Calculator 이용 가능