3장. 고전 암호 기법
**대칭 암호화(Symmetric Encryption)**는 1970년대 공개키 암호 개발 이전의 유일한 암호화 방식으로, 현재도 가장 널리 사용된다. 이 장에서는 컴퓨터 이전 시대의 고전 암호 기법들과 암호 분석 방법을 다룬다.
학습 목표
- 대칭 암호화의 주요 개념을 설명한다.
- 암호 분석(Cryptanalysis)과 무차별 대입 공격의 차이를 이해한다.
- 단일/다중 알파벳 치환 암호의 작동 원리를 파악한다.
- Hill cipher와 로터 머신의 동작 방식을 설명한다.
3.1 대칭 암호 모델
기본 용어
| 용어 | 정의 |
|---|---|
| 평문 (Plaintext) | 원본 메시지나 데이터 |
| 암호문 (Ciphertext) | 암호화된 메시지 |
| 암호화 (Encryption) | 평문을 암호문으로 변환 |
| 복호화 (Decryption) | 암호문을 평문으로 복원 |
| 암호학 (Cryptography) | 암호화 방법 연구 |
| 암호 분석 (Cryptanalysis) | 암호 해독 기법 연구 |
대칭 암호화의 구성 요소
- 평문: 알고리즘에 입력되는 원본 메시지
- 암호화 알고리즘: 평문에 치환과 변환을 수행
- 비밀 키: 암호화 알고리즘에 입력되는 값
- 암호문: 스크램블된 출력 메시지
- 복호화 알고리즘: 암호화의 역과정
수학적 표현
안전한 암호화의 요구사항
- 강력한 암호화 알고리즘: 알고리즘과 암호문을 알아도 키나 평문 복구 불가
- 안전한 키 관리: 송수신자 간 비밀 키의 안전한 배송과 보관
암호화 시스템 분류
| 차원 | 분류 |
|---|---|
| 변환 연산 유형 | 치환 (Substitution), 순열 (Transposition) |
| 키 개수 | 대칭 (1개), 비대칭 (2개) |
| 평문 처리 | 블록 암호, 스트림 암호 |
3.2 암호 분석과 무차별 대입 공격
암호 공격의 두 가지 접근법
| 공격 유형 | 설명 |
|---|---|
| 암호 분석 (Cryptanalysis) | 알고리즘 특성과 평문의 일반적 특성을 이용한 공격 |
| 무차별 대입 공격 (Brute-force Attack) | 모든 가능한 키를 시도하는 공격 |
암호 분석 공격의 분류
| 공격 유형 | 공격자가 아는 정보 |
|---|---|
| 암호문만 공격 | 암호화 알고리즘, 암호문 |
| 기지 평문 공격 | 암호화 알고리즘, 암호문, 평문-암호문 쌍 |
| 선택 평문 공격 | 암호화 알고리즘, 암호문, 선택한 평문과 대응 암호문 |
| 선택 암호문 공격 | 암호화 알고리즘, 암호문, 선택한 암호문과 대응 평문 |
| 선택 텍스트 공격 | 선택 평문 + 선택 암호문 공격의 조합 |
보안 수준
| 보안 수준 | 정의 |
|---|---|
| 무조건 안전 | 암호문에 평문을 결정할 충분한 정보 부족 |
| 계산상 안전 | 해독 비용이 정보 가치 초과 또는 해독 시간이 정보 유효 기간 초과 |
무차별 대입 공격에서는 평균적으로 전체 키의 절반을 시도해야 성공한다.
3.3 치환 기법 (Substitution Techniques)
Caesar Cipher
가장 단순한 치환 암호로, 각 문자를 알파벳에서 고정된 수만큼 이동시킨다.
수학적 정의
예시: 평문 "meet me after", 키 k=3 → 암호문 "PHHW PH DIWHU"
취약점: 키 공간이 25개로 작아 무차별 대입 공격에 취약
단일 알파벳 암호 (Monoalphabetic Ciphers)
26개 문자의 임의 순열을 사용하는 치환 암호이다.
| 특성 | 값 |
|---|---|
| 키 공간 | |
| 공격 방법 | 빈도 분석 (Frequency Analysis) |
| 영어 문자 빈도 | e(12.7%), t(9.1%), a(8.2%), ... |
Playfair Cipher
Digram(2문자 블록)을 암호화하는 다중 문자 치환 암호이다.
알고리즘
- 키워드로 5×5 행렬 구성 (I/J는 하나로 취급)
- 평문을 2문자씩 쌍으로 만듦
- 암호화 규칙 적용:
- 같은 행: 오른쪽으로 이동
- 같은 열: 아래로 이동
- 다른 행/열: 사각형의 반대편 모서리
예시 행렬 (키워드: MONARCHY)
M O N A R
C H Y B D
E F G I/J K
L P Q S T
U V W X Z
장점: 676개 digram으로 단일 문자 빈도 분석 무력화 단점: 언어 구조가 일부 남아있어 몇 백 글자면 해독 가능
Hill Cipher
선형대수학을 이용한 블록 암호이다.
수학적 원리
조건: 키 행렬 의 행렬식이 26과 서로소여야 함
예시 (m=2)
취약점: 기지 평문 공격에 취약 (개의 평문-암호문 쌍으로 키 복구 가능)
다중 알파벳 암호 (Polyalphabetic Ciphers)
Vigenère Cipher
키워드를 반복하여 여러 Caesar 암호를 순환 사용한다.
수학적 정의
예시
- 키워드: "deceptive"
- 평문: "we are discovered"
- 암호문: "ZICVTWQNGRZG"
암호 분석 방법
- 키 길이 결정: 반복 패턴의 거리 분석
- 각 Caesar 암호 개별 해독
One-Time Pad
메시지와 같은 길이의 완전 랜덤 키를 한 번만 사용하는 시스템이다.
특징
- 무조건적으로 안전: 유일한 완전 보안 암호 시스템
- 실용적 문제: 대용량 랜덤 키 생성과 배포의 어려움
3.4 순열 기법 (Transposition Techniques)
Rail Fence Cipher
평문을 대각선으로 배치하고 행별로 읽는 단순한 순열 암호이다.
예시 (깊이 2)
평문: "meet me after the toga party"
배치: m e m a t r h t g p r y
e t e f e t e o a a t
암호문: "MEMATRHTGPRYETEFETEOAAت"
열 순열 암호 (Columnar Transposition)
- 평문을 사각형에 행별로 기록
- 열 순서를 키에 따라 재배열하여 읽기
예시
키: 4 3 1 2 5 6 7
a t t a c k p
o s t p o n e
d u n t i l t
w o a m x y z
암호문: TTNAAPTMTSUOAODWCOIXKNLYPETZ
이중 순열: 순열을 두 번 적용하여 보안성 향상
3.5 로터 머신 (Rotor Machines)
기본 구조
독립적으로 회전하는 여러 원통(실린더)을 통해 전기 신호가 흐르는 기계식 암호 장치이다.
| 구성 요소 | 설명 |
|---|---|
| 각 원통 | 26개 입력/출력 핀, 내부 배선으로 단일 알파벳 치환 구현 |
| 회전 방식 | 내부 원통은 매 입력마다 1위치씩, 외부로 갈수록 느리게 회전 |
| 주기 | 3개 원통: , 5개 원통: 약 1,200만 문자 |
역사적 중요성: 독일 Enigma, 일본 Purple 등이 2차 대전에서 사용
3.6 스테가노그래피 (Steganography)
정의
메시지의 존재 자체를 숨기는 기법 (암호화가 아님)
| 구분 | 목적 |
|---|---|
| 암호학 | 메시지를 읽을 수 없게 변환 |
| 스테가노그래피 | 메시지의 존재를 은닉 |
전통적 기법
- 문자 마킹: 특정 글자를 연필로 표시
- 투명 잉크: 열이나 화학 처리 시에만 나타나는 잉크
- 핀 구멍: 특정 문자에 작은 구멍
- 타자기 수정: 검은 리본과 교대 사용
현대적 응용
디지털 이미지 LSB 방식
- 각 픽셀의 최하위 비트에 메시지 저장
- Kodak Photo CD: 3096×6144 픽셀에 130KB 메시지 저장 가능
장단점 비교
| 장점 | 단점 |
|---|---|
| 비밀 통신 사실 자체 은닉 | 적은 정보량 대비 큰 오버헤드 |
| 의심받을 상황에서 유용 | 발견 시 완전히 무용지물 |
주요 용어
| 한국어 | 영어 | 설명 |
|---|---|---|
| 블록 암호 | Block Cipher | 고정 크기 블록을 처리하는 암호 |
| 무차별 대입 공격 | Brute-force Attack | 모든 키를 시도하는 공격 |
| 시저 암호 | Caesar Cipher | 고정 이동량의 치환 암호 |
| 암호문 | Ciphertext | 암호화된 메시지 |
| 계산상 안전 | Computationally Secure | 실용적 시간 내 해독 불가 |
| 암호 분석 | Cryptanalysis | 암호 해독 기법 연구 |
| 암호학 | Cryptography | 암호 기법 연구 |
| 다이그램 | Digram | 2문자 조합 |
| Hill 암호 | Hill Cipher | 행렬 기반 다중 문자 암호 |
| 단일 알파벳 암호 | Monoalphabetic Cipher | 하나의 치환 알파벳 사용 |
| 원타임 패드 | One-Time Pad | 완전 보안 암호 시스템 |
| 평문 | Plaintext | 원본 메시지 |
| Playfair 암호 | Playfair Cipher | Digram 처리 치환 암호 |
| 다중 알파벳 암호 | Polyalphabetic Cipher | 여러 치환 알파벳 사용 |
| 스테가노그래피 | Steganography | 메시지 존재 은닉 기법 |
| 스트림 암호 | Stream Cipher | 연속 처리 암호 |
| 대칭 암호화 | Symmetric Encryption | 동일 키 사용 암호화 |
| 순열 암호 | Transposition Cipher | 문자 위치 재배열 암호 |
| 무조건 안전 | Unconditionally Secure | 무한 계산력으로도 해독 불가 |
| Vigenère 암호 | Vigenère Cipher | 키워드 반복 다중 알파벳 암호 |