0

Diceware 암호문 생성기 — 무작위 단어 암호문

Diceware 방식으로 실제 단어들을 무작위로 조합해 강력하면서도 기억하기 쉬운 암호문을 만듭니다. 진정한 암호학적 무작위성을 사용하며 실제 엔트로피를 비트 단위로 투명하게 보여줍니다.

🔒 전적으로 귀하의 브라우저에서 처리됩니다. 여기에 입력하는 어떤 것도 업로드되지 않습니다.

6
처리 중... 0%
보안 무작위 단어 생성 중
완료

결과

이 도구는 Diceware 방식으로 암호문을 생성합니다. 입력하기 어렵고 기억하기는 더 어려운 무작위 문자 조합 대신, 독립적으로 무작위 추출된 여러 개의 일상 단어들을 연결합니다. "forest-comet-lantern-guitar-oasis-thistle" 같은 암호문은 사람이 소리 내어 읽거나 스마트폰 키보드로 입력할 수 있으며 몇 번 시도하면 외울 수 있으면서도, 실제로 계산 가능한 엔트로피를 가집니다. 바로 이것이 Diceware 스타일 생성 방식이 의도한 절충점입니다.

무작위성이 핵심이므로, 여기서는 이를 진지하게 다룹니다. 각 단어는 브라우저의 crypto.getRandomValues() 암호학적 보안 난수 생성기를 사용해 선택되며, 모든 추출마다 적절한 rejection sampling이 적용됩니다. 32비트 원시 난수 값은 단어 목록 길이로 나누어떨어지는 범위에 속할 때만 허용되고, 나머지 불균등 구간의 값은 버리고 다시 생성합니다. 이 단계를 건너뛰고 단순히 value % wordlistLength를 적용하면 낮은 인덱스의 단어들이 높은 인덱스의 단어들보다 미세하게 더 자주 선택되는 통계적 편향이 생깁니다. 이는 순진한 구현체가 조용히 범하는 오류인데, 이 생성기는 절대 그런 지름길을 택하지 않습니다.

엔트로피에 대한 정직함은 설계의 또 다른 핵심입니다. 포함된 단어 목록은 1,821개의 고유하고 모호하지 않은 일상 영어 단어들로 구성되어 있습니다. 방대하고 대표성 있는 목록이지만, 고전 Diceware 프로젝트에서 사용하는 특정 7,776단어 목록은 아닙니다. 따라서 이 도구는 그 특정 목록에만 적용되는 유명한 12.9비트/단어 수치를 절대 주장하지 않습니다. 대신 단어당 엔트로피는 log2(목록 길이)로 실시간 계산되며, 여기서는 약 10.8비트/단어로 산출됩니다. 화면에는 항상 완전한 공식(단어 개수 × 단어당 비트 수 + 추가 요소의 실제 기여도)이 표시되므로, 마케팅 수치를 맹목적으로 신뢰하는 대신 총 엔트로피가 정확히 어떻게 계산되었는지 확인할 수 있습니다.

선택 토글 역시 동일한 정직함으로 다룹니다. 모든 단어를 대문자로 시작하는 것은 항상 동일하게 적용되는 고정된 결정론적 규칙이므로 실제 엔트로피는 전혀 추가되지 않으며, 공격자가 규칙을 안다면 어떤 문자가 대문자인지 모르더라도 얻을 것이 없습니다. 이 도구는 그 점을 분명히 알려줍니다. 반면, 무작위 두 자리 숫자를 덧붙이는 것은 100개의 동등하게 발생 가능한 값 중에서의 진정한 무작위 추출이므로, 명시된 대로 약 6.6비트의 실제 엔트로피를 단어 위에 추가합니다. 모든 연산과 렌더링은 서버 개입 없이 여러분의 브라우저 안에서 로컬로 이루어지므로, 생성된 암호문은 여러분 외에는 아무도 볼 수 없습니다.