728x90
반응형
키를 한개만 이용하는 것
인크립션 (Encryption) 과 디크립션 (Decryption) 시 한개의 같은 키를 이용
알고리즘 자체는 바이트열에 대해서 XOR 연산등을 적용하는 것들이 대부분이기 때문에 속도가 빠른편
트리플 데스 (3DES) 나 AES 가 대표적인 알고리즘 

 

비대칭키 알고리즘 (Asymmetric Key) 입니다. 대칭키가 아니라는 말입니다. 이 알고리즘은 두개의 키를 이용
개인키 (Private Key)와 공개키 (Public Key)
이 알고리즘은 인크립션(Encryption)과 디크립션(Decryption)시 서로 다른 키를 씁니다.  대표적인 알고리즘으로 RSA가 있습니다. 
이 알고리즘은 소수(Prime Number: 1과 그 자신외에는 나눠지는 수가 없는 수)를 이용합니다. 따라서 조금 긴 내용을 인크립션(Encryption) 이나 디크립션 (Decryption)하면 시간이 걸립니다. 이 알고리즘의 근거는 리만 가설에 근거

 

암복호화 개념

암호화는 평문을 타인이 못알아보도록 만드는 과정입니다. 

복호화는 암호문을 다시 평문으로 만드는 과정이겠죠.

암복호알고리즘은 보통 공개되어 있으니 어떤 알고리즘을 쓰느냐를 비밀로 할 필요는 없습니다.
중요한 것은 사용자가 암복호화할 때 정한 암호화키, 복호화키가 중요합니다.

 

대칭키 암호화구조라고하면, 암호화할 때의 키와 복호화 때의 키가 동일한 암호화 방식을 말합니다.

 

비대칭키 암호화구조라고하면, 반대곘죠... 암호화키와 복호화키가 서로 다른 암호화 방식입니다.

 

암호화키와 복호화키가 같다는 것은 키가 하나라는 뜻이지요. 그리고 이것은 절대 알려지면 안되기 때문에 비밀키라고 합니다.
 
암호화할 때와 복호화할 때 같은 키를 요구하는 알고리즘을 대칭키기반 암호 알고리즘이라고 하고 DES, 3DES, SEED, AES  등 다양한 알고리즘이 있습니다. 이들 알고리즘들은 각각 암호화하는 방식이 다르고 반복 단계(라운드)가 달라 암호강도가 다를 뿐, 키의 관점에서보면 암호화할 때와 복호화 할 때 같은 키를 요구하는 것은 동일합니다.
 
대칭키는 비대칭키구조보다 빠른 속도록 암복호화 하는 장점이 있지만, 상대방한테 내가 정한 비밀키가 무엇인지 알려줘야 합니다. 알려주다 보면 해커에게 노출되기 때문에 암호화 해봤자 키가 노출되어 기밀성이 확보되지 않는 것이죠. 키를 전달해주는 것이 중요해져서 키교환을 안전하게 할 수있는 키교환알고리즘이 함께 사용되기도 합니다.
 
비대칭키는 암호화키와 복호화키가 서로 다르기 때문에 대칭키하고 사용방법이 조금 다릅니다.
암호를 하는 사람은 먼저 키 생성을 합니다. 이 때  키1쌍(개인키/공개키)이 생성되고 이 둘의 키만이 서로 암호화와 복호화를 가능하게 해줍니다.그리고 개인키는 자신만이 소유하고 절대 외부에 노출하지 않습니다. 공개키는 나와 암호통신을 하고자 하는 사람에게 얼마든지 제공할 수 있습니다. RSA, ECC 등의 알고리즘이 있죠.

 

영수가 철수에게 비대칭키를 이용하여 안전하게 데이터를 전송하는 과정을 살펴보자.
 

철수는 개인키와 공개키를 가지고 있는 상태에서, 철수의 공개키는 아무나 제공받을 수 있죠. 영수는 철수의 공개키를 이용해서 원문을 암호화하여 전송하면, 해당 공개키의 쌍이 되는 개인키는 오직 철수만이 가지고 있어서 철수만이 복호화 가능합니다.
 
반대로, 철수도 영수에게 암호문을 보내고 싶으면 영수(수신자)의 공개키를 이용해서 암호화 후 전송하면 해당 공개키의  쌍인 개인키는 영수만이 가지고 있어 영수만 복호화 가능합니다.
 
이렇게 하면, 대칭키방식처럼 비밀키를 공유하다가 키가 노출되는 문제를 방지할 수 있습니다.
 
그렇다면, 대칭키를 쓸 이유가 없지 않나요?
 
대칭키방식은 비대칭키방식에 비해서 속도가 빠릅니다. 간단한 데이터는 모르겠지만 대용량 파일을 암호화 전송할 때 비대칭키방식은 비효율적이겠죠.

 

각각의 장단점이이 있으니 이 둘을 합하여 장점들을 활용해서 많이 사용합니다.
 
대표적인 것이 SSL 프로토콜입니다. 네트워크 상에서 암호화 통신을 하기 위한 프로토콜이지요.
HTTPS에 적용되어 있구요.

 

출처 : https://www.ibm.com 그림 편집

속도가 빠른 대칭키 암호화에 사용할 비밀키를 생성하고 이 비밀키를 비대칭키를 사용하여 안전하게 교환하는 것이 핵심입니다. 비밀키 교환이 되면 그 다음부터는 빠른 속도를 위해 대칭키알고리즘을 사용하여 통신을 하게 됩니다.
 
세션을 새로 생성할 때마다 새로운 비밀키를 생성하여 교화하기 때문에 비밀키도 세션마다 변경됩니다. 이렇게 세션에만 유효하게 사용하는 경우를 세션키라고 하기도 하죠.

 

위에서 언급한 것을 표로 비교하면 아래와 같습니다.
구분
대칭키
비 대칭키
키 관계
암호화키 = 복호화키
암호화키 ≠ 복호화키
키 전송
비밀키 전송 필요
비밀키 전송 불필요
키 갯수
n(n-1)/2
2n
장점
고속, 경제성 높음
키 분배 및 관리용이
단점
키 분배 및 관리불편
저속, 경제성 낮음
 

 

그리고, 비대칭키 암호화 개념을 이해하면 이어서 이해할 수 있는 것이 많습니다.
비대칭키방식의 암호화를 반대로 사용하면 전자서명이 되고, 공인인증서, 블록체인 등 많은 부분에 응용됩니다.
 
 

728x90

'03.Security' 카테고리의 다른 글

암호화 알고리즘 - HIGHT  (0) 2023.11.10
암호화 알고리즘 - 암호 기술  (1) 2023.11.10
암호화 알고리즘  (1) 2023.11.10
4차 산업혁명 - 드론 - 보안  (0) 2023.11.08
정보보안 - 국가정보원 보안성  (0) 2023.10.19
Posted by Mr. Slumber
,