공개 키 암호화의 탄생 배경
대칭 키 암호화(Symmetric Key Encryption)는 가장 큰 문제점을 안고 있습니다. 바로 키를 어떻게 안전하게 배포하느냐는 것입니다. 서로 떨어져 있는 두 당사자가 인터넷과 같은 개방된 환경에서도 안전한 연결을 설정할 수 있도록 하기 위해, 여러 가지 암호화 방식이 개발되었습니다. 이러한 암호화 방식을 바로 공개 키 암호화(Public-Key Encryption)라고 부릅니다.
공개 키 암호화에서는 두 개의 키가 사용됩니다. 하나의 키로 정보를 암호화하고, 다른 키로 그 정보를 복호화하는 구조입니다. 이때 두 키 중 하나는 개인 키(Private Key)로 지정되고, 나머지 하나는 공개 키(Public Key)로 지정됩니다.
개인 키와 공개 키의 역할
개인 키는 소유자가 철저히 비밀로 보관해야 하는 반면, 공개 키는 전 세계 누구에게나 자유롭고 광범위하게 공개됩니다. 공개 키 목록은 어디에든 게시할 수 있으며, 예를 들어 미국 대통령의 공개 키를 알아내는 것도 어렵지 않습니다.
어떤 사람이 자신만의 개인 키를 보유하고, 그에 상응하는 공개 키를 공개했다면 다음 두 가지가 가능해집니다.
1. 해당 개인에게 안전하게 전달
전 세계 누구나 그 사람의 공개 키로 메시지를 암호화하여 보낼 수 있습니다. 개인 키는 그 사람만이 보유하고 있기 때문에, 이 메시지를 해독할 수 있는 사람은 오직 수신자 본인뿐입니다.
2. 해당 개인으로부터의 진본성 보장
반대로 그 사람이 자신의 개인 키로 메시지를 암호화(서명)하면, 전 세계 모두가 그 메시지가 진짜임을 확인할 수 있습니다. 메시지를 복호화할 수 있는 유일한 방법이 그 사람의 고유한 공개 키를 사용하는 것이기 때문입니다.
예를 들어, 사용자가 데이터 웨어하우스에 계획 수치나 예산 수치를 업로드해야 한다면, 이 방식을 활용해 해당 수치가 실제로 지정된 사람이 보낸 것임을 보장할 수 있습니다.
두 당사자 간의 안전한 통신
A와 B라는 두 사람이 각각 공개 키와 개인 키를 보유하고 있다면, 다음과 같은 절차로 안전한 통신이 가능합니다.
- 암호화 및 서명: A는 발신 메시지를 B의 공개 키로 암호화합니다. 동시에 메시지 안에 자신의 개인 키로 암호화한 서명을 함께 포함시킵니다.
- 복호화: B는 메시지를 받으면 자신의 개인 키로 메시지 본문을 안전하게 복호화합니다.
- 서명 검증: 이어서 B는 A의 공개 키로 서명을 복호화하여, 메시지가 실제로 A로부터 온 것인지 진본성을 확인합니다.
이 방식은 인터넷이나 공중 전화 회선처럼 보안이 취약한 매체를 통해서도 가장 안전한 통신을 제공합니다.
성능 문제와 대칭 키 교환
다만 공개 키 암호화는 연산 비용이 매우 높다는 단점이 있습니다. 그래서 실무에서는 이 방식을 주로 고성능 대칭 키를 안전하게 교환하는 용도로 활용합니다. 양측이 임시로 사용할 대칭 키를 공개 키 암호화로 안전하게 전달한 뒤, 이후 대량의 데이터는 빠른 대칭 키 암호화로 신속하게 주고받는 방식입니다.
CA(인증 기관)를 통한 공개 키 조회
특정 개인이나 기업의 공개 키를 안전하게 확보하는 방법도 중요합니다. 절차는 다음과 같습니다.
- CA(Certificate Authority, 인증 기관)의 웹 서버에 접속하여 원하는 개인 또는 기업의 공개 키를 요청합니다.
- CA가 자신의 개인 키로 암호화한 응답을 수신합니다.
- 수신한 메시지를 CA의 공개 키로 복호화함으로써, 해당 메시지가 실제로 CA로부터 온 것임을 검증합니다.
이처럼 공개 키 암호화는 키 배포 문제를 해결하고, 기밀성과 인증성을 동시에 보장하는 현대 디지털 보안의 핵심 기술이라 할 수 있습니다.