NodeCrypto 도움말

PBKDF2 Key Derivation

카테고리: 키 파생 · 노드 타입 ID: kdf-pbkdf2

비밀번호 기반 키 유도 함수 2 (RFC 8018)

개요

PKCS #5 v2.1(RFC 8018 / NIST SP 800-132) 표준 PBKDF2(Password-Based Key Derivation Function 2)를 사용하여 패스워드와 솔트로부터 지정한 길이의 대칭키 바이트열을 파생한다.

의사난수 함수(PRF)로 선택한 HMAC을 지정된 반복 횟수(Iterations, $c$)만큼 연쇄 적용하여 무차별 대입(Brute-force) 및 사전 공격 비용을 높인다.

사용 시점

파라미터 설정

파라미터 (ID)타입 및 기본값노출 조건설명 및 옵션
반복 횟수
iterations
number
기본값: 10000
변수 참조 지원 ($var: int)
항상 노출 HMAC 반복 횟수($c$, 1~10,000,000)이다. 외부 Iterations 포트가 연결되지 않았을 때 이 기본값을 사용한다.
출력 키 길이 (바이트)
keyLength
number
기본값: 32
변수 참조 지원 ($var: int)
항상 노출 파생할 출력 키의 바이트 길이(1~1024바이트)이다. 외부 Key Length 포트가 연결되지 않았을 때 이 기본값을 사용한다.
PRF 해시 함수
hashAlgorithm
select
기본값: SHA-256
항상 노출 이 노드의 PRF 해시 함수 설정을 지정한다.
  • SHA-256: SHA-256
  • SHA-512: SHA-512

포트 입출력 명세

포트 연결 규칙, 데이터 타입별 색상, 가변 포트 생성 방식은 포트 및 연결 문서를 참고한다.

입력 포트

포트 성격: 고정 입력 포트 (총 2개).

포트 이름포트 ID데이터 타입필수 여부노출 조건설명
Password password Bytes 필수 항상 노출 원본 비밀번호 또는 비밀 바이트 배열(Uint8Array, 최소 1바이트 이상)이다.
Salt salt Bytes 선택 항상 노출 솔트 바이트 배열(Uint8Array). 연결하지 않으면 빈 솔트(0바이트)로 동작하지만, 실무에서는 최소 16바이트 이상의 무작위 솔트 연결을 권장한다.

출력 포트

포트 성격: 고정 출력 포트 (총 1개).

포트 이름포트 ID데이터 타입노출 조건설명
Derived Key derivedKey Bytes 항상 노출 파생된 비밀 키 바이트 배열(Uint8Array)이다.

오류 케이스

실행 중 아래 조건이 발생하면 이 노드는 ERROR 상태가 되며, 출력 포트에 연결된 하위 노드는 실행되지 않는다.

오류 코드기본 엔진 메시지발생 조건
INVALID_KDF_PARAMS KDF 파라미터가 올바르지 않는다 Password (Secret)가 비어 있거나, 반복 횟수가 1~10,000,000 범위를 벗어나거나, 키 길이가 1~1024바이트 범위를 벗어날 때 발생한다.

활용 예시

패스프레이즈에서 32바이트 AES-256 키 파생하기

PBKDF2-HMAC-SHA256으로 32바이트 키를 생성한다.

  1. PBKDF2 Key Derivation에서 해시 알고리즘을 SHA-256, 출력 키 길이를 32로 설정한다.
  2. 패스프레이즈 바이트를 Password (Secret)에, 16바이트 난수를 Salt에 연결하고 Derived Key를 AES Encrypt의 Key에 연결한다.