- 암호화·복호화의 개념과 키의 역할을 설명할 수 있다.
- 치환형·전치형 암호 기법으로 간단한 데이터를 암호화하고 복호화할 수 있다.
- 암호화로 데이터를 안전하게 관리하는 실생활 사례를 비교·분석하고, 암호화의 중요성을 설명할 수 있다.
생각 열기 — 전쟁의 승패를 가른 기계
제2차 세계대전, 독일군은 '에니그마'라는 기계로 군사 통신을 암호화했습니다. 연합군은 이 암호를 풀기 위해 수학자들을 모았고, 그 중심에 컴퓨터 과학의 아버지 앨런 튜링이 있었죠. 마침내 암호가 풀리자 전쟁이 2년 이상 단축되었다고 평가받습니다. 정보를 숨기는 기술과 푸는 기술의 대결 — 그 역사가 오늘날 컴퓨터와 인터넷 보안의 뿌리가 되었습니다.
① 지금 내 스마트폰에서 암호화가 쓰이고 있는 곳은 어디일까요? (힌트: 잠금 화면 말고도 아주 많아요!) ② 만약 오늘부터 세상의 모든 암호화가 사라진다면, 가장 먼저 어떤 일이 벌어질까요?
암호화란 무엇일까
평문, 암호문, 그리고 열쇠
암호화(encryption)는 원래의 데이터를 약속을 모르는 사람은 읽을 수 없는 형태로 바꾸는 것이고, 복호화(decryption)는 그것을 다시 원래대로 되돌리는 것이에요.
암호화와 복호화 — 양쪽 모두 '키(key)'라는 약속이 필요하다.
여기서 가장 중요한 것이 키(key)입니다. 암호화 방법은 세상에 공개되어 있어도, 키만 비밀이면 데이터는 안전해요. 현관문의 잠금장치 구조는 누구나 알지만 내 열쇠가 없으면 못 여는 것과 같죠. 그리고 1차시의 압축과 비교해 보세요 — 압축은 크기를 줄이는 변환, 암호화는 읽지 못하게 하는 변환. 목적이 완전히 다른 두 기술이 함께 데이터를 '효율적이고 안전하게' 관리합니다.
치환형 암호 — 글자를 바꿔치기
카이사르가 쓰던 2천 년 된 방법
치환형 암호는 글자를 다른 글자로 바꿔치기하는 방식이에요. 로마의 장군 카이사르는 알파벳을 약속한 수만큼 뒤로 밀어서 편지를 암호화했습니다. 키가 3이면 A→D, B→E, C→F… 이런 식이죠. 직접 해 볼까요?
메시지를 입력하고 키 휠을 돌려 보세요. 영어는 알파벳을, 한글은 글자(음절)를 키만큼 밀어냅니다. 친구에게 암호문과 키를 따로 보내서 복호화를 부탁해 보세요!
아래 암호문은 카이사르 암호로 잠겨 있어요. 키를 모르지만 괜찮습니다 — 키는 25개뿐이니까요. 휠을 돌려 모든 키를 시험해 보세요(무차별 대입 공격, brute force).
방금 여러분은 몇 초 만에 암호를 깼어요. 키가 25개뿐이라 전부 시험하면 되니까요. 게다가 긴 암호문에는 빈도 분석이라는 더 빠른 공격도 통합니다(더 알아보기 참고). 현대 암호가 2¹²⁸개(약 10³⁸개!) 이상의 키를 쓰는 이유 — 모든 키를 시험하는 데 우주의 나이보다 긴 시간이 걸리게 만들기 위해서랍니다.
전치형 암호 — 순서를 뒤섞기
글자는 그대로, 자리만 바꾼다
전치형 암호는 치환형과 달리 글자를 바꾸지 않아요. 대신 순서를 약속대로 뒤섞습니다. 고대 스파르타의 '스키테일'은 막대에 가죽끈을 감아 글을 쓰고, 풀면 글자 순서가 섞이는 도구였어요 — 같은 굵기의 막대(=키)가 있어야 다시 읽을 수 있었죠. 대표적인 전치형 암호인 레일 펜스(rail fence)를 직접 보세요.
글자를 지그재그(울타리 모양)로 배치한 뒤, 가로줄 순서대로 읽으면 암호문 완성! 암호문이 만들어지면 [복호화 보기]로 받는 사람이 원문을 되살리는 과정까지 확인해 보세요.
| 구분 | 치환형 암호 | 전치형 암호 |
|---|---|---|
| 바꾸는 것 | 글자 자체를 다른 글자로 | 글자의 자리(순서)를 |
| 예시 | 카이사르 암호 (A→D) | 스키테일, 레일 펜스 |
| "정보" 암호화 | "챵캭" (다른 글자로 변신) | "보정" (같은 글자, 다른 순서) |
| 현대 암호에서는 | 치환과 전치를 수십 번 겹쳐서 사용 (AES 등) — 두 방식 모두 현대 암호의 부품! | |
암호화는 지금, 어디에서 우리를 지키고 있을까
활용 사례 비교·분석
고전 암호의 원리를 이어받은 현대 암호화는 보이지 않는 곳에서 매 순간 우리를 지키고 있어요. 네 가지 대표 사례를 무엇을, 누구로부터, 어떻게 보호하는지 관점으로 비교해 봅시다.
웹사이트 접속 (HTTPS)
보호 대상: 로그인 정보, 카드 번호, 검색 내용
위협: 통신을 엿듣는 공격자
주소창의 자물쇠 표시 = 내 컴퓨터와 서버 사이의 모든 데이터가 암호화 중이라는 뜻!
메신저 종단 간 암호화
보호 대상: 대화 내용
위협: 해커, 그리고 서버 운영 회사조차 못 읽게
보내는 폰에서 잠그고 받는 폰에서만 열려요. 중간의 서버는 암호문만 전달!
기기·디스크 암호화
보호 대상: 기기에 저장된 모든 파일
위협: 폰·노트북을 훔치거나 주운 사람
잠금 해제 없이는 저장 장치를 뜯어내도 데이터가 의미 없는 암호문 덩어리예요.
와이파이 암호화 (WPA)
보호 대상: 공유기와 기기 사이의 전파
위협: 같은 공간에서 전파를 수신하는 누군가
1단원에서 배운 무선 통신의 약점("전파는 가로챌 수 있다")을 암호화가 막아 줍니다!
- [관찰] 지금 이 웹교과서… 가 아닌 자주 쓰는 사이트에 접속해 주소창의 자물쇠(또는 'https')를 직접 확인하고, 자물쇠를 눌러 인증서 정보를 살펴보세요.
- [비교] 위 네 가지 사례를 표로 정리하세요 — 보호하는 데이터 / 막아 주는 위협 / 암호화가 없다면 생길 일.
- [분석] 네 사례 중 "나에게 가장 중요한 암호화"를 하나 고르고 근거를 두 가지 써 보세요.
- [토론] 종단 간 암호화는 범죄 수사를 어렵게 만들기도 합니다. "수사 기관을 위한 뒷문(backdoor)을 만들어야 한다"는 주장에 찬성/반대 근거를 들어 토론해 보세요.
✍️ 한 줄 정리 — "암호화가 개인과 사회를 보호하는 수단인 이유는?"
확인 문제
바로바로 채점! 해설까지 꼭 읽어 보세요.
2차시 확인 문제
5문항 · 즉시 채점
1암호문을 키를 이용해 원래의 평문으로 되돌리는 것을 무엇이라고 하는가?
2카이사르 암호(키=3)로 "CAT"을 암호화한 결과는?
3치환형 암호와 전치형 암호의 차이를 바르게 설명한 것은?
4레일 펜스 암호문 "오전늘작개밤시"(레일 3개, 7글자)를 복호화한 원문은?
5암호화에 대한 설명으로 옳지 않은 것은?
더 알아보기
교육과정 너머, 궁금한 만큼 깊이!
심화열쇠를 어떻게 전달하지? — 공개키 암호의 발명
치환형·전치형 암호에는 치명적인 고민이 있어요. 키를 상대에게 어떻게 안전하게 전달할까? 키를 보내는 길이 도청당하면 모든 게 끝이니까요. 1976년, 이 수천 년 묵은 문제를 뒤집는 아이디어가 나옵니다 — 공개키 암호.
비유하면 이렇습니다. 나는 열린 자물쇠(공개키)를 세상에 마구 나눠 줘요. 누구든 나에게 비밀을 보내고 싶으면 그 자물쇠로 상자를 잠가서 보내면 됩니다. 한 번 찰칵 잠긴 자물쇠는 오직 내 열쇠(개인키)로만 열려요. 잠그는 도구와 여는 도구가 다르니, 여는 열쇠는 단 한 번도 인터넷을 여행할 필요가 없죠!
수학적으로는 "곱하기는 쉽지만 소인수분해는 어렵다" 같은 일방향 문제를 이용해요(RSA). 여러분이 HTTPS 사이트에 접속하는 순간에도, 브라우저는 공개키 암호로 안전하게 비밀 키를 교환한 뒤 대화를 시작한답니다.
🔁 [다음] 버튼으로 자물쇠가 오가는 5단계를 따라가 보세요 — 여는 열쇠는 한 번도 길을 떠나지 않아요!
심화긴 암호문은 위험하다 — 빈도 분석 공격
치환형 암호의 또 다른 약점은 글자의 버릇이에요. 영어 문장에서 가장 자주 나오는 알파벳은 단연 E(약 12.7%), 그다음 T, A 순서죠. 글자를 바꿔치기해도 빈도라는 지문은 그대로 남습니다.
그래서 암호문에서 가장 자주 나오는 글자를 E라고 가정하고 하나씩 맞춰 가면, 키를 몰라도 퍼즐처럼 풀려요. 9세기 아랍의 학자 알 킨디가 처음 기록한 이 방법은 무려 천 년 넘게 암호 해독의 제왕이었습니다. 에니그마가 대단했던 이유도 글자를 누를 때마다 다른 규칙으로 바꿔서 빈도의 지문을 지웠기 때문이에요.
🔬 빈도 분석기 — 아래 카이사르 암호문(영문)의 알파벳 빈도를 실시간으로 셉니다. 가장 높은 막대를 E라고 가정하면 키가 보여요! (직접 수정해도 됩니다)
미래양자 컴퓨터가 오면 암호는 끝장일까?
양자 컴퓨터는 특정 수학 문제(소인수분해 등)를 기존 컴퓨터보다 압도적으로 빠르게 풀 수 있어, 충분히 강력해지면 현재의 공개키 암호(RSA 등)가 위험해질 수 있어요. 그래서 암호학자들은 이미 움직이고 있습니다 — 양자 컴퓨터로도 풀기 어려운 새로운 수학 문제에 기반한 양자내성암호(PQC)가 2024년 미국 표준 기관(NIST)의 표준으로 확정되었고, 전 세계 시스템이 차근차근 갈아타는 중이에요.
"지금 암호문을 저장해 뒀다가 나중에 양자 컴퓨터로 풀겠다(harvest now, decrypt later)"는 위협 때문에, 수십 년 뒤까지 비밀이어야 하는 데이터는 벌써 양자내성암호로 보호되기 시작했답니다. 창과 방패의 경주는 계속됩니다!
| 구분 | 현재 공개키 암호 (RSA 등) | 양자내성암호 (PQC) |
|---|---|---|
| 기반 수학 문제 | 소인수분해 등 | 격자 문제 등 새로운 난제 |
| 일반 컴퓨터의 공격 | 사실상 불가능 ✅ | 사실상 불가능 ✅ |
| 양자 컴퓨터의 공격 | 위험 — 빠르게 풀릴 수 있음 ⚠️ | 풀기 어렵다고 평가 ✅ |
| 지금 상황 | 전 세계 대부분의 시스템이 사용 중 | 2024년 표준 확정, 전환 시작 |
코딩파이썬으로 만드는 카이사르 암호기
오늘 쓴 암호기의 핵심은 단 몇 줄이에요. (영문 대문자 기준 — 파이썬은 3단원에서 본격적으로 배워요!)
def caesar(text, key):
result = ""
for ch in text:
if "A" <= ch <= "Z":
moved = (ord(ch) - ord("A") + key) % 26
result += chr(ord("A") + moved)
else:
result += ch # 알파벳이 아니면 그대로
return result
cipher = caesar("MEET AT THREE", 3)
print(cipher) # PHHW DW WKUHH
print(caesar(cipher, -3)) # 복호화: 키를 거꾸로!
🔍 코드 따라가기 — caesar("CAT", 3)의 글자별 계산
| ch | 알파벳 위치 (0~25) | +3 한 뒤 % 26 | 결과 글자 |
|---|---|---|---|
| C | 2 | 5 | F |
| A | 0 | 3 | D |
| T | 19 | 22 | W |
% 26은 Z를 넘어가면 A로 돌아오게 하는 마법이에요. 모든 키(1~25)로 복호화를 시도하는
무차별 대입 해독기도 for문 하나면 만들 수 있겠죠? 직접 도전해 보세요!
한눈에 정리
- 암호화 = 평문을 키 없이는 읽을 수 없는 암호문으로 바꾸는 것, 복호화 = 되돌리는 것
- 방법은 공개되어도 키만 비밀이면 안전 — 키가 암호의 심장
- 치환형(카이사르): 글자를 바꿔치기 / 전치형(레일 펜스): 순서를 뒤섞기 — 현대 암호는 둘을 겹겹이 사용
- 키 공간이 좁으면 무차별 대입에, 글자 빈도가 남으면 빈도 분석에 뚫린다
- HTTPS·메신저·기기·와이파이 — 암호화는 개인의 사생활과 사회의 신뢰를 지키는 기반 기술