📑 목차
같은 암호화인데 왜 방식이 두 가지나 있을까
인터넷 뱅킹을 하거나 쇼핑몰에 카드 정보를 입력할 때, 화면 어딘가에서 “암호화되어 안전하게 전송된다”라는 문구를 자주 보게 된다. 여기서 말하는 암호화는 대부분 두 가지 방식을 조합해 사용한다. 바로 대칭키 암호, 공개키 암호이다.
두 방식 모두 “남이 내용을 못 보게 만든다”는 목적은 같지만,
- 키를 어떻게 쓰는지,
- 어떤 상황에 더 적합한지,
- 실제 서비스에서 어디에 쓰이는지
가 서로 다르다.
이 글에서는 전산학을 전공하지 않은 사람도 이해할 수 있도록
- 대칭키 암호와 공개키 암호의 구조,
- 두 방식이 각각 가진 장단점,
- 인터넷 뱅킹, HTTPS, 메신저, 파일 암호화 등에서 실제로 어떻게 쓰이는지
를 차근차근 설명한다. 이 글의 핵심 키워드는 암호화, 대칭키 암호, 공개키 암호, 키 교환, HTTPS이다.
대칭키 암호와 공개키 암호의 개념과 구조
1. 암호화란 무엇인가: 평문과 암호문, 키
먼저 공통 개념부터 정리할 필요가 있다.
- 사람이 읽을 수 있는 원래 내용을 평문(plaintext)라고 한다.
- 수학적인 규칙을 이용해 읽을 수 없는 형태로 바꾼 결과를 암호문(ciphertext)라고 한다.
- 이 변환 과정에 사용되는 비밀 값이 키(key)이다.
암호화의 원리는 다음과 같이 요약할 수 있다.
- 평문 + 키 + 암호 알고리즘 → 암호문
- 암호문 + 키 + 복호 알고리즘 → 평문
중간에서 누군가가 암호문을 훔쳐 보더라도,
- 키를 모르면 현실적인 시간 안에 평문을 알아내기 어렵도록 설계하는 것이 현대 암호화 기술의 핵심이다.
이제 이 기본 개념 위에 대칭키 암호와 공개키 암호가 어떻게 다른지 살펴본다.
2. 대칭키 암호: 같은 열쇠로 잠그고 여는 구조
대칭키 암호(symmetric key encryption)는 말 그대로 같은 키를 사용해 암호화와 복호화를 모두 수행하는 방식이다.
- A라는 데이터(평문)를 키 K로 잠그면 암호문이 된다.
- 다시 같은 키 K를 사용해야만 암호문을 원래 평문으로 되돌릴 수 있다.
현실의 자물쇠에 비유하면 이해하기 쉽다.
- 같은 열쇠로 문을 잠그고,
- 같은 열쇠로 문을 연다.
대표적인 대칭키 알고리즘으로는 AES(Advanced Encryption Standard), ChaCha20 등이 있다.
대칭키 암호의 장점은 다음과 같다.
- 속도가 빠르다
- 많은 데이터를 빠르게 암호화할 수 있다.
- 파일 암호화, 디스크 암호화, 영상 스트리밍 등 대용량 데이터에 적합하다.
- 구현이 상대적으로 단순하다
- 알고리즘 구조가 비교적 단순해 하드웨어, 소프트웨어 모두 구현이 용이하다.
하지만 치명적인 약점이 하나 있다.
- 키 전달 문제(key distribution problem)이다.
- 서로 같은 키를 공유해야 하는데, 그 키를 안전하게 주고받는 일이 쉽지 않다.
- 만약 키가 중간에서 유출되면, 그 키로 암호화된 모든 데이터가 위험해진다.
3. 공개키 암호: 잠그는 키와 여는 키를 분리한 구조
공개키 암호(public key encryption)는 이러한 키 전달 문제를 해결하기 위해 등장한 방식이다.
핵심은 서로 다른 두 개의 키를 사용하는 것이다.
- 공개키(public key)
- 누구에게나 공개해도 되는 키이다.
- 이 키로는 “잠그기(암호화)”만 가능하거나,
- “검증(서명 검증)”에 사용할 수 있다.
- 개인키(private key)
- 절대 외부에 노출되어서는 안 되는 비밀 키이다.
- 공개키로 잠근 암호문을 다시 여는 데 사용하거나,
- 전자 서명을 생성하는 데 사용한다.
중요한 특성은 다음과 같다.
- 공개키로 암호화한 내용은 해당 개인키를 가진 사람만 복호화할 수 있다.
- 개인키로 만든 전자 서명은 공개키를 가진 누구나 검증할 수 있다.
예를 들어 은행 서버를 생각해 보자.
- 은행 서버는 공개키와 개인키 한 쌍을 만든다.
- 공개키는 인증서를 통해 사용자 브라우저에 배포된다.
- 개인키는 은행 서버 내부에 비밀로 보관한다.
사용자의 브라우저가 은행의 공개키로 중요한 데이터를 암호화해 전송하면,
- 이 데이터를 열 수 있는 존재는 은행 서버(개인키 보유)뿐이다.
- 중간에서 패킷을 가로채더라도, 개인키를 모르기 때문에 내용을 알아내기 어렵다.
4. 대칭키 암호와 공개키 암호의 핵심 비교
정리하면 대칭키 암호와 공개키 암호는 다음과 같은 차이를 가진다.
- 키 구조
- 대칭키 암호: 하나의 키로 암호화·복호화 모두 수행
- 공개키 암호: 공개키와 개인키 두 개 사용
- 성능
- 대칭키 암호: 빠르고 대용량 데이터 처리에 적합
- 공개키 암호: 상대적으로 느리고, 주로 키 교환·서명에 사용
- 키 전달
- 대칭키 암호: 키를 어떻게 안전하게 주고받을지가 문제
- 공개키 암호: 공개키를 마음껏 배포할 수 있으므로 키 교환에 유리
이 두 방식을 현실에서는 각자 장점을 살리도록 조합해서 사용하는 구조를 택한다. 이를 하이브리드 암호화(hybrid encryption)라고 부른다.

