🔒 암호 알고리즘 개요 및 분류
암호 알고리즘(Cryptographic Algorithm)은 기밀성(Confidentiality), 무결성(Integrity), 인증(Authentication), 부인 방지(Non-repudiation)와 같은 정보 보안의 핵심 요구사항을 충족시키기 위해 평문(Plaintext)을 암호문(Ciphertext)으로 변환하거나 그 역의 과정을 수행하는 수학적 절차와 방법을 의미합니다. 암호 알고리즘의 안전성(Security Strength)은 주로 사용하는 키 길이(Key Length)와 알고리즘 자체의 암호 강도에 의해 결정됩니다.
1. 암호 알고리즘의 주요 분류
암호 알고리즘은 복호화 가능 여부에 따라 크게 양방향 암호 알고리즘(Two-way Cryptographic Algorithm)과 단방향 암호 알고리즘(One-way Cryptographic Algorithm, 해시 함수)으로 나뉩니다.
2. 양방향 암호 알고리즘 (복호화 가능)
양방향 암호 알고리즘은 다시 암호화 키와 복호화 키의 관계에 따라 대칭키(Symmetric Key) 방식과 비대칭키(Asymmetric Key) 방식으로 분류됩니다.
[Image of Symmetric vs Asymmetric Key Encryption Diagram]
2.1. 대칭키 암호 (Symmetric Key Cryptography)
- 특징: 암호화와 복호화에 동일한 비밀 키(Secret Key)를 사용합니다.
- 핵심 기능: 주로 기밀성을 제공합니다.
- 장점:
- 고속 처리: 알고리즘 구조가 단순하여 비대칭키 방식보다 처리 속도가 매우 빠릅니다.
- 대용량 데이터 암호화에 적합합니다.
- 단점:
- 키 분배 문제: 통신 당사자 간에 비밀 키를 안전하게 공유해야 하는 문제가 발생합니다 (키 교환 문제).
- 키 관리 복잡성: 참여자 수가 증가할수록 관리해야 할 키의 수가 기하급수적으로 늘어납니다 (n(n−1)/2).
- 세부 분류:
- 블록 암호(Block Cipher): 데이터를 일정한 크기의 블록으로 나누어 암호화합니다 (예: Advanced Encryption Standard, AES; Security Enhancement of Encryption Data, SEED; ARIA).
- 스트림 암호(Stream Cipher): 평문과 같은 길이의 키 스트림을 생성하여 비트/바이트 단위로 순차적으로 XOR 연산을 통해 암호화합니다 (예: RC4, LFSR).
- 주요 알고리즘: AES (미국 표준, 128/192/256bit), SEED (국내 표준), ARIA (국내 고성능 블록 암호), DES (Data Encryption Standard, 현재 취약하여 사용 지양).
2.2. 비대칭키 암호 (Asymmetric Key Cryptography / 공개키 암호)
- 특징: 암호화 키(공개키, Public Key)와 복호화 키(개인키, Private Key)가 서로 다른 한 쌍의 키를 사용합니다.
- 핵심 기능: 키 분배, 전자서명(인증 및 부인 방지), 기밀성 등을 제공합니다.
- 원리: 일방향 함수(One-way Function)의 성질을 이용하여 한 방향으로는 계산이 쉽지만, 역방향 계산은 어렵다는 수학적 난제에 기반합니다. (예: 소인수분해 문제 → RSA; 이산 대수 문제 → Diffie-Hellman, ElGamal; 타원 곡선 이산 대수 문제 → ECC)
- 장점:
- 키 분배 용이: 공개키는 공개되어도 무방하여 키 분배 및 관리가 용이합니다.
- 전자서명 가능: 개인키로 서명하고 공개키로 검증하여 인증과 부인 방지 기능을 제공합니다.
- 단점:
- 저속 처리: 대칭키 방식보다 처리 속도가 느립니다.
- 키 길이: 동일한 암호 강도를 유지하기 위해 대칭키 방식보다 훨씬 긴 키 길이가 필요합니다 (예: AES-128bit ≈ RSA-2048bit).
- 주요 알고리즘: RSA (Rivest, Shamir, Adleman), DSA (Digital Signature Algorithm), ECC (Elliptic Curve Cryptography), Diffie-Hellman (키 교환).
3. 단방향 암호 알고리즘 (복호화 불가능)
3.1. 해시 함수 (Hash Function)
- 특징: 임의 길이의 입력 데이터를 고정된 길이의 해시값(Hash Value) 또는 메시지 다이제스트(Message Digest, MD)로 변환하는 함수입니다.
- 핵심 기능: 주로 무결성과 인증(패스워드 저장)을 제공하며, 복호화가 불가능한 단방향성을 가집니다.
- 암호학적 안전성 요구사항:
- 역상 저항성(Pre-image Resistance, 단방향성): 해시값에서 원래 입력값을 찾는 것이 어려워야 합니다.
- 제2역상 저항성(Second Pre-image Resistance, 약한 충돌 회피): 주어진 입력값과 동일한 해시값을 가지는 다른 입력값을 찾는 것이 어려워야 합니다.
- 충돌 저항성(Collision Resistance, 강한 충돌 회피): 동일한 해시값을 가지는 서로 다른 두 입력값을 찾는 것이 어려워야 합니다.
- 주요 알고리즘: SHA (Secure Hash Algorithm) 시리즈 (SHA-256, SHA-512 등), MD (Message Digest) 시리즈 (MD5는 현재 취약하여 사용 지양).
| 구분 | 대칭키 암호 (Symmetric) | 비대칭키 암호 (Asymmetric) | 해시 함수 (Hash Function) |
|---|
| 암/복호화 키 | 동일 (비밀키) | 서로 다름 (공개키/개인키) | 키 없음 (단방향) |
| 처리 속도 | 빠름 | 느림 | 매우 빠름 |
| 주요 기능 | 기밀성 | 키 분배, 전자서명, 기밀성 | 무결성, 인증 |
| 적합 용도 | 대용량 데이터 암호화 | 키 교환, 전자서명 | 패스워드 저장, 데이터 무결성 검증 |
| 대표 예시 | AES, SEED, ARIA | RSA, ECC, Diffie-Hellman | SHA-256, SHA-512 |
4. 암호 기술의 융합 및 발전 동향
실제 보안 시스템에서는 각 알고리즘의 장점을 결합하여 사용합니다.
-
하이브리드 암호 시스템 (Hybrid Cryptosystem):
- 대용량 데이터의 기밀성을 위해 빠른 대칭키 암호(예: AES)를 사용합니다.
- 이때 사용되는 대칭키(세션 키)의 안전한 교환 및 분배를 위해 느리지만 키 분배가 용이한 비대칭키 암호(예: RSA)를 사용합니다.
-
전자서명 및 인증:
- 해시 함수를 이용해 메시지 다이제스트를 생성하고, 이를 송신자의 개인키로 암호화하여 디지털 서명을 생성합니다. 이는 무결성, 인증, 부인 방지를 제공합니다.
-
최신 동향:
- 양자 내성 암호 (PQC, Post-Quantum Cryptography): 양자 컴퓨터의 등장으로 기존의 RSA, ECC와 같은 알고리즘의 안전성이 위협받음에 따라 격자 기반 암호(Lattice-based cryptography) 등 양자 컴퓨터 공격에 안전한 새로운 알고리즘이 연구 및 표준화되고 있습니다.
- 경량 암호 (Lightweight Cryptography): 사물 인터넷(IoT, Internet of Things) 장치와 같은 저전력, 저사양 환경에 적합한 암호 알고리즘 (예: HIGHT, LEA)의 개발 및 적용이 확대되고 있습니다.