키 유도(KDF) NIST SP 800-56C RFC 5869 §A.1 검증됨

HKDF-SHA-256

입력 키 재료, 솔트, info로 42바이트를 유도하는 추출-확장 키 유도(RFC 5869).

앱에서 열기 .ncw 내려받기

HKDF-SHA-256

개요 및 암호학적 배경

HKDF(HMAC-based Extract-and-Expand Key Derivation Function)는 RFC 5869에 정의되어 있으며 TLS 1.3, Noise, Signal, HPKE(RFC 9180)의 키 스케줄에 쓰이는 기본 연산입니다. 키 유도를 두 단계로 나눕니다.

  1. HKDF-Extract: PRK = HMAC-Hash(salt, IKM). 디피-헬만 공유 비밀처럼 균일하지 않을 수 있는 엔트로피를 고정 길이 의사난수 키(PRK)로 농축합니다.
  2. HKDF-Expand: T(i) = HMAC-Hash(PRK, T(i−1) ‖ info ‖ byte(i))를 반복해 PRK를 L바이트의 출력 키 재료(OKM)로 늘립니다. info로 용도를 구분하므로 같은 PRK에서도 서로 독립된 키를 얻습니다.

이 워크플로우는 SHA-256과 출력 길이 L = 42바이트를 쓰는 RFC 5869 부록 A.1(시험 사례 1)을 재현합니다. HMAC-SHA-256 확장 블록 2개(⌈42 / 32⌉ = 2)를 만든 뒤 42바이트로 잘라 냅니다.

파이프라인 배선 구조와 단계별 흐름

Workflow Input (IKM, Salt, Info) ──► HKDF Key Derivation (SHA-256, 42 B) ──► Workflow Output (OKM 42B)
  1. 키 재료와 문맥(Workflow Input): 22바이트 IKM, 13바이트 비밀이 아닌 Salt, 10바이트 응용 문맥 Info를 공급합니다.
  2. 추출과 확장(HKDF Key Derivation): hashAlgorithm = "SHA-256", keyLength = 42로 설정합니다.
  3. 유도 키 출력(Workflow Output): 42바이트 OKM 바이트열을 수집합니다.

노드 구성 및 설정

노드역할과 주요 매개변수개수
Workflow InputIKM, Salt, Info 공급1
HKDF Key DerivationhashAlgorithm = "SHA-256", keyLength = 42로 설정1
Workflow Output42바이트 OKM 출력1

노드 레퍼런스 →

입출력 명세 및 시험 벡터 검증

검증 출처: RFC 5869 §A.1 (Test Case 1, SHA-256, L=42)

입력

이름타입값 (Hex)
IKMbytes (22 B)0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
Saltbytes (13 B)000102030405060708090a0b0c
Infobytes (10 B)f0f1f2f3f4f5f6f7f8f9

기대 출력

이름타입값 (Hex)
OKMbytes (42 B)3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865