Deterministic RNG는 고정된 알고리즘으로 수열을 만듭니다. 임의의 구현을 비교할 때 seed 일치만으로는 부족합니다. 알고리즘, 매개변수, 호출 순서, 추가 입력도 중요합니다. 결정적이라는 말은 취약함의 동의어도 안전성의 자동 증명도 아닙니다.
NIST SP 800-90A는 초기화, 생성, 재시딩을 갖춘 상태 기반 DRBG를 설명합니다. 재현성은 같은 메커니즘, 상태, 입력 순서에 적용됩니다. 원래 seed가 같아도 새로운 엔트로피나 다른 추가 입력은 출력을 바꿀 수 있습니다. [NIST SP 800-90A Rev. 1 — State, inputs and reseeding]
RFC 4086은 기존 시뮬레이션 생성기가 공격자에게 저항하지 못할 수 있다고 경고합니다. 암호학적으로 강한 수열은 출력 일부가 알려져도 예측하기 어려워야 합니다. 긴 주기나 통계 검정 통과만으로는 이 성질이 입증되지 않습니다. [RFC 4086 — Pseudorandom sequences and unpredictability]
libsodium randombytes_buf_deterministic()은 같은 seed에 같은 수열을 반환해 테스트에 유용합니다. 공개 테스트 seed는 다른 사람도 재현할 수 있습니다. 따라서 이런 입력은 실제 지갑의 비밀 자료가 아닙니다. [libsodium — Deterministic output and VM snapshots]
BIP32는 하나의 seed에서 키 트리를 만들며 파생 경로도 특정 가지를 결정합니다. 같은 seed와 경로를 복원하면 같은 키를 얻을 수 있습니다. 추가로 파생한 주소 자체가 원래 비밀에 독립적인 엔트로피를 더하지는 않습니다. [BIP32 — Hierarchical deterministic key derivation]
BIP39는 mnemonic과 passphrase에서 PBKDF2로 seed를 파생합니다. 같은 단어라도 다른 passphrase를 쓰면 다른 결과가 나옵니다. 복원 가능성은 단어 목록뿐 아니라 전체 입력과 후속 키 파생에 달려 있습니다. [BIP39 — Mnemonic and passphrase to seed]
RFC 6979는 비밀 키와 메시지에서 서명 값 k를 결정적으로 만듭니다. 이 문서는 키 쌍 생성 시 난수가 필요함을 명시적으로 유지합니다. 이 서명 단계에서 새 난수 입력을 제거해도 강한 초기 비밀의 필요성이 사라지지는 않습니다. [RFC 6979 — Deterministic signing and initial key generation]
libsodium은 가상 머신 스냅샷을 복원하면 생성기 출력이 반복될 수 있다고 경고합니다. 이는 의도적인 BIP32 키 복원과 다릅니다. 지갑 정체성 복원과 새로 요청한 값이 우연히 반복되는 일을 구분하세요. [libsodium — Deterministic output and VM snapshots] [BIP32 — Hierarchical deterministic key derivation]
알고리즘, 버전, 입력, 재시딩 동작, 예상 테스트 벡터를 기록하세요. 벡터 일치는 해당 예제를 확인할 뿐 실제 장치의 엔트로피 품질을 입증하지 않습니다. NIST SP 800-90A는 메커니즘과 입력 엔트로피 요건을 분리합니다. [NIST SP 800-90A Rev. 1 — State, inputs and reseeding]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 CSPRNG, Random Number Generator, HD Wallet, Seed Generation. 다음 항목에서도 이 글을 참조합니다 CSPRNG, COLDCARD RNG Incident (2026).