3장-고전 암호 기법

2025. 4. 11. 19:11·컴퓨터 보안

1. 기본 용어 정리 (Definitions)

용어 설명
Plaintext(평문) 암호화되기 전의 원래 메시지
Ciphertext(암호문) 암호화된 메시지
Encryption(암호화) 평문을 암호문으로 바꾸는 과정
Decryption(복호화) 암호문을 평문으로 되돌리는 과정
Cryptography(암호학) 암호학: 암호 기법 전체를 다루는 학문
Cryptographic System/Cipher(암호시스템) 암호화 방법과 절차의 조합
Cryptanalysis(해독학) 암호화 방식 모르는 상태에서 암호를 푸는 기술
Cryptology 암호학 + 해독학 모두 포함하는 학문 전체

 


2. 대칭 암호화 모델 (Symmetric Encryption)

🔹 대칭 암호 모델 (Figure 3.1)

  • 대칭키 방식: 같은 키로 암호화와 복호화 둘 다 수행
  • 구조: Plaintext → [암호화 알고리즘 + 키 K] → Ciphertext → [복호화 알고리즘 + 동일 키 K] → Plaintext 복원

🔹 보안 요구사항 (Symmetric Cipher Model)

  1. 암호화 알고리즘이 충분히 강력해야 함
  2. 송신자와 수신자가 동일한 비밀 키(K)를 안전하게 공유하고 보호해야 함

🔹 대칭 암호 시스템 확장 모델 (Figure 3.2)

  1. 암호 시스템 구성 요소:
    • Message Source: 원본 메시지
    • Encryption Algorithm: 암호화 알고리즘
    • Decryption Algorithm: 복호화 알고리즘
    • Destination: 수신자
  2. 암호 키:
    • Key Source: 키 소스 (암호화 및 복호화에 사용되는 비밀 키)
    • 키는 보안 채널(Secure Channel)을 통해 안전하게 공유되어야 함.
  3. 암호 분석자 (Cryptanalyst): 암호 분석자는 암호문을 보고, 키를 추적하려 시도할 수 있음.
  4. 전체 시스템 구성:
    • 대칭 암호화 시스템: 암호화 및 복호화 알고리즘 + 키 공유 메커니즘을 포함

3. 암호 해독 기법: 암호 분석(Cryptanalysis) & 무차별 대입(Brute-force)

Cryptanalysis (암호 분석)

  • 알고리즘의 구조나 평문의 통계적 특성(예: 글자 빈도 등)을 이용하여 암호를 해독
  • 수학적 취약점이나 규칙을 공략함

Brute-force Attack (무차별 대입 공격)

  • 가능한 모든 키를 하나씩 시험하여 복호화
  • 보통 평균적으로 키 공간의 절반 정도 시도해야 성공
  • 시저 암호의 키는 0~25까지 총 26개밖에 없기 때문에, 브루트 포스로 쉽게 깨짐.
    • 암호문을 26번 모두 복호화 해보면, 어느 순간 정상 문장이 나와서 쉽게 알아냄.

4. 암호문 공격 유형 (Table 3.1)

공격 유형 공격자가 아는 정보
Ciphertext Only 암호문, 알고리즘
Known Plaintext 평문 일부 + 암호문 쌍
Chosen Plaintext 공격자가 평문을 선택해 암호화 결과 확인
Chosen Ciphertext 공격자가 암호문을 선택해 복호화 결과 확인
Chosen Text 평문+암호문 쌍을 임의로 선택해 실험 가능 (가장 강력한 공격 방식)

5. 암호 시스템의 보안 수준 (Encryption Scheme Security)

보안 수준 설명
Unconditionally secure 이론적으로 아무리 시간이 지나도 해독 불가능 (예: One-Time Pad)
Computationally secure 현실적으로 해독 불가능 (시간, 자원이 너무 많이 필요함)

6. 치환 기법 (Substitution Technique)

  • 평문의 글자를 다른 문자나 숫자로 대체하는 방식
  • 컴퓨터에서는 비트 패턴 단위로 치환 가능
  • 고대 암호의 기본: 단순하지만 분석에 취약

