엔트로피 혼합은 여러 입력을 공통 상태나 출력으로 처리하는 것입니다. 제공된 데이터, 입증된 엔트로피, 이후의 결정론적 확장을 구분해야 합니다. 인터페이스 이름이 둘이라고 독립적인 소스가 둘인 것은 아닙니다.
NIST SP 800-90B는 서로 의존하는 소스의 결합 엔트로피를 추정하기 어려울 수 있다고 설명합니다. 패킷 도착 시각과 디스크 접근 시각은 관련될 수 있습니다. 따라서 문서화된 모델 없이 개별 추정치를 단순 합산할 수 없습니다. [NIST SP 800-90B — Additional noise sources]
RFC 4086은 XOR를 단순 혼합의 예로 사용합니다. 독립적인 균등 입력은 결과의 균등성을 유지하지만, 같은 입력의 복사본은 X XOR X = 0을 만듭니다. 이는 의존 관계를 설명하는 예이며 지갑 제작 절차가 아닙니다. [RFC 4086 — Mixing and randomness requirements]
강한 혼합은 기존 불확실성을 집중시킬 수 있지만 알려진 입력의 결정론적 해시는 여전히 예측 가능합니다. RFC 4086은 혼합과 확장을 구분합니다. 출력 길이나 알려진 상수의 추가는 그만큼의 새 엔트로피를 입증하지 않습니다. [RFC 4086 — Mixing and randomness requirements]
NIST SP 800-90B는 추가 잡음 입력을 주 소스에 이어 붙여 검토된 컨디셔닝을 거치도록 허용하지만, 이 방식에서는 추가 엔트로피를 인정하지 않습니다. 이는 해당 평가의 규칙이지 다른 소스가 결코 도움이 되지 않는다는 주장이 아닙니다. [NIST SP 800-90B — Additional noise sources]
OpenSSL 3.5의 RAND_add()는 num 바이트를 혼합하고 randomness는 0부터 num까지 바이트 단위로 엔트로피를 추정합니다. 버퍼 길이만으로 그 추정치를 정당화할 수 없습니다. 기본 생성기는 보통 시스템 소스로 자동 초기화하고 다시 시드합니다. [OpenSSL 3.5 — RAND_add and FIPS reseeding]
OpenSSL 3.5 문서에 따르면 FIPS 모드에서 애플리케이션 데이터는 추가 입력일 뿐 신뢰된 엔트로피 소스가 아닙니다. 이를 섞어도 완전한 재시드로 인정되지 않습니다. 따라서 RAND_add() 호출만으로 그러한 갱신을 입증할 수 없습니다. [OpenSSL 3.5 — RAND_add and FIPS reseeding]
RFC 5869는 HKDF-Extract와 HKDF-Expand를 구분합니다. 전자는 입력 엔트로피를 집중시키고 후자는 필요한 길이를 도출합니다. info 매개변수는 출력을 애플리케이션 문맥에 연결하며, 좋은 초기 재료를 대신하거나 새 엔트로피를 입증하지 않습니다. [RFC 5869 — HKDF extraction, expansion and independence]
검토는 입력 출처, 의존 관계, 공격자 능력과 구체적인 메커니즘을 확인해야 합니다. RFC 5869는 독립성과 솔트 조작을 명시적으로 다룹니다. 소스 목록이나 무작위로 보이는지 확인하는 시험만으로 소스 고장 후에도 구조가 안전함을 입증할 수 없습니다. [RFC 5869 — HKDF extraction, expansion and independence]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Cryptographic Entropy, CSPRNG, True Random Number Generator, Seed Generation. 다음 항목에서도 이 글을 참조합니다 Dice Roll Entropy, True Random Number Generator.