■ 공개키(비대칭키) 암호시스템
- 암호화키와 복호화키가 서로 다른 키를 사용하며. 이들 중 복호화키만 비밀로 간직해야 하는 암호 방식
- 송신자가 수신자의 공개키를 이용하여 암호화하면 수신자는 자신의 개인키를 이용하여 복호화하는 원리
- 대칭키 암호시스템에서 발생하는 키 관리의 어려움 및 키 배송문제를 해결하기 위해 개발
☆ 장점
- 대칭키 암호시스템보다 키 분배 및 키 관리가 용이
- 대칭키 암호시스템보다 확장 가능성이 높음
- 인증과 부인봉쇄 기능을 제공할 수 있음 (전자서명 및 사용자 인증에 사용)
- 범용적으로 사용가능
☆ 단점
- 대칭키 암호시스템보다 큰 길이의 키를 사용하고, 고도의 수학적 연산을 이용하여 구현되므로 암호화 처리시간이 길다
- 공개키 배포에 대한 신뢰성 문제가 있음. 따라서 PKI(Publi Key Infrastructure)와 같은 복잡한 공개키 관리 구조를 필요로 함
■ 기반 알고리즘
★ 소인수분해(인수분해) 기반
- 소인수분해 : 하나의 정수를 소인수로 분해하는 것을 의미. 즉, 충분히 큰 두 개의 소수를 곱하는 것은 쉽지만, 이들 결과를 소인수 분해하는 것은 계산적으로 매우 어려움
- RSA : 공개키 암호 알고리즘의 사실상 표준
- Rabin : 1979년 Rabin이 개발, RSA보다 빠름
- 윌리엄스 암호 : Rabin에서 복호화 시 특정 문제를 개선한 버전
- Goldwasser-Micali : 암호문으로부터 평문의 어떤 정보도 노출되지 않는 암호 방식
★ 이산대수 기반
- Diffie-Hellman (디프헬만) : 중간 관리자(키 관리센터) 없이 공개키 전달 가능, 키 전달 시 도청되어도 키 값을 구할 수 없음
- DSA, KCDSA, ECC, ELGamal 등
- 타원 곡선(ECC : Elliptic Curve Cryptography) : 타원 곡선 상의 이산대수를 이용, RSA보다 작은 비트수로 동일한 암호 강도를 가짐, 키 길이가 제한적인 무선 환경이나 작은 메모리의 시스템에 적합
- Elgamal : 1985년 개발, 같은 평문에서 다른 암호문의 생성이 가능(하지만 길이가 두 배로 증가)
■ 공개키(비대칭키) 암호 종류
1) Diffie-Hellman (디프헬만)
- Diffie-Hellman 키 교환(Diffie-Hellman Key Exchange) 방식은 최초의 공개키 암호 알고리즘으로 1976년 미국 스탠퍼드 대학의 연구원 W.디피와 M.헬먼이 공동 개발하여 발표한 것
- 공개키 암호 방식의 개념을 이용하여 두 사용자 간에 공통의 암호화키를 안전하게 공유할 수 있는 방법을 제시하였으며, 많은 키 분배 방식에 관한 연구의 기본이 되었다
- 「키 교환」이라는 이름이 붙어 있지만 실제로는 키를 교환하는 것이 아니라 공유할 키를 계산하여 제작 (키 합의)
- 이산대수의 어려움을 기반으로 한 알고리즘
- 중간자 공격(MITM : Man In The Middle Attack)에 취약한데, 그 이유는 인증단계가 없기 때문
- 중간자 공격을 막기 위해 전자서명과 공개키 인증서 등을 사용
- 공개된 채널을 통하여 서로 정보를 교환하는 것만으로 공통의 비밀키를 만들어 낼 수 있음
2) RSA(Rivest-Shamir-Adleman : 개발자 세 명의 이름 앞 철자)
- 공개키 암호 알고리즘의 사실상 표준
- 인수분해 문제(Prime Factorization) 해결의 높은 난이도를 이용한 공개키 암호 알고리즘
- 암호화뿐만 아니라 전자서명(디지털 서명)의 용도로도 사용됨
- 키의 크기는 1024 혹은 2048비트
3) DSA (Digital Signature Algorithm)
- 1991년 NTST(미국립표준기술연구소)에서 디지털 서명 규격(DSS : Digital Signature Standard)용으로 개발된 전자서명을 위한 알고리즘
- 이산대수 문제를 이용하는 Schorr와 ElGamal 암호 알고리즘을 변경하여 디지털 서명에 이용하 수 있도록 개발된 것
★ DSA 공개키 방식을 응용한 알고리즘
① KCDSA (Korea Certification-based Digital Signature Algorithm)
- 이산대수 문제의 어려움에 기반을 둔 전자서명 알고리즘
- 한국통신정보보호학회의 주관하에 우리나라의 주요 암호학자들이 주축이 되어 1996년 11월에 개발, 이후 지속적인 수정 및 보완 작업을 거쳐 1998년 10월에 한국정보통신기술협회(TTA)에서 단체 표준으로 제정
② ECDSA (Elliptic Curve Digital Signature Algorithm)
- DSA, RSA와 함께 미국 전자서명 표준(DSS : Digital Signature Standard)에 포함되어 연방정보처리 표준(FIPS)186-2로 승인되었음. WTLS, TLS, S/MIME 등의 보안 프로토콜에 포함된 사실표준
- 전자서명 알고리즘(DSA)에 타원 곡선 암호(ECC) 방식을 이용한 전자서명 알고리즘, 160비트의 키를 갖는 암호 방식으로 1024비트의 RSA(Rivest-Shamir-Adleman) 방식과 대등한 안전성을 가지면서 처리속도를 줄일 수 있어 이동 단말기에 활용됨
③ ECC(Elliptic Curve Cryptosystem)
- 1985년 밀러와 코블리츠가 제안한 타원 곡선 이론에 기반을 둔 공개키 암호 방식, 이산대수에서 사용하는 유한체의 곱셈군을 타원 곡선군으로 대치한 암호 방식
- 공개키(비대칭키) 암호시스템은 안전한 암호시스템이긴 하지만 보안을 위해서는 키의 길이가 매우 커야 한다는 단점이 있음
- 타원 곡선상의 이산대수 문제에 기반을 둔다
- 키 교환, 암호화, 전자서명에 모두 사용 가능
- 유한체 위에서 정의된 타원 곡선 군에서의 이산대수의 문제에 기초한 공개키 암호 알고리즘으로, RSA 암호 방식에 이어 전자상거래의 핵심 기술
- RSA보다 짧은 공개키를 이용하여 비슷한 수준의 보안레벨을 제공, RSA보다 전자서명 생성 속도가 빠름
- 스마트카드, 무선통신 단말기 등과 같이 메모리와 처리능력이 제한된 임베디드 플랫폼과 무선통신 같은 응용분야에 효율적
④ Rabin 암호시스템(Rabin Cryptosystem)
- 1979년 Rabin이 발명한 공개키 암호 방식의 하나
- Rabin 암호시스템은 소인수 분해의 어려움에 안전성의 근거를 둔 것
- Rabin 암호시스템에서 암호화는 매우 간단. 연산은 오직 한 번의 곱셈으로 이루어져 있고, 빠르게 수행됨
- 성능이 낮은 플랫폼에서 잘 활용될 수 있음. 제한된 메모리를 가진 스마트카드 같은 환경에서 응용됨
⑤ ElGamal 방식
- 1982년 ElGamal이 발명한 공용키 암호 방식
- 이산대수 문제에 대한 최초의 공용키 암호. 암호문의 길이가 평문 길이의 2배가 되는 결점이 있음
- ElGamal 암호시스템은 유한체의 이산대수 계산의 어려움에 안전성의 근거를 두고 있음
- RSA를 활용할 수 있는 곳에는 어디에서 사용할 수 있음. 키 교환, 인증, 짧은 메시지의 암호화와 복호화에 사용 가능
- Diffie-Hellman 키 교환 프로토콜의 확장
* RSA는 공개키와 디지털 서명(전자서명)에 동시에 쓸 수 있음
* 전자서명에는 DSA, KCDSA 등이 쓰임
* MITB(The Man-in-the-Browser) : 어떤 사이트에 방문하는 사용자를 감염시킴으로써 이름, 주소, 신용카드 또는 비밀번호와 같은 것을 탈취하는 공격
Diffie-Hellman | RSA | DSA | ECC | Rabin | ElGamal |
이산대수 최초의 공개키 암호 기법 MITM에 취약 |
소인수분해 (=인수분해) 디지털 서명에 이용 1024비트 키 길이 |
이산대수 | 타원 곡선 암호 짧다, 빠르다, 자원 효율적 |
소인수분해 기반 | 이산대수 |
* 인수분해의 일종이 소인수 분해
'정보보호론 > 보안과 암호' 카테고리의 다른 글
해시함수 (Hash Function) (0) | 2020.09.10 |
---|---|
대칭키와 공개키 비교 (0) | 2020.09.10 |
대칭키 암호 시스템 (0) | 2020.09.08 |
해커의 암호공격 방법 (0) | 2020.09.08 |
암호 기법의 분류 (0) | 2020.09.04 |