본문 바로가기
공부/정보보안&암호학

기밀성 보안 알고리즘(DH>RSA >PKI>SSL/TLS)

by 맑은청이 2020. 9. 28.
728x90
반응형

 사이버 보안은 일반적으로 다음과 같은 구성체계를 이룹니다.

 

사이버 보안의 구성 체계 

기밀성 주고받은 정보의 비밀성 보장하는 개념
무결성 주고받은 정보가 변경되지 않았음을 보장하는 개념
기용성 정당한 사용자가 필요할 때마다 즉각적으로 정보에 접근해 사용하는 개념
인증 송신자와 수신자 사이의 확신성을 보장하는 개념
부인 봉쇄 수신자가 정보를 받았는데 안 받았다고 부인하지 못하게 방지하는 개념 

 

 이 중에서 기밀성이 사이버 보안의 기본이자 중심을 이룹니다. 무결성들은 좀 더 완벽한 기밀성을 위해 파생된 개념이죠. 이 두 개념을 중심으로 자주 사용되는 보안 알고리즘 내용을 알아봅시다.

 

 

▶기밀성 보안 알고리즘

 

 사이버 암호 체계에서 암호 해독문을 키(Key) 라고 부르는데 송수신자가 사용하는 열쇠 방식에 따라 대칭 암호 구조와 비대칭 암호 구조로 구분합니다.

대칭 암호 구조란 송신자와 수신자가 사용하는 열쇠가 동일한 경우이고 비대칭은 동일하지 않은 경우입니다. 

 

 대칭 암호 구조에서 송수신자가 동일하게 사용하는 열쇠는 비밀 키(Secret Key)이고 

비대칭 구조에서는 공개키/ 개인키 (Public Key/ Private Key)라고 부릅니다. 

 

 

암호화 : 평문을 암호문으로 변경

복호화 : 암호문을 평문으로 변경

 

 여기서 문제는 '비밀 열쇠 교환의 문제'입니다. 

암호화를 위한 비밀키 교환을 어떻게 비밀스럽게 진행할까요? 

 

 송신자가 수신자에게 그냥 전달할 수 없습니다. 

제 3자가 탈취할 수도 있기 때문이죠. 

 

 이는 과거부터 상당한 난제였는데요. 

해결한 사람이 있습니다. 

디피(Diffie)와 헬먼(Hellman)이었는데요. 

이른바 디피-헬먼 알고리즘(DH)입니다.

 

디피-헬먼 알고리즘

 

디피-헬먼 알고리즘은 다음과 같은 과정으로 이루어집니다. 

 

수신자와 송신자 각각 개인키, 공개키를 생성하고 각자의 공개키를 교환합니다. 그리고 이를 자신의 개인키와 합치면 비밀키가 나와서 모두가 비밀키를 획득하게 됩니다. 

 

DH

대칭 암호에는 대표적으로 DES(Data Encrytion Standard) AES(Advanced Encryption Standard) 방식이 있습니다. 이 암호화를 사용하기 전에 디피 헬먼을 통해서 비밀키를 공유하는 과정이 필요한 겁니다. 

 

 

DH알고리즘의 한계는 여기서 생성된 공개키 개인키는 오직 비밀키를 얻는 데만 사용할 수 있다는 겁니다. 직접 암호화 과정에 사용할 수 는 없었습니다.

 

이 한계를 극복하기 위해 리베스트,샤미르,에이들먼이 공개키와 개인키를 직접 암복호화할 수 있는 알고리즘을 개발해냈는데요. 이게 그 유명한 비대칭 암호 RSA 알고리즘입니다.

 

DH와 RSA 에 차이라고 하면 개인키와 공개키의 용도입니다.

 

 

 

 

● RSA

 

RSA 에서 송신자가 수신자에게 공개키를 요청하면 수신자는 자신의 공개키를 송신자에게 전송합니다. 송신자는 수신자로부터 받은 수신자의 공개키를 이용해 평문을 암호화한 후 수신자에게 전송합니다. 그러면 수신자는 개인키를 통해 이 암호문을 복호화합니다.

