-->

[암호학] 대칭키 vs 공개키(비대칭키) 암호화 차이

공개키는 이해하고 있다고 생각하면서도, 막상 이자리에서 설명해보라고 하면 갑자기 헷갈리는 경우가 있다. 대칭키의 장단점은 무엇인지, 어떤 단점을 해결하기 위해 공개키가 등장하게 됐는지, 그러한 공개키의 장단점은 무엇인지 등, 이 포스팅에서 제대로 정리해 앞으로 헷갈리는 일이 없도록 하려 한다.

개요

큰틀에서의 차이를 보면, 대칭키 암호화 방식암복호화에 사용하는 키가 동일한 암호화 방식을 말한다. 그와 달리, 공개키 암호화 방식암복호화에 사용하는 키가 서로 다르며 따라서 비대칭키 암호화라고도 한다. 따라서 공개키 암호화 에서는 송수신자 모두 한쌍의 키(개인키, 공개키)를 갖고있게 된다.

대칭키란, 장단점

대칭키는 위에서 설명한대로 암복호화키가 동일하며 해당 키를 아는 사람만이 문서를 복호화해 볼 수 있게된다. 대표적인 알고리즘으로는 DES, 3DES, AES, SEED, ARIA 등이 있다.

공개키 암호화 방식에 비해 속도가 빠르다는 장점이 있지만, 키를 교환해야한다는 문제 (키 배송 문제)가 발생한다. 키를 교환하는 중 키가 탈취될 수 있는 문제도 있고 사람이 증가할수록 전부 따로따로 키교환을 해야하기 때문에 관리해야 할 키가 방대하게 많아진다.

이러한 키 배송 문제를 해결하기 위한 방법으로 키의 사전 공유에 의한 해결, 키 배포센터에 의한 해결, Diffie-Hellman 키 교환에 의한 해결, 공개키 암호에 의한 해결이 있다.


대칭키 암호화 방식: 암복호화키가 동일한 암호화 방식
대표 알고리즘 : DES, 3DES, AES, SEED, ARIA 등
장점 : 수행 시간이 짧음
단점 : 안전한 키교환 방식이 요구됨, 사람이 증가할수록 키관리가 어려워짐


공개키란, 장단점

위에서 설명한 대칭키의 키교환 문제를 해결하기 위해 등장한 것이 공개키(비대칭키) 암호화 방식이다. 이름 그대로 키가 공개되어있기 때문에 키를 교환할 필요가 없어지며 공개키모든 사람이 접근 가능한 키이고 개인키각 사용자만이 가지고 있는 키이다.

예를 들어, A가 B에게 데이터를 보낸다고 할 때, A는 B의 공개키로 암호화한 데이터를 보내고 B는 본인의 개인키로 해당 암호화된 데이터를 복호화해서 보기 때문에 암호화된 데이터는 B의 공개키에 대응되는 개인키를 갖고 있는 B만이 볼 수 있게 되는 것이다.


1) B 공개키/개인키 쌍 생성
2) 공개키 공개(등록), 개인키는 본인이 소유
3) A가 B의 공개키를 받아옴
4) A가 B의 공개키를 사용해 데이터를 암호화
5) 암호화된 데이터를 B에게 전송
6) B는 암호화된 데이터를 B의 개인키로 복호화 (개인키는 B만 가지고 있기 때문에 B만 볼 수 있음)




따라서 공개키는 키가 공개되어있기 때문에 따로 키교환이나 분배를 할 필요가 없어진다. 중간 공격자가 B의 공개키를 얻는다고 해도 B의 개인키로만 복호화가 가능하기 때문에 기밀성을 제공하며 개인키를 가지고있는 수신자만이 암호화된 데이터를 복호화할 수 있으므로 일종의 인증기능도 제공한다는 장점이 있다. 그에 반해 단점은 속도가 느리다는 것이다.


공개키 암호화 방식: 암복호화키가 다른 암호화 방식
장점: 키분배 필요X, 기밀성/인증/부인방지 기능을 제공
단점: 대칭키 암호화 방식에 비해 속도가 느림



참고자료

https://www.crocus.co.kr/1236
https://m.blog.naver.com/mr100do/60144936458

댓글

Designed by JB FACTORY