실제 서비스에서 두 암호 방식이 사용되는 사례
1. HTTPS와 인터넷 뱅킹: 하이브리드 암호화의 대표 사례
웹 브라우저 주소창에서 https://로 시작하는 사이트는 HTTPS를 사용하고 있다. 은행, 카드사, 포털 로그인 페이지 대부분이 해당된다.
HTTPS는 웹 통신 규칙인 HTTP에 SSL/TLS라는 암호화 계층을 덧씌운 것이다. 이 안에서 대칭키 암호와 공개키 암호가 같이 사용된다. 흐름을 간단히 정리하면 다음과 같다.
- 사용자가 https://은행주소에 접속한다.
- 은행 서버는 브라우저에게 인증서(certificate)를 보낸다.
- 인증서에는 서버의 공개키, 도메인 정보, 인증기관(CA)의 전자 서명이 들어 있다.
- 브라우저는 인증서를 검증한다.
- 신뢰할 수 있는 인증기관이 서명했는지,
- 도메인 이름이 일치하는지 확인한다.
- 브라우저는 임시로 사용할 세션 키(대칭키)를 하나 생성한다.
- 이 세션 키를 서버의 공개키로 암호화해 서버로 전송한다.
- 서버는 자신의 개인키로 암호문을 복호화해 세션 키를 얻는다.
- 이후 실제 데이터(로그인 정보, 계좌 정보, 이체 내용 등)는
- 브라우저와 서버가 같은 세션 키(AES 등 대칭키 암호)로 암호화하여 주고받는다.
요약하면,
- 공개키 암호는
- “세션 키(대칭키)를 안전하게 나누어 갖는 과정”에 사용된다.
- 대칭키 암호는
- 본격적인 데이터 통신(대용량) 구간을 빠르게 보호하는 데 사용된다.
이 구조 덕분에, 인터넷 뱅킹 정보는 전송 중에 항상 암호화된 형태로 이동하고,
중간에서 누군가 패킷을 훔쳐보더라도 세션 키와 개인키를 모르면 내용을 알기 어렵다.

