[정보보안기사 PART 02] 암호학 - 비대칭키 암호
Section 04 비대칭키 암호
1. 비대칭키 암호
(1) 키 배송 문제
1) 개요
- 대칭키 암호를 사용하려고 하면 키 배송 문제(key distribution problem)가 발생
- 키를 보내지 않으면 수신자 밥은 수신한 암호문을 복호화할 수 없다. 키를 보내면 도청자 이브도 복화화할 수 있다.
- 키를 보내서도 안 되는데, 키를 보내서도 안 된다.
- 해결 방안
1. 키의 사전 공유에 의한 해결
2. 키배포 센터에 의한 해결 (온라인 키 분배)
3. Diffle-Hellman 키 교환에 의한 해결
4. 공개키 암호에 의한 해결
2) 키의 사전 공유에 의한 해결
- 키 관리기관(TA, trusted authority)이 사전에 임의의 두 사용자(a, b)에게 비밀 경로를 통하여 임의 키 Ka.b = Kb,a 를 선택하여 전달하는 방법이다.
- 일반적으로 TA와 네트워크 상의 모든 사용자 사이에 안전한 통로가 필요
- 사용자가 많은 경우 많은 키를 관리해야 하는 문제점 발생, 매우 복잡하고 비용이 많이 지불됨
- n명의 사용자, 각 사용자는 n -1 가지 키 관리, TA는 n(n-1)/2 키 관리
3) 키배포 센터에 의한 해결(온라인 키 분배)
- 암호 통신이 필요해질 때마다 통신용 키를 키배포 센터(KDC, key distribution center)라는 신뢰받은 제 3자에 의뢰해서 개인과 키배포 센터 사이에서만 키를 사전에 공유하는 것.
(TA가 네트워크 상의 모든 사용자와 필요할 때마다 키를 공유하는 방법)
- 회사 안에 키배포 센터의 역할을 지정한다. n명의 사원이 있다면 n개의 키를 DB에 저장한다.
4) Diffile - Hellman 키 교환에 의한 해결
- Diffle-Hellman 키 교환(Diffle-Hellman key exchange)은 1976년에 공개키 암호방식을 최초로 제안한 휘트필드 디피(Whitfield Diffie)와 미틴 헬먼(Martin Hellman)이 발명한 알고리즘
- 양쪽 통신주체가 KDC없이 대칭 세션키를 생성
- 대칭키를 만들기 전에 양쪽은 두 개의 수 p와 q를 선택해야한다.
- 여기서 p는 매우 큰 소수로서 300자리가 넘는 십진수(1024비트)이다.
- 키 교환이 아니라 공유할 키를 계산하여 만들어 내는 것이다.
- 유한체상의 이산대수 문제(DLP, Discrete Logarithm Problem)를 풀기 어렵다는 사실을 뒷받침하고 있다.
Diffile-Hellman의 안전성
1. 이산대수 공격
2. 서비스 거부 공격(DoS, Denial of Service)
3. 중간자 공격(man-in-the-middle attack)
5) 공개키 암호에 의한 해결
- 대칭키 암호에서 「암호화키」와 「복호화키」는 같은 것이다. 하지만 공개키 암호에서는 다르다.
- 수신자는 미리 「암호화키」를 송신자에게 알려 준다. 이 「암호화키」는 도청자에게 알려져도 괜찮다. 송신자는 「암호화키」로 암호화하여 수신자에게 보낸다.
- 복호화할 수 있는 것은 「복호화키」를 가지고 있는 사람(수신자)뿐이다. 이렇게 하면 「복호화키」를 수신자에게 배송할 필요가 없다.
(2) 공개키 암호
1) 개요
- 대칭키 암호는 평문을 복잡한 형태로 변환해서 기밀성을 유지한다. 공개키 암호는 수학적으로 해결하기 곤란한 문제를 토대로 해서 기밀성을 유지한다.
- 공개키 암호에서는 「암호화키」와 「복호화키」가 분리되어 있다. 송신자는 「암호화키」를 사용하여 메시지를 암호화하고, 수신자는 「복호화키」를 사용하여 암호문을 복호화한다.
- 키쌍을 이루고 있는 2개의 키는 서로 밀접한 관계(수학적 관계)가 있다. 이 때문에 공개키와 개인키를 각각 별개로 만들 수 없다.
2) 대칭키 vs 비대칭키
- 비대칭키는 수학적인 함수를 사용해서 암,복호화를 하기 떄문에 대칭키보다 처리속도가 느리다.
- 하지만, 비대칭키는 인증이나 전자서명과 대칭키 교환에 유용하게 사용되고 있다.
(3) RSA 암호 시스템
1) 개요
- 공개키 암호 알고리즘의 중의 하나이며, 세계적으로 사실상의(de facto) 표준이다.
- Rivest-Shamir-Adleman의 첫 글자를 따서 붙여졌다.
- 인수분해 문제 해결의 높은 난이도를 이용한 가장 대표적인 공개키 암호 알고리즘으로 암호화뿐만 아니라 전자서명의 용도로도 사용된다.
- SSL 프로토콜을 가진 많은 웹 브라우저, PGP 그리고 공개키 암호시스템을 사용하는 정부시스템 등이 RSA를 사용한다.
2) RSA에 대한 공격
- 수학적 공격 (소인수분해 공격)
- 타이밍 공격 (시간 공격)
- 선택 암호문 공격 (CCA, Chosen Ciphertext Attack)과 OAEP
3) 최적 비대칭키 암호 패딩(OAEP)
- RSA-OAEP(Optimal Asymmetric Encryption Padding)은 RSA를 개량한 알고리즘이다.
- 복호화에서는 평문 해시값과 정해진 개수의 '0' 등으로 만들어진 「인증 정보」를 평문의 앞에 추가하고 RSA로 암호화한다. (패당)
- RSA-OAEP의 복호화에서는 RSA로 복호화한 후 올바른 「인증 정보」가 나타나지 않으면 「평문을 아고 있는 사람이 만든 암호문이 아니다.」라고 판단해서 오류로서 "decryption error"이라는 일종의 오류 메시지를 회신한다.
(4) Rabin 암호시스템(Rabin cryptosystem)
1) 개요
- 함성수 모듈러에 관하여 제곱근을 찾기 어렵다는 사실로부터 안전성을 얻는다.
2) 암호화 복호화
- 오직 한 번의 곱셈으로 이루어져 있고 이 연산은 빠르게 수행된다.
- 성능이 낮은 플랫폼에서 잘 활용될 수 있다. ex) tmakxm zkem
3) Rabin 시스템의 보안
- p와 q가 충분히 크기만 한다면 안전하다.
- 시스템 복잡도는 큰 수 n을 두 개의 소수의 곱으로 소인수분해하는 수준의 복잡도와 동일하다.
(5) ElGamal 방식
1) 개요
- 이산대수 문제에 근거해서 만든 시스템
(오픈 소스를 기초로 하여 키 분배 방식 및 공개키 암호 방식을 실현)
- 디지털 서명, 암호화, 키 교환에 사용될 수 있는 공개키 알고리즘
(ElGamal은 실제로 Diffile-Hellman 알고리즘의 확장이다.)
- 다른 알고리즘과 비교할 때 가장 느리다.
2) 특징
- 평문이 암호문으로 될 때 순서쌍으로 표현되므로 이 암호계에서 암호문의 길이는 평문의 약 2배가 된다.
- 많은 메모리 공간이 필요, 전송 속도 느림.
3) 응용
- RSA를 활용할 수 있는 곳에는 어디에나 사용할 수 있다.
- 키 교환, 인증, 짧은 메시지
(6) 타원 곡선 암호(ECC, Elliptic Curve Cryptosystem)
1) 특징
- 타원곡선 군에서의 이산대수의 문제에 기초한 공개키 암호 알고리즘
- RSA보다 키의 비트수를 적게 하면서도 동일한 성능을 제공하는 것이 가장 큰 특징
- 다양한 암호방식 설계 용이.
(7) 대칭키 방식과 비대칭키 방식의 비교
항목 | 대칭키 | 공개키 |
키의 상호관계 | 암호화키 = 복호화키 | 암호화키 ≠ 복호화키 |
안전한 키길이 | 128비트 이상 | 2048비트 이상 |
암호화키 | 비밀 | 공개 |
복호화키 | 비밀 | 비밀 |
비밀키 전송 | 필요 | 불필요 |
키 개수 | N(N-1)/2 | 2N |
암호화 속도 | 고속 | 저속 |
경제성 | 높다 | 낮다 |
제공 서비스 | 기밀성 | 기밀성, 부인방지, 인증 |
목적 | 데이터(파일) 암호화 | 대칭키 교환 |
전자서명 | 복잡 | 간단 |
단점 | 키 교환 원리가 없다. | 중간자 공격에 취약 |
해당 알고리즘 | DES, 3DES, AES, IDEA | RSA, ECC, DSA |
2. 하이브리드 암호시스템
1) 대칭키 암호와 공개키 암호
- 대칭키 암호를 사용하면 기밀성 유지 가능, 하지만 키 배송 문제 해결할 필요 있다.
- 공개키 암호를 사용하면 복호화에 사용할 키를 배송할 필요가 없어지기 때문에, 대칭키 문제를 해결
- 하지만 공개키 암호는 대칭키 암호에 비해 처리속도가 느리고, 중간자 공격에 약하다.
2) 하이브리드 암호 시스템(hybrid cryptosystem)
- 대칭키 장점 + 공개키 장점
1. 메시지를 고속의 대칭키 암호로 암호화
2. 대칭키 암호의 키 기밀성을 지키기 위해서 이 부분은 공개키 암호 사용
*출처:[알기사] 2019 정보보안기사&산업기사
*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.
'자격증 > 정보보안기사' 카테고리의 다른 글
[정보보안기사 PART 02] 암호학 - 전자서명과 PKI (0) | 2020.04.18 |
---|---|
[정보보안기사 PART 02] 암호학 - 해시함수와 응용 (0) | 2020.04.17 |
[정보보안기사 PART 02] 암호학 - 대칭키 암호 (0) | 2020.04.06 |
[정보보안기사 PART 02] 암호학 - 암호학 개요 (1) | 2020.04.05 |
[정보보안기사 PART 01] 정보보호 개요 (4) | 2020.04.03 |