다이스웨어 패스프레이즈 엔트로피 계산기 쉽게 이해하기 — 개념과 원리
다이스웨어 패스프레이즈는 정해진 단어 목록에서 주사위 등으로 완전히 무작위로 고른 단어를 이어 만든 비밀 문구입니다. 무작위로 골랐기 때문에 단어 개수와 목록의 단어 수, 이 두 숫자만으로 강도를 정확하게 계산할 수 있습니다. 이 계산기는 엔트로피(비트)와 가능한 전체 조합 수를 보여 줍니다.
계산 방법
- 엔트로피(비트) = 단어 수 × log₂(목록 크기)
- 조합 수 = 목록 크기 ^ 단어 수
EFF 대형 단어 목록은 7,776개(6^5, 주사위 다섯 번에 단어 하나)이며, 단어 하나가 log₂ 7,776 ≈ 12.925비트를 더합니다. 띄어쓰기나 대문자, 구분 기호는 계산에 넣지 않아 보수적인 값이 됩니다.
원리
엔트로피는 공격자가 내 방법과 단어 목록을 모두 안다고 가정할 때 찾아야 하는 경우의 수를 나타냅니다. 각 단어가 같은 확률로 독립적으로 뽑히면 경우의 수는 L^n이고, 이를 밑이 2인 로그로 바꾸면 n × log₂ L비트입니다. 단어가 하나 늘 때마다 공격자의 작업량은 목록 크기만큼 곱해집니다. 단어 목록은 공개되어도 괜찮고, 비밀은 주사위가 고른 단어 자체입니다. 그래서 사람이 지어낸 비밀번호의 점수와 달리 이 값은 믿을 수 있습니다.
예제 풀이
- 입력값: 단어 6개, 목록 7,776개
- 단어당 비트: log₂ 7,776 = 12.92481250
- 엔트로피: 6 × 12.92481250 = 77.54887502비트
- 조합 수: 7,776^6 ≈ 2.210739e+23
- 초당 100억 회로 절반을 탐색해도 약 1.1 × 10^13초, 대략 35만 년이 걸립니다.
| 단어 수 | 엔트로피 (비트) |
|---|---|
| 1.5 | 19.38721876 |
| 3 | 38.77443751 |
| 4.5 | 58.16165627 |
| 6 | 77.54887502 |
| 7.5 | 96.93609378 |
| 9 | 116.3233125 |
| 12 | 155.09775 |
결과 해석
단어 하나가 약 12.9비트입니다. 시도 횟수가 제한된 로그인이라면 4단어(약 52비트)로도 충분하고, 비밀번호 관리자의 마스터 비밀번호나 디스크 암호화에는 5~6단어(65~78비트)를 흔히 권합니다. Argon2id 같은 느린 해시로 보호되면 1비트당 공격 비용이 훨씬 커집니다.
흔한 실수
- 단어를 직접 고르거나 마음에 들 때까지 다시 굴리는 경우. 공식이 가정한 무작위성이 깨집니다.
- 짧은 목록을 7,776개로 계산하는 경우. EFF 짧은 목록은 1,296개(단어당 약 10.3비트)입니다.
- 유명한 문장이나 노래 가사를 쓰는 경우
자주 묻는 질문
단어는 몇 개가 적당한가요?
중요한 비밀에는 6단어(약 77.5비트)를 많이 쓰며, 시도 제한이 있는 로그인이라면 더 적어도 됩니다.
대문자나 구분 기호를 넣으면 도움이 되나요?
약간은 되지만, 무작위 단어 하나를 더 넣으면 약 12.9비트가 늘고 기억하기도 쉽습니다.
왜 7,776개인가요?
주사위를 다섯 번 던지면 6^5 = 7,776가지 결과가 나오고, 결과마다 단어 하나를 대응시키기 때문입니다.
출처: Arnold G. Reinhold, The Diceware Passphrase (diceware.com), 1995 · Electronic Frontier Foundation, "Deep Dive: EFF's New Wordlists for Random Passphrases", 2016