키 유도 · 패스워드
RFC 8018 / NIST SP 800-132
RFC 7914 §11 검증됨
PBKDF2-HMAC-SHA-256
반복 1회, 출력 64바이트의 패스워드 기반 키 유도이며 RFC 7914로 검증했다.
개요 및 암호학적 배경
PBKDF2(Password-Based Key Derivation Function 2)는 PKCS #5 v2.1(RFC 8018)과 NIST SP 800-132로 표준화되어 있습니다. 의사난수 함수(여기서는 HMAC-SHA-256)를 패스워드 P, 솔트 S, 32비트 빅엔디언 블록 카운터 INT(i)에 대해 c번 반복하고, 그 결과를 XOR로 누적합니다.
Ti = F(P, S, c, i) = U1 ⊕ U2 ⊕ … ⊕ Uc, U1 = PRF(P, S ‖ INT(i))
HMAC-SHA-256은 블록당 32바이트를 내므로, 64바이트(dkLen = 64) 키를 요청하면 카운터 0x00000001과 0x00000002로 독립된 블록 T1 ‖ T2를 계산해야 합니다. 이 워크플로우는 RFC 7914 §11의 PBKDF2-HMAC-SHA-256 규범 단계를 Password = "passwd", Salt = "salt", c = 1, dkLen = 64로 검증합니다. 반복 횟수 c가 1이므로 시험 벡터 확인용일 뿐이며, 실제 패스워드 보호에는 훨씬 큰 반복 횟수가 필요합니다.
파이프라인 배선 구조와 단계별 흐름
Workflow Input (Password, Salt)
──►
PBKDF2 Key Derivation (SHA-256, c=1, 64 B)
──►
Workflow Output (DerivedKey 64B)
- 패스워드와 솔트 입력(
Workflow Input):"passwd"(6 B)와"salt"(4 B)의 UTF-8 바이트열을 공급합니다. - 키 스트레칭(
PBKDF2 Key Derivation):hashAlgorithm = "SHA-256",iterations = 1,keyLength = 64로 설정합니다. - 유도 키 출력(
Workflow Output): 64바이트(512비트)DerivedKey를 출력합니다.
노드 구성 및 설정
| 노드 | 역할과 주요 매개변수 | 개수 |
|---|---|---|
| Workflow Input | Password와 Salt 공급 | 1 |
| PBKDF2 Key Derivation | hashAlgorithm = "SHA-256", iterations = 1, keyLength = 64로 설정 | 1 |
| Workflow Output | 64바이트 DerivedKey 수집 | 1 |
입출력 명세 및 시험 벡터 검증
검증 출처: RFC 7914 §11 (P="passwd", S="salt", c=1, dkLen=64)
입력
| 이름 | 타입 | 값 (Hex) |
|---|---|---|
Password | bytes (6 B, ASCII "passwd") | 706173737764 |
Salt | bytes (4 B, ASCII "salt") | 73616c74 |
기대 출력
| 이름 | 타입 | 값 (Hex) |
|---|---|---|
DerivedKey | bytes (64 B) | 55ac046e56e3089fec1691c22544b605f94185216dde0465e68b9d57c20dacbc49ca9cccf179b645991664b39d77ef317c71b845b1e30bd509112041d3a19783 |