최종 업데이트 07:21
소개 검색
SEOUL AI PRESS

AI와 기술을, 사실부터

강좌 강좌

암호화 입문: 평문이 암호문이 되는 원리

Cloudflare · MDN Web Docs

인터넷에서 주고받는 정보는 어떻게 남이 읽기 어렵게 보호될까. 평문·암호문·키라는 세 가지 개념만 이해하면 그 원리가 보인다.

한 문장으로 이해하기

암호화(encryption)란 사람이 읽을 수 있는 데이터인 평문(plaintext)을, 권한 없는 사람이 읽기 어려운 형태인 암호문(ciphertext)으로 변환하는 과정이다. 이 강좌를 마치면 평문·암호문·키의 관계를 설명하고, 암호화와 복호화가 진행되는 기본 흐름을 이해할 수 있다. 또한 전송 중인 데이터를 보호할 때 암호화가 어떤 역할을 하는지 말할 수 있다. 사전지식은 필요 없으며, 인터넷으로 데이터를 주고받아 본 경험이면 충분하다.

왜 필요한가

암호화는 저장 중인 데이터와 네트워크를 지나가는 전송 중인 데이터에 모두 적용할 수 있다. 전송 중인 데이터를 암호화하면, 올바른 키가 없는 제3자가 도중에 내용을 접하더라도 그 의미를 이해하기 어렵게 만들 수 있다. 저장된 데이터를 암호화하면, 저장 장치에 접근한 사람이라도 키 없이는 내용을 읽기 어렵다. 즉 암호화의 핵심 가치는 ‘올바른 복호화 키를 가진 쪽이 암호문을 평문으로 되돌릴 수 있다’는 점에 있다.

어떻게 이루어지는가

암호화에는 두 가지 재료가 필요하다. 하나는 암호화 알고리즘(algorithm)으로, 데이터를 변환하는 수학적 규칙이다. 다른 하나는 키(key)로, 알고리즘이 데이터를 변환할 때 사용하는 값 또는 문자열이다. 현대 암호에서는 알고리즘 자체가 공개되는 경우가 많으며, 보안을 유지하려면 비밀 키를 보호하는 것이 중요하다.

암호화와 복호화(decryption, 암호문을 다시 평문으로 되돌리는 것)는 다음 순서로 진행된다.

  1. 송신자가 평문과 키를 알고리즘에 넣어 암호문을 만든다.
  2. 암호문이 수신자에게 전달된다.
  3. 수신자가 올바른 복호화 키를 사용해 암호문을 평문으로 되돌린다.

이때 암호화와 복호화에 같은 비밀 키를 쓰는 방식을 대칭 암호화, 서로 다른 키를 쓰는 방식을 비대칭 암호화라고 부른다. 키를 모르는 공격자가 여러 키 후보를 반복해서 추측하는 시도를 무차별 대입 공격(brute force attack)이라고 한다. 이런 공격에 얼마나 잘 버티는지는 선택한 알고리즘의 안전성과 키 같은 조건에 따라 달라진다.

하나의 예시로 따라가기

가상 예시: 민지가 준호에게 알파벳 메시지 “HI"를 보내려 한다.

  1. 평문 준비: 보낼 내용은 “HI"다.
  2. 키 결정: 두 사람이 미리 키를 “3"으로 정했다. 규칙은 각 알파벳을 3칸 뒤 글자로 바꾸는 것이다.
  3. 암호화: H는 K로, I는 L로 바뀌어 암호문 “KL"이 만들어진다.
  4. 전송: 암호문 “KL"이 네트워크를 통해 준호에게 전달된다. 즉 평문 “HI"가 그대로 전달되지는 않는다.
  5. 복호화: 준호는 같은 키 “3"을 이용해 각 글자를 3칸 뒤로 되돌린다. K는 H로, L은 I로 복원되어 평문 “HI"를 얻는다. 같은 키를 양쪽에서 쓰므로 이 방식은 대칭 암호화에 해당한다.

