150 / 691DICE

Dice Roll Entropy

물리적 주사위로 얻는 지갑 엔트로피

Dice Roll Entropy는 비공개 물리적 주사위 결과를 입력 비트로 변환합니다. 보안은 무작위성, 독립성, 정확한 변환에 달려 있습니다.

Dice Roll Entropy는 주사위 결과를 기록하고 지정된 알고리즘으로 처리하여 지갑을 만드는 무작위성 원천입니다. 해시 길이나 단어 수만으로 예측 불가능한 입력 정보의 양을 증명할 수는 없습니다.

이상적으로 공정한 육면체 주사위는 독립적인 한 번의 던지기마다 log2(6) ≈ 2.585비트를 제공합니다. 50번은 약 129.25비트, 99번은 255.91, 100번은 258.50비트의 입력 엔트로피입니다. COLDCARD는 실용적인 256비트 목표에 99번을 제시하지만 정확한 합은 256보다 조금 작습니다. 횟수는 실제 주사위 품질이나 완전히 균일한 해시 출력을 보장하지 않습니다. [COLDCARD — Verifying Seed Mixing] [RFC 4086 — Randomness Requirements for Security]

한 번의 보수적 척도로 min-entropy Hmin=−log2(pmax)를 쓸 수 있으며 pmax는 가장 빈번한 면의 확률입니다. 한 면의 확률이 1/2이면 2.585가 아닌 1비트뿐입니다. 여러 번을 더하려면 적절한 독립성이 필요하며 이전 결과 반복은 독립 정보를 추가하지 않습니다. 전체 순서를 아는 관찰자에게 그 순서는 비밀 무작위성을 주지 않습니다. [NIST SP 800-90B — Entropy Sources for Random Bit Generation]

교육용으로 공정하고 독립적인 두 번의 결과를 x=6*(d1−1)+(d2−1)로 부호화하면 범위는 0~35입니다. x mod32는 0~3에 각각 두 원상이 있어 이들을 우대합니다. Rejection Sampling은 대신 32~35를 버리고 두 번을 다시 던집니다. 수락된 0~31은 균일한 다섯 비트를 제공합니다. 이는 변환 오류를 설명하는 예시이지 검증된 지갑 생성기를 대체하는 절차가 아닙니다. [RFC 4086 — Randomness Requirements for Security]

COLDCARD 문서의 Dice Rolls Only 모드는 ASCII 숫자열에 SHA-256을 계산합니다. 끝에 newline이 없는 공개 테스트 123456의 해시는 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92입니다. 이상적 무작위 여섯 번도 약 15.51비트뿐이며 이 공개 순서는 전혀 비밀이 아닙니다. 256비트 출력이 부족한 엔트로피를 추가하지 않으며 입력 인코딩이 다르면 결과가 달라질 수 있습니다. [COLDCARD — Verifying Seed Mixing] [RFC 4086 — Randomness Requirements for Security]

2026년 9월 6일 개정 COLDCARD 문서는 하드웨어 무작위성이 없는 Dice Rolls Only와 장치 값을 물리적 주사위 또는 동전 결과와 섞는 표준 생성을 구분합니다. verify_seed_mix.py는 후자를, rolls.py와 rolls12.py는 전자를 검증합니다. 입력에 장치 값도 포함되면 주사위 결과만으로 일치를 판단할 수 없으므로 정확한 절차와 펌웨어 버전을 선택해야 합니다. [COLDCARD — Verifying Seed Mixing]

BIP39는 128 입력 비트에 checksum 네 비트를 붙여 132비트를 11비트씩 12그룹으로 나눕니다. 256비트에 검사 비트 여덟 개를 더하면 24단어입니다. Checksum은 파생값으로 무작위성을 늘리지 않습니다. 이후 PBKDF2-HMAC-SHA512는 구문과 passphrase에서 512비트 시드를 만들지만 길이 512 자체가 약한 던지기를 강화하지 않습니다. 단어 형식, 입력 엔트로피, 파생 시드는 서로 다른 계층입니다. [BIP 39 — Mnemonic code for generating deterministic keys]

공개 테스트 벡터 재현은 인코딩, 해시, 변환의 일치를 검증할 뿐 주사위나 모든 장치의 정직성을 증명하지 않습니다. 통계적으로 좋아 보이는 짧은 순서도 암호학적 예측 불가능성을 증명하지 못합니다. NIST SP800-90B는 원천 모델, min-entropy 추정, 상태 검사를 구분합니다. 집에서 횟수를 세는 것은 표준 인증이 아닙니다. 지어낸 숫자나 반복 패턴은 물리적 무작위성을 대신하지 못합니다. [RFC 4086 — Randomness Requirements for Security] [NIST SP 800-90B — Entropy Sources for Random Bit Generation]

주사위 전용 모드에서 전체 기록이나 최종 해시는 지갑을 복원할 수 있으며 혼합에서는 장치 입력도 민감합니다. 절대 입금하지 않을 일회용 테스트 집합으로 검증하고 실제 지갑에는 새로운 비공개 입력을 쓰세요. 사진, 클립보드, 로그가 비밀을 보존할 수 있습니다. 생성된 Seed Phrase와 필요한 passphrase를 선택한 형식에 맞게 백업하고 복구를 확인하세요. [COLDCARD — Verifying Seed Mixing] [BIP 39 — Mnemonic code for generating deterministic keys]

더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Cryptographic Entropy, Entropy Bit, BIP 39, Seed Phrase, Entropy Mixing, CSPRNG. 다음 항목에서도 이 글을 참조합니다 Cryptographic Entropy, COLDCARD RNG Incident (2026).

DOC · 001COLDCARD — Verifying Seed Mixing문서 ↗DOC · 002BIP 39 — Mnemonic code for generating deterministic keys명세 ↗DOC · 003RFC 4086 — Randomness Requirements for Security명세 ↗DOC · 004NIST SP 800-90B — Entropy Sources for Random Bit Generation명세 ↗
1차 출처 우선 · 투자 조언이 아닙니다