Edu at Talk
메인 콘텐츠로 건너뛰기
학문·교양

비밀을 미리 나누지 않고도 비밀을 지키는 법 — 공개키 암호의 아이디어

한 번도 만난 적 없는 쇼핑몰과 카드번호를 안전하게 주고받을 수 있는 이유가 있습니다. 암호학의 공개키 방식으로, '열쇠를 공개하는데도 안전한' 역설이 어떻게 가능한지 살펴봅니다.

  • 암호학
  • 공학계열
  • 컴퓨터정보
  • 공개키암호
  • 정보보안
  • 소인수분해
  • 학문탐구

인터넷 쇼핑몰에서 카드번호를 입력한다. 그런데 생각해 보면 이상하다. 나와 그 쇼핑몰 서버는 한 번도 만난 적이 없고, 비밀번호를 미리 약속한 적도 없다. 게다가 그 사이 네트워크에는 오가는 신호를 엿볼 수 있는 사람이 수없이 많다. 그런데도 내 카드번호는 새어 나가지 않는다.

이건 마법이 아니라 수학이다. 열쇠를 서로 몰래 나눠 갖지 않고도, 오히려 열쇠 하나를 온 세상에 공개해 놓고도 비밀이 지켜진다. 이 역설을 가능하게 만든 아이디어를 다루는 학문이 있다. 이 글은 정보와 보안이 어떻게 맞물리는지 궁금한 학생을 위한 것이다.

열쇠를 공개하는데 어떻게 비밀이 지켜질까?

비밀을 주고받으려면 열쇠를 나눠야 한다. 그런데 열쇠 자체를 어떻게 안전하게 전달하지? 이 '닭이 먼저냐 달걀이 먼저냐'가 오랜 난제였다.

해법은 발상의 전환이었다. 잠그는 열쇠와 여는 열쇠를 다르게 만드는 것. 잠그는 열쇠(공개키)는 누구나 가져가도록 활짝 뿌려 둔다. 그것으로는 상자를 잠글 수만 있고 열 수는 없다. 여는 열쇠(개인키)는 나만 갖는다. 그러면 세상 누구든 내 공개키로 메시지를 잠가 보낼 수 있지만, 그것을 여는 건 오직 나뿐이다.

잠그는 능력과 여는 능력을 갈라놓는 순간, 열쇠를 공개해도 안전해진다.

이 현상을 다루는 학문은 무엇인가?

정보를 감추고, 지키고, 그 안전성을 수학으로 따지는 학문이 암호학(cryptography)이다. 위의 방식은 잠그는 쪽과 여는 쪽이 다르대서 비대칭 암호 또는 공개키 암호라 불리며, 1970년대에 등장해 오늘날 인터넷 통신의 바탕이 되었다.

이 안전성은 '어떤 계산은 한 방향으로는 쉽지만 되돌리기는 지독히 어렵다'는 성질에 기댄다. 두 개의 아주 큰 소수를 곱하는 것은 순식간이지만, 그 곱만 보고 원래 두 소수를 되찾는 소인수분해는 사실상 불가능에 가깝다. 답이 있다는 건 알아도 못 찾는 문제 — 이 지점에서 암호학은 계산 이론·정수론과 손을 잡는다.

고등학교에서 배운 무엇과 이어지나?

가장 곧바로 이어지는 과목은 정보다. 자료를 표현하고 알고리즘의 효율을 따지는 그 내용이 암호의 토대다 — '얼마나 빨리 풀 수 있는가'가 곧 '얼마나 안전한가'를 뒤집은 값이기 때문이다.

수학 쪽 앵커는 조심스럽게 잡아야 한다. 공개키 암호의 핵심인 '나머지를 이용한 계산(모듈러 연산)'은 고교 정규 교과에서 직접 다루지 않는다. 다만 그 뿌리는 공통수학1의 나머지정리에 있다 — 다항식의 나눗셈과 나머지, 나머지정리에서 익힌 '나누고 남는 것'의 사고가, 정수의 세계로 옮겨 가면 암호의 언어가 된다. 열쇠의 가짓수를 셈하는 데에는 순열과 조합의 경우의 수가 쓰인다.

대학에서는 이걸 어떻게 배우나?

암호학은 컴퓨터공학·정보보안·수학(정수론) 등에서 다뤄지며, 이산수학·정수론·알고리즘을 바탕으로 대칭·비대칭 암호, 해시, 전자서명, 그리고 최근에는 양자컴퓨터 시대에도 안전한 암호까지 배운다. 이론과 구현, 그리고 시스템 보안이 함께 묶인다. 과목 구성은 대학마다 다르므로, 컴퓨터·정보보안 계열 학과의 교육과정을 직접 확인하는 편이 정확하다.

여기서 뻗어 나갈 탐구 질문 3가지

  1. 양자컴퓨터가 실용화되면 소인수분해에 기댄 지금의 암호는 왜 위험해지고, 그 대안으로 무엇이 연구되고 있는가?
  2. 비밀번호를 알려 주지 않고도 '내가 그 비밀번호를 안다'만 증명하는 방법(영지식 증명)은 어떤 원리인가?
  3. 암호가 완벽해도 뚫리는 경우가 많은데, 그 약한 고리는 왜 대개 기술이 아니라 사람인가?

한 줄 요약

잠그는 열쇠와 여는 열쇠를 갈라놓는 발상 하나가, '비밀을 미리 나누지 않고도 비밀을 지키는' 인터넷을 가능하게 했다.

'되돌리기 어려운 계산'이라는 아이디어 하나를 붙잡고 파고들면 정보 세특의 훌륭한 주제가 된다. TimeLevelUp은 이렇게 시작된 호기심을 학습 기록으로 이어, 막연한 관심이 구체적인 탐구로 자라도록 돕는다.

자주 묻는 질문

Q. 공개키 암호가 무엇인가요?
잠그는 열쇠(공개키)와 여는 열쇠(개인키)를 다르게 만든 암호 방식입니다. 잠그는 열쇠는 누구에게나 공개하고, 여는 열쇠는 자기만 갖습니다. 그래서 미리 비밀을 나눈 적 없는 상대와도, 도청자가 가득한 인터넷에서 안전하게 메시지를 주고받을 수 있습니다.
Q. 열쇠를 공개하는데 왜 안전한가요?
공개키로 잠근 것은 오직 짝이 되는 개인키로만 열리고, 공개키만 보고 개인키를 알아내는 것이 계산적으로 매우 어렵기 때문입니다. 예를 들어 아주 큰 두 소수를 곱하기는 쉽지만, 그 결과만 보고 원래 소수를 되찾는 소인수분해는 현실적인 시간 안에 풀기 어렵습니다.

에듀엣톡이 돕는 방법

이 글의 내용을 실제 계획으로 옮기고 싶다면생기부레벨업수시합격 매뉴얼학교생활기록부와 진로·전공 방향을 함께 놓고 활동 기록과 세부능력 및 특기사항의 준비 방향을 점검하는 1:1 상담입니다.생기부레벨업 학생부종합전형 상담 살펴보기 →

학습 계획과 실행 점검이 필요하다면 타임레벨업 — 중·고등학생의 하루 공부를 계획부터 점검까지 관리합니다.

상담 신청 전에 카카오톡으로 먼저 물어보기 — 평일 09:00 — 18:00 답변합니다.

이 글을 인용한 글

이어서 읽기