대칭키 블록 암호 한눈에 보기
핵심 비교 표
기억 키워드:
블록크기 / 키길이 / 라운드수 / 구조(Feistel? SPN?) / 특징
| 알고리즘 | 블록 | 키(대표) | 라운드 | 구조 | 특징·메모 |
|---|---|---|---|---|---|
| DES | 64비트 | 56비트(64비트 중 패리티 8비트) | 16 | Feistel | 고전 표준. 키 짧아 무차별 대입 공격 가능, 실무에서 퇴장. |
| 3DES (EDE) | 64비트 | 112/168비트(2키/3키) | 48(16×3) | Feistel | DES 호환성, 느림, 점진적 퇴장 추세. |
| AES (Rijndael) | 128비트 | 128/192/256비트 | 10/12/14 | SPN | 현행 표준. 하드웨어 가속(AES-NI), 빠르고 광범위 지원. |
| SEED | 128비트 | 128비트 | 16 | Feistel | KISA/국가표준(국내). 공공·금융 레거시에서 다수 채택. |
| ARIA | 128비트 | 128/192/256비트 | 12/14/16 | SPN | 국가표준(국내). 경량·고속, TLS 등 폭넓은 지원. |
| Blowfish | 64비트 | 32–448비트 | 16 | Feistel | 무료, 키스케줄 느림, 64비트 블록이라 대용량에 부적합. |
| Twofish | 128비트 | 128/192/256비트 | 16 | Feistel 계열 | AES 공모작. 무료, 임베디드 친화, 안정성 양호. |
| IDEA | 64비트 | 128비트 | 8.5 | Lai–Massey | 덧셈·곱셈·XOR 혼합(MIX). 특허 만료로 자유 사용. |
| Camellia | 128비트 | 128/192/256비트 | 18/24 | Feistel | NTT/미쓰비시. ISO/IEC 표준, AES 급 성능·보안성. |
| RC5 | 2w(가변, 흔히 64비트) | 0–2040비트 | (가변, 흔히 12) | ARX(가변 Feistel류) | 데이터 의존 회전(DDR). 매개변수화된 설계. |
| RC6 | 128비트 | 0–2040비트 | 20 | ARX(+정수 곱셈) | AES 공모작. 단순한 연산으로 소프트웨어 고속. |
| Serpent | 128비트 | 128/192/256비트 | 32 | SPN | 보수적 라운드 수(32). 안전성 강조, 상대적으로 느림. |
| Skipjack | 64비트 | 80비트 | 32 | 비균형 Feistel | NSA 설계, 오늘날 키 짧아 비권장. |
| CAST-128 | 64비트 | 40–128비트 | 12/16 | Feistel | PGP 등에 사용. 64비트 블록 한계. |
| CAST-256 | 128비트 | 128–256비트 | 48 | Feistel | AES 공모작. 라운드 많아 느린 편. |
※ **AES의 ‘Rijndael’**은 원래 블록/키 모두 가변이지만, 표준 AES는 블록 128비트로 고정입니다.
※ 3DES 키 길이 표기: 2키(112비트 유효), 3키(168비트 유효). 시험에 자주 등장!
알고리즘별 한 줄 암기
-
DES: 64/56/16/Feistel → 짧은 키, 역사 속으로.
-
3DES: 64/112·168/48/Feistel → 느리지만 호환성.
-
AES: 128/128·192·256/10·12·14/SPN → 현행 표준, 하드웨어 가속.
-
SEED: 128/128/16/Feistel → 국내표준 레거시 강자.
-
ARIA: 128/128·192·256/12·14·16/SPN → 국내표준, 경량·고속.
-
Blowfish: 64/가변~448/16/Feistel → 키스케줄 느림, 64블록 한계.
-
Twofish: 128/128·192·256/16/Feistel → 무료, 임베디드 친화.
-
IDEA: 64/128/8.5/Lai–Massey → MIX 구조, 특허 만료.
-
Camellia: 128/128·192·256/18·24/Feistel → AES급, 국제표준.
-
RC6: 128/가변/20/ARX → 정수 곱셈, 소프트웨어 고속.
-
Serpent: 128/가변/32/SPN → 안전성 최우선.
구조(Feistel vs SPN 등) 빠른 구분법
-
Feistel 계열: 라운드마다 좌/우 절반 교환하며 한쪽만 라운드 함수 F에 투입 → DES, 3DES, SEED, Blowfish, Twofish, Camellia, (CAST, Skipjack)
-
SPN(치환-전치망): 바이트/비트 단위 S-Box → 선형확산 반복 → AES, ARIA, Serpent
-
기타: IDEA(Lai–Massey), RC5/RC6(ARX: Add–Rotate–XOR, RC6은 곱셈 추가)
시험에 잘 나오는 포인트
-
블록/키/라운드 매칭
-
AES: 128블록 고정, 키에 따라 10/12/14 라운드
-
ARIA: 12/14/16 라운드(키 128/192/256 순)
-
Camellia: 18(128키)/24(192·256키)
-
IDEA: 8.5 라운드(8라운드 + 출력변환) — 숫자 “.5”에 주의
-
-
국내 표준: SEED(Feistel, 16라운드), ARIA(SPN, 12·14·16)
-
안전성 이슈: **DES(56비트)·3DES(느림)·Blowfish/CAST/IDEA(64블록)**는 대용량 데이터에서 생일역설 취약 위험
-
키 길이 함정: DES 56비트(64비트 아님!), 3DES 112/168비트, RC5/RC6 키 가변(최대 2040비트)
-
구조 용어: Feistel / SPN / Lai–Massey / ARX 구분 정의를 함께 암기
선택·적용 가이드 (실무 감각)
-
신규/현행 표준: AES, (정책상 필요한 경우) ARIA·Camellia
-
레거시 호환: 3DES는 가능하면 피하고, 불가피 시 단기적 대체로만 사용
-
경량/임베디드: ARIA, Twofish 검토
-
대용량 파일 암호화: 64비트 블록(Blowfish/IDEA/CAST/Skipjack) 지양
초압축 암기 카드 (3줄)
-
Feistel: DES/3DES/SEED/Blowfish/Twofish/Camellia(+CAST/Skipjack)
-
SPN: AES/ARIA/Serpent — (AES 10·12·14 / ARIA 12·14·16)
-
64비트 블록: DES·3DES·Blowfish·IDEA·CAST·Skipjack ← 대용량 비권장