7. 시저 암호 (Caesar Cipher)

🔹 특징:

  • 고대 로마의 율리우스 시저가 사용
  • 알파벳을 3글자 뒤로 이동시킴
    • 예: A → D, B → E, ..., Z → C
  • 알파벳은 순환형 구조 (Z 다음은 A)

🔹 예시:

  • Plaintext: meet me after the toga party
  • Ciphertext: PHHW PH DIWHU WKH WRJD SDUWB

🔹 일반화된 수식:

▶ 암호화 (Encryption)

C=(P+k)mod  26C = (P + k) \mod 26

  • P: 평문 문자 위치 (0~25)
  • k: 이동할 거리 (시저에서는 보통 3)
  • C: 암호문 문자 위치

▶ 복호화 (Decryption)

P=(C−k)mod  26P = (C - k) \mod 26

 

🔹 예시 정리:

  • 알파벳: a → 0, b → 1, ..., z → 25
  • E(‘a’,3)=(0+3)mod  26=3→‘d’
  • D(‘d’,3)=(3−3)mod  26=0→‘a’

8. Monoalphabetic Cipher (단일 알파벳 치환 암호)

🔹 개념

  • 각 알파벳을 무작위로 재배열한 키를 사용해서 문자 하나당 하나의 대응 문자로 암호화.
  • 예:
  • 원래: a b c d e f ... 암호: Z H K C J W ...

🔹 시저 암호와의 차이

  • 시저 암호는 항상 일정한 간격으로 밀지만, 모노알파벳 암호는 규칙따위 없이 완전히 무작위 순열이 가능해서 훨씬 키 수가 많음.

🔹 보안 약점 (Frequency Analysis); 키 공간 크기

  • 시저 암호 키 수: 26개
  • 모노알파벳 암호 키 수: 26! = 약 4 × 10²⁶
  • 즉, DES 키 공간보다 10배 이상 큼
  • 모노알파벳 암호는 글자 간 비율을 그대로 유지하기 때문에, 빈도 분석으로 쉽게 해독 가능.

📍 예시:

  • 영어에서 'E'가 가장 많이 쓰이는 문자
  • 암호문에서도 가장 많이 나오는 문자가 'E'일 가능성이 높음

🔹 암호 분석 (빈도 기반)

용어 의미
Digram 두 글자 조합 (ex. "th")
Trigram 세 글자 조합 (ex. "the")

 

→ 이런 패턴을 활용하면 암호문 속 단어 유추 가능.

 

🔹 대응 기법 (Countermeasures)

영어에서 e, t, a, o 같은 글자가 가장 자주 나옴.

빈도 분석을 방지하기 위해 다음과 같은 기법을 사용할 수 있다:

  • 다중 문자 블록 암호화 (chunk encryption): 여러 문자를 한 묶음(블록)으로 묶어서 한 번에 암호화하는 방식
  • 동일 문자에 복수 치환자 부여 (Homophonic Substitution): ‘E’ → ‘X’ 또는 ‘Q’ 또는 ‘P’ 중 하나

9. Playfair Cipher (복수 문자 치환 암호)

🔹 핵심 개념:

  • 2글자씩 짝지어(Digram) 암호화
  • 5×5 매트릭스(키워드 기반) 사용
  • 같은 글자 쌍은 I/J를 함께 사용: 5×5 매트릭스에 26자가 다 못 들어가기 때문

🔹 매트릭스 구성 예:

키워드: 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 

🔹 암호화 규칙:

  • 같은 행이면 오른쪽 글자로 이동
  • 같은 열이면 아래쪽 글자로 이동
  • 서로 다른 행/열이면 직사각형 반대쪽 글자 사용
  • ll 처럼 같은 글자가 연속되면 x를 끼워 넣어 분리→ digram 단위 암호화 수행

예: balloon → ba lx lo on → IB SU PM NA

🔹Playfair 암호 특징

  • 단일 문자 암호보다 보안이 강함
  • 문자 빈도 분석이 어려워짐 (digram 단위로 동작하기 때문에)

10. Figure 3.6: 빈도 감소도

