Proven by Intelligence
보이지 않는 안전을 인텔리전스로 증명하다.
기술 인사이트를 만나보세요.
서론
1. KDF란 무엇인가?
KDF(Key Derivation Function)
→ 하나의 마스터 키(KDK: Key Derivation Key)로부터 목적별로 독립된 파생 키(KO: Key Output)를 안전하게 생성하는 함수
즉, KDF는 암호 시스템에서 “하나의 뿌리 키로부터 여러 나뭇가지를 뻗어내는 역할”을 합니다.

쉽게 말해
- 비밀번호처럼 약한 입력을 → 강력한 암호 키로 변환
- 하나의 키에서 → 여러 용도별 키를 분리
- Label / Context 값으로 → 도메인별 키 충돌 방지
예를 들어 같은 마스터 키를 쓰더라도 목적(Label)이 다르면 파생 결과도 절대 같지 않습니다.
이 원리가 바로 도메인 분리(domain separation)입니다.

2. 왜 KDF가 필요한가?
① 비밀번호는 너무 약하다
사람이 만드는 비밀번호는 길이도 짧고, 예측 가능한 패턴이 많습니다. 이런 비밀번호를 그대로 키로 사용하면, 공격자는 사전(Dictionary) 공격이나 무차별 대입(Brute Force)으로 쉽게 크래킹할 수 있습니다.
KDF는 이런 약한 입력을 수천 번 해시하고 솔트를 더해 강력한 키로 바꿉니다.
→ 예: PBKDF2, scrypt, Argon2 등
② 한 개의 키를 여러 용도에 쓰면 위험하다
같은 키를 암호화·인증·서명 등에 모두 사용하면 연산 간 상관관계로 인해 키가 유출될 수 있습니다. 따라서 “한 목적에 하나의 키”를 보장하는 분리 메커니즘이 필요합니다. KDF는 바로 그 역할을 수행합니다.
③ 키 분산 효율화 (HSM, 클라우드 환경)
HSM이나 보안 모듈에는 일반적으로 하나의 루트 키만 존재합니다. 나머지 모든 키는 이 루트 키로부터 KDF를 통해 실시간 파생됩니다.
→ 즉, 키를 모두 저장하지 않고도 다양한 서비스 키를 생성 가능!
이는 저장공간 절약뿐 아니라 키 유출 리스크를 획기적으로 감소시킵니다.
3. KDF의 내부 구조 — NIST SP 800-108 기준
미국 NIST에서 정의한 대표적인 표준이 SP 800-108 Key-Based KDF (KBKDF) 입니다.
이 표준은 AES, HMAC, KMAC 등을 PRF(Pseudo-Random Function)로 사용해
암호학적으로 안전한 파생키를 생성합니다.
🧩입력 요소
| 구성 요소 | 설명 |
|---|---|
| KI (Key Input) | 입력 마스터 키 또는 KDK |
| FixedInputData | Label + Context + L (출력 키 정보) |
| L | 생성할 키의 길이(bit 단위) |
| PRF | 의사난수함수 (HMAC, CMAC, KMAC 등) |
🧮 PRF(Pseudo Random Function)의 역할
| 종류 | 내부 구조 | 장점 | 사용 환경 |
|---|---|---|---|
| HMAC | 해시기반(SHA256 등) | 범용성, 검증된 안정성 | TLS, HKDF |
| CMAC | AES 기반 블록암호 | 하드웨어 효율, 저전력 | IoT, ECU |
| 모드 | 구조 | 특징 | 활용 |
|---|---|---|---|
| Counter Mode | 카운터 증가값 포함 반복 | 병렬화 가능, 빠름 | 일반 환경 |
| Feedback Mode | 이전 출력이 다음 입력에 반영 | 순차 처리, 보안성 ↑ | 고보안 환경 |
| Double Pipeline Mode | 이중 상태값을 별도로 유지 | 복잡하지만 견고함 | 군사/핵심 시스템 |

출처: NIST SP 800-108 문서


| KDF | 표준 | 용도 | 특징 | 예시 |
|---|---|---|---|---|
| KBKDF | NIST SP 800-108r1 | 마스터 키 기반 파생 | CMAC/HMAC/KMAC 기반 | TPM, HSM |
| PBKDF2 | NIST SP 800-132 / RFC 8018 | 비밀번호 기반 | 반복 해싱, 솔트 사용 | 로그인, TLS |
| HKDF | NIST SP 800-56C / RFC 5869 | 세션키 파생 | HMAC 기반 | TLS1.3, Signal |
| Argon2 | RFC 9106 | 비밀번호 해싱 | 메모리·CPU 비용 높음 | 암호화 앱 |
| scrypt | RFC 7914 | 비밀번호 기반 | 메모리 하드닝 | 암호화폐 지갑 |
"
KDF는 단순한 “보조 함수”가 아니라 암호 시스템 전체의 기초 인프라입니다.
같은 입력 키에서도 다른 목적의 키를 생성, 비밀번호를 강력한 키로 변환,
하드웨어·소프트웨어 어디서든 안전하게 적용 가능합니다.
"
2부에서는 이 KDF가 자동차, 금융, IoT, 클라우드, HSM 등 현실 산업에서 어떻게 사용되는지를 구체적으로 살펴보겠습니다.
📧 nkm_biz@mdsit.co.kr ✍️ 문의남기기
