SaveClip

공개 키 암호화: 누구나 잠글 수 있고 오직 한 사람만 열 수 있는 상자

Last updated: 4월 9, 2026

공개 키 암호화가 어떻게 작동하는지 알아봅시다. RSA, 타원곡선, HTTPS, 그리고 양자 컴퓨터의 위협까지 수학 없이 설명합니다.

NordVPN — 중국에서 작동
당신이 온라인 쇼핑을 할 때, 신용카드 번호를 웹사이트로 보냅니다. 그 과정에서 누군가 당신의 통신을 가로챈다 하더라도, 그들은 암호화된 데이터만 보게 됩니다. 이것이 어떻게 가능할까요? 두 사람이 처음 만난 적이 없는데도, 서로 안전하게 비밀을 공유할 수 있는 방법이 정말 있을까요? 바로 공개 키 암호화(public key cryptography)라는 개념이 이를 가능하게 합니다.

잠금 상자의 비유

공개 키 암호화를 이해하는 가장 직관적인 방법은 잠금 상자로 생각하는 것입니다. 상상해 보세요. 당신이 친구와 비밀 편지를 주고받고 싶습니다. 당신은 특별한 상자와 그 상자를 여는 열쇠 두 개를 만듭니다. 첫 번째 열쇠(공개 키, public key)는 누구나 복사할 수 있게 공개합니다. 두 번째 열쇠(개인 키, private key)는 오직 당신만 가지고 있습니다.

이제 당신의 친구가 당신에게 비밀 메시지를 보내고 싶습니다. 친구는 공개 열쇠를 사용해서 상자를 잠급니다. 메시지를 상자 안에 넣고 잠금장치를 채웁니다. 이제 누구든지 상자를 보고 만지고 옮길 수 있지만, 열 수는 없습니다. 당신만이 개인 열쇠를 가지고 있기 때문입니다. 상자가 당신에게 도착하면, 당신의 열쇠로 잠금장치를 해제하고 메시지를 읽습니다. 누군가 상자를 가로채도, 열 수 없으면 내용을 알 수 없습니다.

이것이 공개 키 암호화의 핵심입니다. 잠금(암호화)과 열기(복호화)에 다른 열쇠를 사용합니다. 이것을 "비대칭" 암호화라고 부르는 이유입니다.

RSA: 어려운 수학 문제 위에 세워진 보안

RSA는 1977년에 발명된 공개 키 암호화 알고리즘입니다. 오늘날에도 여전히 널리 사용됩니다. RSA가 안전한 이유는 매우 흥미로운 수학적 성질에 기반합니다.

RSA의 아이디어는 이렇습니다. 두 개의 매우 큰 소수(다른 수로 나누어떨어지지 않는 수)를 곱하는 것은 쉽습니다. 하지만 그 결과(곱셈의 답)만 보고 원래 두 소수가 무엇이었는지 알아내기는 극도로 어렵습니다. 공개 키는 그 큰 수(두 소수의 곱)이고, 개인 키는 원래의 두 소수입니다. 누군가 공개 키를 가지고 있어도, 그것을 두 소수로 "인수분해"하기 위해서는 엄청난 컴퓨팅 파워와 시간이 필요합니다.

예를 들어, 2048비트 RSA 키(현재 일반적인 크기)를 깨뜨리려면, 현재의 가장 빠른 슈퍼컴퓨터로도 수십억 년이 걸릴 것으로 예상됩니다. 이것이 RSA를 실용적으로 안전하게 만듭니다.

타원곡선: 더 효율적인 선택

RSA 외에도 타원곡선 암호화(elliptic curve cryptography, ECC)라는 또 다른 방법이 있습니다. 타원곡선은 모양이 타원을 그리는 특별한 수학 곡선입니다. 이 곡선 위의 점들을 더하는 특별한 규칙이 있는데, 그 규칙이 공개 키 암호화에 완벽하게 맞아떨어집니다.

RSA와 비교할 때, 타원곡선은 같은 수준의 보안을 더 작은 키 크기로 달성합니다. 256비트 ECC는 약 3072비트 RSA와 비슷한 수준의 보안을 제공합니다. 더 작은 키는 더 빠른 계산을 의미하므로, 모바일 기기나 IoT 장치에서 특히 유용합니다.

HTTPS와 웹의 신뢰

HTTPS(보안 HTTP)는 공개 키 암호화를 실제로 사용하는 가장 일반적인 예입니다. 당신이 은행 웹사이트에 접속할 때, 당신의 브라우저와 은행의 서버는 공개 키를 교환합니다. 그 다음 당신의 브라우저는 당신의 정보를 암호화해서 보냅니다. 은행만이 자신의 개인 키를 가지고 있으므로, 은행만이 당신의 정보를 복호화할 수 있습니다.

하지만 여기서 한 가지 문제가 있습니다. 당신은 웹사이트가 정말로 은행인지 어떻게 알까요? 해커가 자신의 공개 키를 "나는 은행입니다"라고 주장하면서 보낼 수도 있습니다. 이 문제를 해결하기 위해, 우리는 신뢰할 수 있는 제3자(인증 기관, certification authority)를 사용합니다. 이 기관이 "이 공개 키는 정말로 은행의 것입니다"라고 디지털로 서명합니다. 당신의 브라우저는 이 기관들의 공개 키를 미리 알고 있으므로, 그들의 서명을 검증할 수 있습니다.

코드 서명과 소프트웨어 신뢰

공개 키 암호화는 보안 통신 외에도 다른 일을 합니다. 소프트웨어 개발자들은 그들의 코드가 변조되지 않았음을 증명하기 위해 공개 키를 사용합니다. 개발자는 자신의 개인 키로 코드에 "서명"합니다. 누구든지 그 개발자의 공개 키를 사용해서 서명이 진짜인지 확인할 수 있습니다. 이것은 보안 통신의 역입니다. 여기서는 잠금 상자를 여는 것(서명 검증)이 공개적으로 이루어지고, 잠금을 거는 것(서명)이 개인 키를 필요로 합니다.

양자 컴퓨터와 미래의 위협

공개 키 암호화는 현재 안전하지만, 미래에는 그렇지 않을 수도 있습니다. 양자 컴퓨터는 현재 컴퓨터와 완전히 다르게 작동하는 가상의 컴퓨터입니다. 만약 충분히 강력한 양자 컴퓨터가 만들어진다면, RSA와 ECC를 깨뜨릴 수 있는 알고리즘이 존재합니다.

이 위험 때문에, 전 세계의 암호화 연구자들은 "양자 내성" 알고리즘을 개발하고 있습니다. 이것들은 양자 컴퓨터에 대해서도 안전할 것으로 예상되는 새로운 암호화 방식입니다. 하지만 이들은 아직 충분히 검증되지 않았으므로, 현재는 RSA와 ECC가 여전히 표준입니다. 양자 컴퓨터가 실제로 도래하는 것이 언제일지도 불명확합니다.

공개 키 암호화는 현대 인터넷 보안의 기초입니다. 그것이 없다면, 안전한 온라인 뱅킹도, 개인 메시지 전송도, 신뢰할 수 있는 소프트웨어 배포도 불가능할 것입니다. 당신이 온라인에서 느끼는 많은 "안전함"은 이 아이디어 위에 세워져 있습니다. 다음으로 대칭 키 암호화(symmetric key cryptography)가 어떻게 작동하는지 배워보고, 공개 키 암호화와 어떻게 다른지 알아보세요. 그러면 HTTPS 연결이 정말로 어떻게 작동하는지 완전히 이해할 수 있을 것입니다.