RSA

 

대칭키보다 진일보한 구조때문에 평가를 받지만 문제가 또 생기죠. 

 

바로 '공개키의 신뢰성 문제' 입니다.  

 

송신자는 암호화를 위해 수신자에게 공개키를 받아야하는데 이게 진짜 수신자의 공개키일지 알 수 가 없기 때문입니다. 

 

그래서 비대칭 암호 구조의 '공개키 신뢰성 문제'를 PKI(Public key infrastructure) 구조로 해결했습니다. 

 

 

 

 

 

● PKI

 

비대칭 구조에 기반한 암호 방식을 광범위하게 활용하기 위한 기술적, 조직적, 법률적 트리 형태의 기반 시설을 의미합니다. PKI 구조는 공인 인증 기관과 등록 기관, 디렉토리 서비스 서버 등으로 이루어졌습니다. 

 

 

이제 PKI 구조를 살펴볼까요?

 

1. 사용자마다 공개키와 비밀키를 생성합니다.

 

 

 

2. 사용자들은 이 공개키를 공인 인증 기관에 등록합니다. 

 

 

 

 

3. 공인 인증 기관은 이 공개키를 데이터베이스에 등록하고 일련번호를 공개키 열쇠에 부여합니다. 

이게 다들 들어보신 '공인 인증서' 입니다. 

 

4. 송신자는 수신자의 공개키를 받고 공인 인증 기관에 이 일련번호를 의뢰합니다. 

5. 맞으면 기관에서는 확인을 줍니다. 

 

이렇게 송신자는 수신자의 공개키를 신뢰할 수 있습니다. 

 

하지만 이 PKI 구조에도 문제가 있는데 그건 '처리 시간'입니다. 

비대칭 구조는 대칭 구조와 비교할 때 상당한 처리지연이 발생합니다. 

그래서 현실에서는 이 둘을 혼합하여 사용 합니다. 이를 '하이브리드 암호 방식'이라고 합니다. 

계정과 비밀번호같은 가벼운 정보를 암호화할 때는 RSA 알고리즘을 사용하고 본문처럼 무거운 내용을 암호화할때는 AES 알고리즘을 사용합니다. 

SSL/TLS 기법이 대표적인 하이브리드 암호방식입니다. 

 

 

●SSL/TLS 

 

이는 웹 보안을 구현할 때 주로 사용합니다. SSL/TLS VPN 기법을 사용하는 경우 송신자는

1. 임의의 비밀키를 생성해 전송 데이터를 암호화한 뒤

2. 수신자에게 전송합니다.

 

 

3. 수신자는 송신자가 보낸 데이터를 복호화하기 위해 자신의 공개키를 전송합니다.

 

4. 송신자는 수신자의 공개키를 통해 임의의 비밀키를 암호화하는데 이를 '전자 봉투'라고 합니다.

 

5. 송신자가 전자 봉투(임의의 비밀키를 암호화한) 를 수신자에게 전송하면 수신자는 자신의 개인키를 통해 전자봉투를 복호화합니다. 수신자가 이렇게 송신자의 비밀키를 획득했습니다.

 

 

6. 수신자는 이 비밀키를 통해 송신자가 전송한 암호문을 복호화합니다. 한편 송신자가 난수를 통해 임의로 생성한 비밀 키를 흔히 '세션키'(Session Key) 라고 부릅니다. 이는 일회성 키로 생성됩니다.

 

 

 

이렇게 대칭키부터 디피헬먼 알고리즘, RSA , PKI 구조, SSL/TLS 까지 알아봤습니다. 

다음 포스팅은 무결성 보안 알고리즘을 알아봅시다. 

728x90
반응형

'공부 > 정보보안&암호학' 카테고리의 다른 글

RSA  (0) 2020.06.03
Ch9:Public-key crptography and RSA  (0) 2020.06.03