📊 평문 vs 다양한 암호기법의 문자 사용 비율 시각화

  • 평문은 특정 문자의 사용 빈도(e, t, a 등)가 매우 높음
  • Playfair, Vigenère, Polyalphabetic 암호는 → 빈도를 고르게 퍼뜨려서 분석 어렵게 만듦
  • 즉, 빈도 기반 해독(빈도 분석)에 대한 방어 수단
  • 그래프:
    • Plaintext는 특정 문자 빈도 급격히 높음
    • Playfair는 약간 완화
    • Vigenère는 더 평탄
    • Random Polyalphabetic은 거의 균등 (완전한 보안은 아님, 그래도 해독 어려움)

11. Polyalphabetic Cipher (다중 알파벳 치환 암호)

🔸 기본 개념

  • 단순 모노알파벳 암호의 약점을 보완한 방식
  • 문장 전체를 암호화할 때, 위치에 따라 다른 치환 규칙 적용
  • 같은 평문 문자라도 위치에 따라 다른 암호문으로 암호화될 수 있음

🔸 핵심 구성

  1. 여러 개의 서로 다른 모노알파벳 치환 규칙 세트 사용
  2. 키(Key)가 현재 어떤 규칙을 쓸지 결정
    • 예: 키가 "LEMON"이면 문자마다 순서에 따라 L→E→M→O→N을 반복하며 다르게 치환

🔸 보안 효과

  • 단일 알파벳 치환보다 빈도 분석을 어렵게 함
  • 평문 통계가 암호문에 직접 반영되지 않아 보안성 향상

12. Vigenère Cipher (비즈네르 암호)

🔸구조:

  • 26개의 시저 암호를 조합
  • 키가 반복되며, 문자의 위치마다 키가 다르기 때문에 빈도 분석이 어려움

🔸예시:

키:         deceptive deceptive deceptive
평문:       we are discovered save yourself
암호문:     ZICVTWQNGRZGVTWAVZHCQYGLMGJ

👉 문자의 위치마다 키 문자가 다르기 때문에, 빈도 분석이 매우 어려움!

🔸공격법 (Kasiski, Babbage 공격):

  1. 반복 패턴 찾아서 키 길이 추측
  2. 추정된 키 길이로 빈도 분석 수행 → 각 나눠진 부분은 시저 암호와 동일하므로 해독 가능

🔸Vigenère Autokey System

키워드 뒤에 평문을 붙여 런닝 키(running key) 생성 → 키 반복을 줄여 보안성 강화 시도

키:        deceptivewearediscoveredsav
평문:      wearediscoveredsaveyourself
  • 더 긴 키로 보안을 높이려 했지만, 평문과 키가 같은 빈도 분포를 가지기 때문에 여전히 통계 공격에 취약함.

13. Vernam Cipher (1918, AT&T)

  • 개념: 평문 비트와 키 비트를 XOR 연산 (⊕)으로 처리
    • 암호화: ci = pi ⊕ ki
    • 복호화: pi = ci ⊕ ki
  • 조건: 키 스트림은 무작위여야 하며, 비트 단위 암호화
  • 한계: 키 재사용 시 보안이 약해짐

14. One-Time Pad (OTP)

  • 개념:
    • Vernam 암호를 완벽하게 만든 형태
    • 메시지 길이만큼 무작위 키 사용
    • 키는 단 1회 사용 후 폐기
  • 장점: 이론상 완벽한 보안 (Perfect Secrecy) 제공
  • 단점:
    1. 키 생성 어려움: 랜덤 키를 대량 생성해야 함
    2. 키 분배 문제: 송수신자 모두 키를 안전하게 공유해야 함
    3. 실용성 낮음: 메시지마다 새 키 필요 → 실제 사용은 군사·극비 통신에 한정

15. Transposition Cipher (전치 암호)

1) Rail Fence Cipher (기초적인 전치 암호)

  • 평문을 대각선으로 쓰고, 행 단위로 읽기
예시: 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

암호문: MEMATRHTGPRYETEFETEOAAT