주의할 점이 있다. 이 단순 글자 이동 규칙은 개념 설명을 위한 것일 뿐 실제 보안용 암호화가 아니며, 규칙이 단순해서 쉽게 깨질 수 있다. 실제 인터넷에서는 훨씬 안전한 알고리즘이 쓰인다. 예를 들어 웹에서 쓰는 HTTPS(Hypertext Transfer Protocol Secure, 안전한 하이퍼텍스트 전송 프로토콜)는 TLS(Transport Layer Security, 전송 계층 보안)라는 암호화 프로토콜을 사용한다. TLS는 HTTP(Hypertext Transfer Protocol, 하이퍼텍스트 전송 프로토콜) 요청과 응답을 보호한다.

언제 쓰고 언제 쓰지 않는가

암호화는 전송 중인 통신 내용을 보호할 때, 그리고 저장된 데이터를 보호할 때 쓰인다. 웹에서는 HTTPS가 TLS를 통해 브라우저와 서버 사이의 요청과 응답을 보호하는 것이 대표적인 활용이다.

다만 암호화가 항상 같은 수준의 보호를 주는 것은 아니다. 가상 예시의 글자 이동처럼 약하고 단순한 규칙은 쉽게 깨질 수 있다. 키를 모르는 상태에서 복호화하기가 얼마나 어려운지는 선택한 암호 알고리즘의 안전성에 따라 달라진다. 무차별 대입 공격처럼 키를 반복 추측하는 시도도 존재한다. 따라서 어떤 알고리즘과 키를 쓰는지, 비밀 키가 잘 보호되는지가 실제 보호 수준을 좌우한다.

핵심 정리와 확인문제

핵심 정리

  • 평문 + 키 + 알고리즘 → 암호문, 암호문 + 올바른 키 → 평문.
  • 현대 암호에서는 알고리즘이 공개되는 경우가 많으므로 비밀 키를 보호해야 하며, 복호화의 어려움은 선택한 알고리즘의 안전성에도 좌우된다.
  • 암호화는 저장 중인 데이터와 전송 중인 데이터 모두에 적용할 수 있다.
  • 복호화의 어려움은 알고리즘의 안전성 등 조건에 따라 달라진다.

확인문제

문제 1. 가상 예시에서 민지가 준호에게 네트워크로 보낸 것은 평문 “HI"인가, 암호문 “KL"인가? 이 답이 평문·암호문·키의 관계에서 무엇을 뜻하는지 함께 말해 보자.

정답 1. 암호문 “KL"이다.

해설 1. 이 예시의 흐름에서는 평문 “HI"를 키 “3"과 규칙으로 먼저 암호문으로 바꾼 뒤 그 암호문을 전달한다. 즉 평문은 키와 알고리즘을 거쳐 암호문이 되고, 올바른 키가 있어야 다시 평문으로 되돌릴 수 있다.

문제 2. 송신자가 평문을 보내고 수신자가 그것을 읽기까지, 암호화와 복호화의 기본 흐름을 세 단계로 순서대로 설명해 보자.

정답 2. 암호문 생성, 암호문 전달, 복호화의 세 단계다.

해설 2. 첫째, 송신자가 평문과 키를 알고리즘에 넣어 암호문을 만든다. 둘째, 암호문이 수신자에게 전달된다. 셋째, 수신자가 올바른 복호화 키를 사용해 암호문을 평문으로 되돌린다.

문제 3. 전송 중인 데이터를 암호화하면, 올바른 키가 없는 제3자에게 어떤 효과가 있는가?

정답 3. 제3자가 도중에 내용을 접하더라도 그 의미를 이해하기 어렵게 만든다.

해설 3. 전송 중인 데이터에 암호화를 적용하면 올바른 복호화 키를 가진 쪽만 암호문을 평문으로 되돌릴 수 있기 때문이다.

참고자료