공개 키 암호 방식

공개 키 암호 방식(公開 Key 暗號 方式, Public-key cryptography)은 비대칭 키 암호 방식(asymmetric key cryptography)이라고도 불리며, 암호화와 복호화에 서로 다른 두 개의 키를 사용하는 암호 시스템이다. 이 두 키는 수학적으로 연관되어 있지만, 하나의 키를 안다고 해서 다른 하나의 키를 쉽게 유추할 수 없도록 설계되었다. 이 한 쌍의 키는 일반적으로 '공개 키'(public key)와 '개인 키'(private key)로 구성된다.


작동 원리

공개 키 암호 방식은 다음과 같은 두 가지 주요 방식으로 활용된다.

  1. 메시지 암호화 및 복호화:

    • 메시지를 보내는 사람은 받는 사람의 공개 키를 사용하여 메시지를 암호화한다.
    • 암호화된 메시지는 공개 키로는 복호화할 수 없으며, 오직 메시지를 받는 사람만이 가지고 있는 해당 개인 키로만 복호화할 수 있다.
    • 이 방식은 메시지의 기밀성(confidentiality)을 보장한다. 즉, 메시지가 올바른 수신자에게만 읽힐 수 있도록 한다.
  2. 디지털 서명:

    • 메시지를 보내는 사람은 자신의 개인 키를 사용하여 메시지에 디지털 서명을 한다.
    • 이 서명은 누구든지 서명자의 공개 키를 사용하여 검증할 수 있다.
    • 이 방식은 메시지의 인증(authentication), 무결성(integrity) 및 부인 방지(non-repudiation)를 제공한다. 즉, 메시지가 특정 발신자로부터 왔고, 전송 중에 위변조되지 않았으며, 발신자가 나중에 메시지를 보냈다는 사실을 부인할 수 없도록 한다.

주요 특징 및 장점

  • 키 분배 문제 해결: 대칭 키 암호 방식의 가장 큰 문제점 중 하나인 키 분배 문제를 효과적으로 해결한다. 각 통신 참여자가 자신의 개인 키만 안전하게 보관하면 되므로, 안전한 채널을 통해 사전에 키를 공유할 필요가 없다.
  • 인증 및 부인 방지: 디지털 서명을 통해 메시지의 발신자를 명확히 인증하고, 발신자가 메시지를 보냈다는 사실을 부인할 수 없게 한다.
  • 확장성: 다수의 사용자가 통신하는 환경에서 각 사용자마다 대칭 키를 관리하는 것보다 훨씬 효율적이다.

주요 응용 분야

  • 보안 통신: 웹사이트의 HTTPS(SSL/TLS), VPN(가상 사설망), SSH(보안 셸) 등 인터넷 상의 안전한 통신에 필수적으로 사용된다.
  • 디지털 서명: 소프트웨어 코드 서명, 전자 문서 서명, 법적 효력을 갖는 전자 계약 등에 활용된다.
  • 전자 메일 보안: PGP(Pretty Good Privacy)나 S/MIME(Secure/Multipurpose Internet Mail Extensions)과 같은 이메일 암호화 및 서명 표준에 사용된다.
  • 암호화폐: 비트코인 등 암호화폐 거래의 유효성을 검증하고 소유권을 증명하는 데 디지털 서명 기술이 핵심적으로 사용된다.
  • 키 교환: 디피-헬만(Diffie-Hellman)과 같은 프로토콜을 사용하여 비안전한 채널을 통해 안전하게 대칭 암호화에 사용할 세션 키를 교환하는 데 사용된다.

주요 알고리즘

  • RSA (Rivest–Shamir–Adleman): 가장 널리 사용되는 공개 키 암호 알고리즘 중 하나로, 큰 소수(prime number)를 인수분해하는 것이 어렵다는 수학적 난제를 기반으로 한다.
  • ECC (Elliptic Curve Cryptography): 타원 곡선 위의 이산 로그 문제의 어려움을 기반으로 하는 알고리즘이다. RSA에 비해 더 짧은 키 길이로도 동일한 수준의 보안 강도를 제공하므로, 모바일 기기와 같이 컴퓨팅 자원이 제한된 환경에서 주로 사용된다.
  • Diffie-Hellman 키 교환: 두 통신 당사자가 사전에 비밀을 공유하지 않고도 공개적인 채널을 통해 공유 비밀 키를 안전하게 설정할 수 있도록 하는 최초의 공개 키 암호 프로토콜이다.

대칭 키 암호 방식과의 비교

특징 공개 키 암호 방식 대칭 키 암호 방식
키 개수 2개 (공개 키, 개인 키) 1개 (비밀 키)
용도 암호화/복호화, 디지털 서명, 키 교환 암호화/복호화 (주로 대용량 데이터)
속도 느림 (계산 비용 높음) 빠름 (계산 비용 낮음)
키 분배 용이 (개인 키만 보호) 어려움 (키를 안전하게 공유 필요)
주요 기능 기밀성, 인증, 무결성, 부인 방지 기밀성

실제 시스템에서는 공개 키 암호 방식의 느린 속도 때문에, 대용량 데이터를 직접 암호화하는 데 사용되기보다는, 대칭 키 암호 방식에서 사용할 세션 키를 안전하게 교환하는 데 주로 사용된다. 이렇게 공개 키 암호 방식과 대칭 키 암호 방식을 함께 사용하는 것을 하이브리드 암호 시스템(hybrid cryptosystem)이라고 한다.


한계

  • 느린 속도: 대칭 키 암호 방식에 비해 훨씬 계산 집약적이므로, 대용량 데이터를 직접 암호화하는 데는 적합하지 않다.
  • 키 관리 복잡성: 개인 키의 안전한 보관 및 관리가 필수적이며, 개인 키가 유출되면 전체 시스템의 보안이 훼손될 수 있다.
  • 양자 컴퓨팅 위협: RSA, ECC와 같은 현재의 주요 공개 키 암호 알고리즘은 미래의 대규모 양자 컴퓨터에 의해 쉽게 해독될 수 있다는 이론적 위협이 존재한다. 이에 따라 양자 내성 암호(Post-Quantum Cryptography, PQC) 연구가 활발히 진행 중이다.
둘러보기

더 찾아볼 만한 주제