2) Row Transposition Cipher

  • 행렬에 평문을 적고, 열의 순서를 키에 따라 뒤바꿔서 읽기
키:  4 3 1 2 5 6 7
읽는 순서가 실제 열 번호 3 → 4 → 2 → 1 → 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

암호문: TTNA APTM TSUO AODW COIX KNLY PETZ = TTNAAPTMTSUOAODWCOIXKNLYPETZ 
  • 여러 라운드 반복 적용도 가능 → 보안 증가

16. Rotor Machines (로터 기계)

  • 암호 기계에서 여러 개의 회전 로터(rotor)를 사용
  • 입력 알파벳이 여러 개의 치환을 순차적으로 거쳐 암호화됨

대표 예: Enigma (독일군 사용)

  • 로터들이 입력마다 돌아가므로, 같은 문자도 계속 다른 암호문자로 바뀜
  • 수천만 가지 키 조합 가능

17. Steganography (정보 은닉술)

  • 정의: 메시지를 숨기는 기술 (존재 자체를 감춤)
  • 방식: 문자 마킹, 보이지 않는 잉크, 이미지에 삽입, 빈 공간에 삽입 등
비교 Steganography Encryption
목적 숨김 내용 보호
탐지 존재 자체를 모르게 함 존재는 드러남
예 비밀 편지, 그림, 숨겨진 텍스트 시저, RSA 등
단점 시스템이 알려지면 즉시 무력화됨 암호화는 여전히 복호화 어려움

🔚 요약 정리

🔸암호기법

기술 특징 보안성
Vigenère 반복되는 시저 암호 약함 (빈도 분석)
Vigenère Autokey 키에 평문 추가 여전히 취약
Vernam 키 비트와 평문 XOR 무작위 키 필요
One-Time Pad 완벽 보안 실용성 낮음
Rail Fence 대각선 → 행순 읽기 간단한 전치
Row Transposition 행렬 작성 후 열순 정렬 복잡도↑
Rotor Machine 로터 회전 구조 실전 활용
Steganography 메시지 숨김 발견 시 무력화

 

🔸개념 요약

항목 설명
시저 암호 일정 간격으로 문자 이동, 브루트포스로 깨기 쉬움
모노알파벳 암호 문자마다 대응을 무작위로 지정 (키 공간 큼)
빈도 분석 공격 영어의 빈도 특성을 이용해 암호문 분석
Playfair 암호 2글자 단위로 암호화, 빈도 퍼짐
Polyalphabetic 다수의 치환 규칙 사용, 빈도 분석 방어
Vigenère 암호 대표적 Polyalphabetic, 키워드 반복으로 암호화

 

Classical Encryption Techniques
├── Substitution Ciphers (치환 암호)
│   ├── Monoalphabetic
│   │   ├── Simple Monoalphabetic
│   │   ├── Playfair Cipher
│   │   └── Polyalphabetic
│   │        ├── Vigenère Cipher
│   │        ├── Vigenère Autokey
│   │        └── One-Time Pad
│   └── Rotor Machines
├── Transposition Ciphers (전치 암호)
│   ├── Rail Fence Cipher
│   └── Row Transposition Cipher
└── Steganography

'컴퓨터 보안' 카테고리의 다른 글

6장-AES  (0) 2025.04.22
5장-Finite Fields and Polynomial Operation  (0) 2025.04.16
4장-Block Ciphers & DES  (1) 2025.04.13
2장-정수론  (0) 2025.04.11
1장  (0) 2025.04.09
'컴퓨터 보안' 카테고리의 다른 글
  • 5장-Finite Fields and Polynomial Operation
  • 4장-Block Ciphers & DES
  • 2장-정수론
  • 1장
samsam031
samsam031
samsam031 님의 블로그 입니다.
  • samsam031
    samsam031 님의 블로그
    samsam031
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 디지털포렌식
      • 드림핵 문제풀이
      • 대외활동
      • 개발 실습
      • 컴퓨터 보안
      • 클라우드
      • 자격증
      • 자연어처리
      • 백엔드
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
samsam031
3장-고전 암호 기법
상단으로

티스토리툴바