대칭키의 암호화 방식은 암복호화에 사용하는 키가 동일한 경우의 암호화 방식이다. 반면 공개키 암호화 방식은 암복호화에 사용하는 키가 서로 다르며 비대칭키라고도 하는 경우의 암호화 방식이다.
암복호화 키가 동일하며 아는 사람만이 문서를 복호화하여 볼 수 있다. 공개키 암호화 방식에 비해 속도가 빠른 장점이 있지만, 키를 교환해야 한다는 문제(키 배송 문제)가 발생한다. 키를 교환하는 와중에 키를 탈취당할 위험이 있고, 사람이 많아질수록 전부 따로 키교환을 해야하기 때문에 관리해야 할 키가 많아진다.
이러한 키 배송 문제를 해결하기 위한 방법으로 키의 사전 공유에 의한 해결, 키 배포센터에 의한 해결, Diffie-Hellman 키 교환에 의한 해결, 공개키 암호화에 의한 해결이 있다.
대칭키의 키 교환 문제를 해결하기 위해 등장한 암호화 방식이다. 키가 공개되어 있기 때문에 교환할 필요가 없어진다. 공개키는 모든 사람이 접근 가능한 키이고 개인키는 각 사용자만 가지고 있는 키이다.
예를 들어 A가 B에게 데이터를 보낸다고 할 때, A는 B의 공개키로 암호화된 데이터를 보내고 B는 본인의 개인키로 해당 암호화된 데이터를 복호화하여 본다. 암호화 된 데이터를 B의 공개키에 대응되는 개인키를 갖고 있는 B만이 볼 수 있는 것이다.
1. B 공개키/개인키 쌍 생성
2. 공개키 등록, 개인키는 본인 소유
3. A가 B의 공개키를 받아옴
4. A가 B의 공개키를 사용해 데이터 암호화
5. 암호화된 데이터를 B에게 전송
6. B는 암호화된 데이터를 개인키로 복호화
개인키를 가지고 있는 수신자만이 암호화된 데이터를 복호화할 수 있으므로 일종의 인증기능도 제공한다는 장점이 있다. 반면 속도가 느리다는 단점이 있다.