암호-4장. 공개키 암호 ㅎㅎ 정보보호 기능의 가장 핵심적 기술인 암호를 다룬다. 흥미로운 암호의 역사를 소개하고, 고전적인 암호체계로부터 현대적인 디지털 암호체계에 이르는 기술의 발전을 살펴보고 현대의 고급 암호분석 기법을 소개한다. 한빛미디어(주)
학습목표 4장. 공개키 암호 공개키 암호에 대한 주요 주제를 다룬다. 배낭암호 해독 사례를 소개하고 RSA, 디피-헬먼 암호를 설명한다. ECC의 역할과 서명/부인봉쇄를 설명하고 PKI의 문제점을 다룬다.
두 개의 키 트랩도어 단방향 함수를 기반 Section 01 서론 (1/2) 송신자는 수령자의 공개키로 암호화 수신자는 자신의 개인키로 복호화 트랩도어 단방향 함수를 기반 한 방향은 계산하기가 용이 다른 방향은 계산하기가 난해 “트랩”은 키를 생산하기 위해 사용 예제: 주어진 p와 q에서, N=pq 는 계산하기가 용이하나 주어진 N에서 p와 q를 찾기는 난해하다.
암호화 전자서명 Section 01 서론 (2/2) 밥의 공개키로 M을 암호화 한다고 가정 개인키로 “암호화”함으로 서명 서명을 확인하기 위해서는 누구나 공개키로 “복호화” 개인키를 가진 자만이 서명이 가능 손으로 서명하는 것과 유사
콕스(GCHQ)와 또 독립적으로 리베스트, 샤미르 그리고 애들맨(MIT)에 의해 발명 RSA 콕스(GCHQ)와 또 독립적으로 리베스트, 샤미르 그리고 애들맨(MIT)에 의해 발명 p와 q를 큰 소수라고 하자. N = pq 를 모듈로스라 하자 e를 (p-1)(q-1)에 서로 소로 선정 ed = 1 mod (p-1)(q-1)를 만족하는 d로 선정 공개키: (N,e) 개인키: d
인수분해만이 유일하게 RSA를 해독하는 방법인지는 알려지지 않았음 Section 03 배낭문제-RSA 메시지 M을 암호화 C = Me mod N 암호문 C를 복호화 M = Cd mod N E와 N은 공개키임을 상기할 것 ed = 1 mod (p1)(q1) 이므로, 만약 공격자가 N을 인수 분해할 수 있으면, e를 사용하여 쉽게 d를 찾을 수 있음. 모듈로스의 인수분해는 RSA를 해독 인수분해만이 유일하게 RSA를 해독하는 방법인지는 알려지지 않았음
RSA 예제 공개키: (N, e) = (33, 3) 개인키: d = 7 간단한 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
공개키: (N, e) = (33, 3) 개인키: d = 7 메시지: M = 8 암호문 C C 복호화 간단한 RSA 예제 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
타원곡선은 공개키 체계를 수학적으로 수행하는 한 가지 다른 방법 타원곡선에는 DH, RSA 버전 등이 있다 Section 05 타원곡선 암호(ECC) “타원곡선”은 암호체계가 아니다. 타원곡선은 공개키 체계를 수학적으로 수행하는 한 가지 다른 방법 타원곡선에는 DH, RSA 버전 등이 있다 타원곡선은 다른 체계에 비해 효율적 일 수 있다 같은 비밀성을 위해 더 적은 비트를 사용 그러나 연산들은 더욱 복잡
비밀성 인증 전자 서명은 무결성과 부인봉쇄를 제공 Section 06 공개키의 용도 데이터를 안전하지 않은 채널로 전송 안전하지 않은 미디어에 안전하게 저장 인증 전자 서명은 무결성과 부인봉쇄를 제공 대칭키로 부인봉쇄는 불가
할 수 있다! 앨리스의 개인키를 가진 사람만이 그 주문에 서명할 수 있다. 부인 봉쇄 앨리스가 100장의 주식을 밥에게서 주문 앨리스는 그녀의 개인키로 주문을 서명 주식값 폭락, 앨리스는 주문하지 않았다고 주장 밥이 앨리스의 주문을 증명할 수 있는가? 할 수 있다! 앨리스의 개인키를 가진 사람만이 그 주문에 서명할 수 있다.
Section 06 선서명 후암호화 vs. 선암호화 후서명-공개키 표기법 서명: 앨리스의 개인키로 메시지 M 서명: [M]앨리스 암호화: 앨리스의 공개키로 메시지 M 암호화: {M}앨리스 그러면 {[M]앨리스}앨리스 = M [{M}앨리스]앨리스 = M
비밀성과 부인봉쇄 둘 다 원한다고 가정 공개키 암호로 두 가지 모두 가능한가? 앨리스가 밥에게 메시지 전송 선서명 후암호화 {[M]앨리스}밥 선암호화 후서명 [{M}밥]앨리스 순서가 의미가 있는 것인가?
M = “나는 당신을 죽도록 사랑합니다.” {[M]앨리스}밥 {[M]앨리스}챨리 앨리스 밥 챨리 Sign and Encrypt 문제: 무엇이 문제인가? 답: 챨리는 암호를 잘못 이해한다! {[M]앨리스}밥 {[M]앨리스}챨리 앨리스 밥 챨리
인증기관은 인증서에 서명하고 그 인증서를 발행하는 제3의 신뢰성 있는 기관 서명을 확인하는 것은 해당되는 개인키의 소유자의 동일성 여부를 확인 서명을 확인하는 것이 인증서의 공급원을 확인하는 것이 아님! 인증서는 공개! 만약 CA가 잘못하면 큰 문제가 발생(예를 들면 CA가 다른 사람에게 마이크로 소프트의 인증을 발행!) 인증서의 일반 양식은 X.509
공개키 기반체계는 공개키 암호를 안전하게 사용하는데 필요한 모든 요소들로 구성 PKI 공개키 기반체계는 공개키 암호를 안전하게 사용하는데 필요한 모든 요소들로 구성 키 생산과 관리 인증 기관 인증 폐기 등 PKI 일반적인 표준을 없음 몇 가지 “신뢰 모텔들”을 검토 챨리
완전 독점 모텔 소수 독점 모델 PKI 신뢰 모델 (1/2) 모든 분야의 신뢰 조직은 하나의 CA만을 사용 VeriSign을 가장 선호 (당연한 이유) 만약 CA가 손상되면 큰 문제 만약 CA를 신뢰하지 못하면 큰 문제! 소수 독점 모델 다수의 신뢰받는 CA 이 접근 방법이 현재 브라우즈에서 사용 브라우저는 서명들을 확인하기 위해 80개 이상의 인증서를 보유! 사용자는 신뢰하는 CA를 결정할 수 있음
완전 자유 모델 PKI 신뢰 모델 (2/2) 모든 사람이 하나의 CA! 사용자가 어떤 “CAs”를 신뢰할 것인지 결정 이 접근 방법은 PGP (신뢰의 웹) 에서 사용 왜 이 방법을 “완전 자유” 모델이라고 부르는가? 인증서가 프랭크에 의해 서명되었고 A는 프랭크를 모른다고 가정. 그러나 A는 밥을 신뢰하고 밥은 앨리스를 신뢰하고 앨리스는 프랭크를 보증한다면, A는 프랭크를 신뢰해야 하는가?
대칭키 공개키Public Key 실세계에서 보안성-대칭키 대 공개키 속도 공개키 기반체계(PKI) 불필요 서명 (부인봉쇄) 키 공유 불필요
공개키 암호 표기 개인키 암호 표기 표기법 재정리 앨리스의 개인키로 메시지 M 서명 앨리스의 공개키로 메시지 암호화 평문 P를 대칭키 K로 암호화 C = E(P,K) C = EK(P) 암호문 C를 대칭키 K로 복호화 P = D(C,K) P=DK(C)
혼합 암호체계 {K}밥 E(밥의 데이터, K) E(앨리스의 데이터, K) 밥 앨리스 실세계 보안성 키 설정을 위한 공개키 암호 데이터 암호를 위한 대칭키 암호 다음의 경우 밥이 앨리스와 안전하게 대화할 수 있는가? {K}밥 E(밥의 데이터, K) E(앨리스의 데이터, K) 밥 앨리스