[정보보안기사 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없이 대칭 세션키를 생성

- 대칭키를 만들기 전에 양쪽은 두 개의 수 pq를 선택해야한다.

- 여기서 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 정보보안기사&산업기사

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

+ Recent posts