공개 키 암호화(Public Key Cryptography)는 현대 디지털 보안의 핵심 기술입니다. 인터넷 뱅킹, 전자메일, SSL/TLS 인증서까지 우리가 매일 사용하는 서비스 대부분이 이 기술 위에서 작동합니다. 이 글에서는 암호화와 복호화에 각각 어떤 키가 사용되는지, 공개 키 암호화가 왜 안전한지, 그리고 실제로 어디에 활용되는지 등 자주 묻는 질문 16가지를 체계적으로 정리했습니다.
1. 공개 키 암호화에서 암호화에 사용되는 키는 무엇인가요?
암호화에는 공개 키(public key)를, 복호화에는 개인 키(private key)를 사용해야 합니다. 공개 키만으로는 개인 키를 역산하거나 계산해낼 수 없도록 설계되어 있기 때문에, 누구나 암호화할 수 있지만 오직 개인 키 소유자만 내용을 확인할 수 있습니다.
2. 공개 키 암호화는 안전한가요?
공격자가 공개 키 외에 다른 추가 정보를 알지 못하는 한, 일반적인 공개 키 암호화는 안전한 것으로 간주됩니다. 다만 은행 등 대형 기관은 선택 암호문 공격(Chosen-Ciphertext Attack, CCA)처럼 더 정교한 공격을 우려합니다. 이런 공격은 공격자가 복호화된 샘플까지 확보해야만 가능하기 때문에, 실제 시스템에서는 이를 방어하기 위한 추가 보안 장치가 함께 적용됩니다.
3. 메시지를 잠글 때는 공개 키와 개인 키 중 어느 것이 사용되나요?
공개 키는 누구나 사용할 수 있는 암호화 키로, 메시지를 암호화하면 오직 의도된 수신자만 자신의 개인 키로 복호화할 수 있습니다. 개인 키는 '비밀 키(secret key)'라고도 불리며, 해당 키를 생성한 소유자만이 접근할 수 있습니다.
4. 암호화에서 공개 키란 무엇인가요?
공개 키 암호화에서는 두 개의 키가 사용됩니다. 하나는 모두에게 공개된 공개 키, 다른 하나는 본인만 아는 개인 키입니다. 암호화 과정에서는 공개 키와 여러 사전에 정의된 연산을 반복적으로 조합하여, 원본 정보로부터 의사 난수(pseudo-random number) 형태의 암호문을 생성합니다.
5. 공개 키 암호화에서 세션 키 암호화에 쓰이는 키는?
실무에서는 공개 키 알고리즘이 세션 키(session key)를 암호화하는 데 사용되고, 실제 메시지 본문은 속도가 빠른 개인 키(대칭 키) 알고리즘으로 암호화하는 하이브리드 방식이 일반적입니다.
6. 공개 키 암호화와 복호화에는 어떤 키가 사용되나요?
'공개 키' 방식은 암호화 키와 복호화 키, 두 가지를 모두 사용합니다. 하나는 정보를 암호화하는 데, 다른 하나는 복호화하는 데 쓰입니다. 두 키 사이에는 수학적 관계가 존재하지만, 한쪽 키를 안다고 해서 다른 키를 알아내는 것은 사실상 불가능합니다. 사용자의 '공개 키'와 '개인 키'는 각각 영어로 'public key', 'private key'라고 부릅니다.
7. 공개 키 암호화는 어디에 사용되나요?
메시지 수신자는 자신만이 보유한 개인 키로 메시지를 복호화합니다. 공개 키 암호화는 인터넷처럼 보안이 취약한 네트워크를 통해 민감한 데이터를 안전하게 전송해야 할 때 널리 사용되며, 대표적으로 RSA(Rivest-Shamir-Adleman) 알고리즘으로 구현됩니다.
8. 암호화할 때는 공개 키와 개인 키 중 무엇을 사용하나요?
암호화에는 공개 키만 사용됩니다. 공개 키는 이름 그대로 누구에게나 공개되어 있으며, 이렇게 암호화된 데이터는 오직 짝을 이루는 개인 키의 소유자만이 복호화할 수 있습니다.
9. 공개 키 암호화가 안전한 이유는 무엇인가요?
공개 키 암호화는 개인 키(대칭 키) 방식보다 여전히 가장 안전한 프로토콜로 평가받습니다. 사용자가 개인 키를 전송하거나 제3자에게 노출할 필요가 전혀 없기 때문에, 데이터 전송 과정에서 사이버 범죄자가 비밀 키를 가로챌 가능성이 크게 줄어듭니다.
10. 공개 키 암호화도 해킹당할 수 있나요?
네, 이론적으로는 가능합니다. 공개 키 암호화 알고리즘을 깨뜨리는 것은 극히 어렵지만 불가능한 것은 아닙니다. PKI(공개 키 기반 구조) 같은 보안 체계에서 개인 키와 공개 키를 생성하는 암호화 및 해시 알고리즘은 핵심 구성 요소이며, 이 알고리즘의 강도가 곧 전체 보안 수준을 좌우합니다.
11. 공개 키 암호화는 데이터를 어떻게 안전하게 지키나요?
공개 키 암호화는 웹 서버가 데이터를 암호화하고 복호화하는 데 사용할 두 개의 키를 보유하는 방식으로 작동합니다. 'SSL 핸드셰이크(SSL handshake)' 과정에서 서버가 클라이언트에게 공개 키를 전송하면, 이를 통해 보안 채널이 생성됩니다. 사용자는 이 채널을 통해 오직 짝을 이루는 개인 키로만 해독할 수 있는 메시지를 안전하게 주고받을 수 있습니다.
12. 공개 키 암호화는 기밀성을 어떻게 보장하나요?
메시지는 하나의 키로 암호화되며, 복호화에는 반드시 다른 쪽 키가 필요합니다. 수신자의 공개 키를 알고 있는 발신자는, 오직 그 수신자만 자신의 개인 키로 풀 수 있는 메시지를 만들어낼 수 있습니다. 이것이 바로 공개 키 암호화가 기밀성을 보장하는 원리입니다.
13. 암호화는 공개 키와 개인 키 중 어느 쪽이 담당하나요?
개인 키는 소유자가 데이터를 암호화하고 복호화할 수 있게 해주며, 공개 키는 누구나 암호화할 수 있지만 복호화는 오직 개인 키로만 가능합니다. 덕분에 데이터는 개인 키를 가진 사람에게 안전하게 전달될 수 있습니다.
14. 메시지를 암호화하는 데는 어떤 키가 사용되나요?
개인 키를 사용하면 메시지를 암호화할 수 있을 뿐만 아니라, 프라이버시 보호를 위한 전자 서명(digital signature)도 함께 생성할 수 있습니다.
15. 문서를 암호화할 때는 개인 키와 공개 키 중 어느 것이 사용되며, 그 이유는?
디지털 서명은 발신자의 개인 키로 문서의 해시 값을 암호화하여 생성됩니다. 발신자는 원본 파일과 디지털 서명을 함께 수신자에게 보내고, 수신자는 발신자의 공개 키로 서명 속 해시 값을 복호화하여 문서의 진위 여부를 검증합니다. 즉, 기밀성을 위해서는 수신자의 공개 키로 암호화하고, 무결성·인증을 위해서는 발신자의 개인 키로 서명하는 것입니다.
16. 공개 키 암호화의 예시는 무엇인가요?
공개 키 등록부(Public Key Register)에는 모든 사용자의 공개 키가 저장되어 있습니다. 예를 들어 B가 C에게 메시지를 보내려면, B는 C의 공개 키로 메시지를 암호화해야 합니다. C의 개인 키는 C 본인만 알고 있으므로, C 외에는 누구도 그 메시지를 복호화할 수 없습니다.
마무리
정리하자면, 공개 키 암호화에서 암호화는 공개 키로, 복호화는 개인 키로 수행하는 것이 기본 원칙입니다. 단, 디지털 서명처럼 발신자의 신원을 증명해야 하는 경우에는 개인 키로 암호화(서명)하고 공개 키로 검증합니다. 두 키의 역할을 정확히 이해하면 SSL/TLS, 전자서명, PKI 등 현대 보안 기술의 동작 원리를 훨씬 쉽게 파악할 수 있습니다.