Diceware was invented by Arnold Reinhold in 1995 as a method for generating high-entropy passphrases without requiring trust in any software. Using only physical dice and a printed word list, anyone could generate a verifiably random passphrase. The method pre-dates modern password managers and was designed for memorisable encryption keys at a time when computers were far less powerful than today. Understanding how it works provides the mathematical foundation for all passphrase generation.
The Original Method
- Obtain five standard six-sided dice.
- Roll all five simultaneously. Record the results as a five-digit number (e.g. 3-1-5-2-4 = 31524).
- Look up the number in the Diceware wordlist. The word at 31524 is "lance".
- Repeat steps 2–3 for each word in your passphrase. For five words: five sets of five rolls = 25 total dice rolls.
- The resulting sequence of words is your passphrase.
The Mathematics
Five dice produce 6⁵ = 7,776 equally probable outcomes. The Diceware wordlist maps each outcome to exactly one word. This means every word is selected with probability exactly 1/7,776 — a perfectly uniform distribution, which maximises entropy for a given wordlist size.
Each word adds log₂(7,776) ≈ 12.92 bits of entropy. For a five-word passphrase: 5 × 12.92 = 64.6 bits. At 10 billion guesses per second — the rate of a high-end dedicated cracking rig — exhausting 64.6 bits would take approximately 2,900 years. At six words (77.4 bits): over 4 million years.
Software Implementations
Modern software implementations replace physical dice with a CSPRNG. The Passphrase Maker uses crypto.getRandomValues() — the browser's OS-backed CSPRNG — to select a random index into a curated wordlist. The index selection uses rejection sampling to ensure perfectly uniform distribution (no modulo bias), matching the entropy of physical Diceware.
Why Diceware Words Are Ordinary
A common misconception is that passphrases should use obscure or technical words. The opposite is true. Ordinary common words — "cloud", "fence", "ocean", "bright" — are harder to crack than invented or technical words because: (1) the attacker's dictionary must include them regardless; (2) they are easier to remember and type accurately; (3) they resist the pattern-matching that makes "correct horse battery staple" memorable to an attacker who has seen it used as an example. The randomness of selection is what provides security — not the obscurity of individual words.