2. 메신저와 파일 암호화: 대칭키 암호의 실전 활용
메신저 앱이나 파일 암호화 프로그램에서는 대칭키 암호가 많이 쓰인다.
- 메신저 앱
- 메시지 내용을 빠르게 암호화하고 복호화해야 한다.
- 사진, 동영상, 음성 메시지 등 대용량 데이터가 많기 때문에,
- 속도가 빠른 대칭키 암호(AES 등)를 사용하는 것이 유리하다.
- 종단 간 암호화(End-to-End Encryption)를 사용하는 메신저에서는
- 대칭키를 사용자 간에 어떻게 안전하게 공유할지에 대해
- 내부적으로 공개키 암호를 함께 사용하기도 한다.
- 파일·디스크 암호화
- 하드디스크 전체를 암호화하거나, 특정 폴더, 파일을 암호화하는 기능은
- 대부분 대칭키 암호를 기반으로 한다.
- 사용자가 암호를 입력하면, 프로그램이 내부적으로 키를 생성하고
- 그 키로 데이터를 암호화·복호화한다.
- 하드디스크 전체를 암호화하거나, 특정 폴더, 파일을 암호화하는 기능은
이처럼 대칭키 암호는 대량의 데이터를 빠르게 처리해야 하는 모든 상황에서 거의 필수적으로 사용된다.
3. 전자 서명과 인증서: 공개키 암호가 신뢰를 만드는 방식
공개키 암호는 데이터 암호화뿐 아니라 전자 서명(digital signature)에도 사용된다.
전자 서명은 “이 문서가 정말 이 사람(또는 이 서버)이 보낸 것이 맞다”는 사실을 증명하는 기술이다.
기본 구조는 다음과 같다.
- 서명자는 문서 내용에서 해시(hash) 값을 계산한다.
- 해시는 문서 내용 전체를 반영하는 짧은 요약값이다.
- 이 해시 값을 자신의 개인키로 암호화한다.
- 이것이 전자 서명이다.
- 수신자는 문서와 전자 서명을 함께 받는다.
- 수신자는 서명자의 공개키로 서명을 복호화한다.
- 동시에 문서에서 직접 해시를 다시 계산해 본다.
- 두 해시 값이 같다면,
- 문서가 중간에 변경되지 않았고,
- 개인키를 가진 당사자가 서명했다는 것을 확인할 수 있다.
은행 사이트의 인증서, 소프트웨어 설치 파일의 서명, 전자계약 서비스 등에서
공개키 암호 기반의 전자 서명이 널리 사용된다.
4. 두 암호 방식 선택의 기준: “무엇을 보호할 것인가”
정리하면 현실 세계에서 대칭키 암호와 공개키 암호가 쓰이는 기준은 대략 다음과 같다.
- 대칭키 암호가 적합한 경우
- 많은 데이터를 빠르게 암호화해야 할 때
- 파일, 디스크, 영상 스트리밍, 메신저 메시지 등
- 공개키 암호가 적합한 경우
- 서로 처음 만나는 두 주체가 비밀키를 안전하게 공유해야 할 때(키 교환)
- 상대방의 “정체”를 확인해야 할 때(전자 서명, 인증서)
- 데이터를 암호화하되, 특정 수신자만 볼 수 있도록 해야 할 때
실제 서비스에서는 이렇게 나누어 사용하기보다는,
- HTTPS처럼 두 방식을 섞어 쓰는 하이브리드 구조를 사용하는 경우가 대부분이다.
두 가지 암호 방식을 알면 인터넷 보안 구조가 보인다
이 글에서는 대칭키 암호와 공개키 암호를 중심으로,
각 방식의 구조와 실제 사용 사례를 전산학 입문 수준에서 정리했다. 핵심 내용을 다시 요약하면 다음과 같다.
- 암호화는 평문을 키와 알고리즘을 이용해 암호문으로 바꾸는 기술이다.
- 키를 모르면 암호문만으로는 내용을 해독하기 어렵도록 설계한다.
- 대칭키 암호는 같은 키로 암호화와 복호화를 수행하는 방식이다.
- 빠르고 대용량 데이터 처리에 적합하지만, 키 전달 문제가 있다.
- 공개키 암호는 공개키와 개인키를 나누어 사용하는 방식이다.
- 키 전달과 전자 서명에 강점을 가지며, 서버 인증, 키 교환 등에 널리 쓰인다.
- 현실의 인터넷 서비스는 두 방식을 조합한 하이브리드 암호화를 사용한다.
- HTTPS, 인터넷 뱅킹, 메신저, 파일 암호화 등에서
- 공개키 암호로 세션 키를 안전하게 교환하고,
- 대칭키 암호로 실제 데이터를 빠르게 보호하는 구조를 사용한다.
- HTTPS, 인터넷 뱅킹, 메신저, 파일 암호화 등에서
- 이 구조를 이해하면 “왜 HTTPS 사이트는 비교적 안전한가”에 대한 기술적 이유를 설명할 수 있다.
- 중간에서 패킷을 훔쳐보더라도,
- 세션 키와 개인키가 없다면 내용을 알기 어렵다는 점이 핵심이다.
다음에 이어서 학습해 볼 만한 주제로는 예를 들어 다음과 같은 것들이 있다.
- “RSA와 AES: 실제로 많이 쓰이는 공개키·대칭키 알고리즘 구조 살펴보기”
- “디지털 인증서와 인증기관(CA): 브라우저가 웹사이트를 신뢰하는 과정”
이런 주제를 함께 살펴보면, 인터넷 뱅킹뿐 아니라 전자서명, 전자계약, 클라우드 보안 등 다양한 영역에서 쓰이는 현대 암호화 시스템 전체 흐름을 더 잘 이해할 수 있다.
'전산학' 카테고리의 다른 글
| 해시 함수와 비밀번호 저장: 사이트가 비밀번호를 직접 보관하지 않는 이유 (0) | 2025.12.12 |
|---|---|
| 인증(Authentication)과 인가(Authorization)의 차이와 실제 예시 (0) | 2025.12.12 |
| 암호화 기초: 인터넷 뱅킹 정보가 중간에서 훔쳐지지 않는 이유 (0) | 2025.12.12 |
| 정렬 알고리즘 비교: 버블 정렬부터 퀵 정렬까지, 실제 사용 사례 중심 (0) | 2025.12.12 |
| 알고리즘과 시간 복잡도: 같은 기능인데 왜 속도가 크게 다른가 (0) | 2025.12.12 |