Help‎ > ‎

DiceTables

Note: the tables below are part of the DiceTables PDF document, which is included with the DiceWords package that is installed in Centrych. The document was generated from a LibreOffice spreadsheet, which is included in the same directory.

While Diceware (tm) is mostly known for using dice to generate passphrases, the Diceware FAQ includes an entry on using dice to generate random character strings and three others for generating case-insensitive alphanumeric, decimal and hexadecimal strings. While those six tables worked for us for quite a while, there was always a feeling that they could be improved.

The areas that we felt in need of improvement were:
  • How to simplify the rules for when a re-roll was required since many of the tables were not complete due to the character set having less than, or not being a modulus of, the 36 locations in a 6x6 table
  • The FAQ used six tables for four character sets, yet it seemed intuitively possible to increase the number of character sets by intelligently re-ordering and re-use of some tables
  • Add support for special-purpose character sets that minimize the need for additional keystrokes, like the limited symbols keyboard on an iPhone or non-SHIFT symbols on computer keyboards
In the end, we were quite successful. With just 8 different tables we were able to represent the following 14 character sets:

1. iPhone primary symbols & alpha keyboards (the secondary symbol keyboard is not used)
2. non-SHIFT symbols and alphanumerics
3. All 95 printable ASCII characters (the 3 tables shown below)
4. Case-sensitive alphanumerics
5. Case-insensitive ASCII (69 characters)
6. Case-insensitive alphanumeric
7. All symbols & decimal
8. All symbols & hexadecimal
9. iPhone primary symbols keyboard only
10. Case-insensitive alpha-only
11. Non-SHIFT symbols only
12. All keyboard symbols
13. Decimal numbers only
14. Hexadecimal numbers only

We were also able to make re-rolls easier to identify by grouping the unused spaces to the lower right of each table, except for the hexadecimal table, which mapped to a much better re-roll identification pattern.


Printable ASCII (95 characters)
For this purpose of this document we've included just the three tables that are needed for generating random character strings that can contain any of the 95 possible characters on a standard US keyboard with 3 dice.

While any 3 dice can be used, we will refer to them here as yellow, green and red since their function maps directly to the same-colored indexes in each of the tables.

The yellow die selects the table. A roll of a yellow 1 or 2 would select the left table, a 3 or 4 would mean the middle table, while a 5 or 6 would indicate the right table.

From there it's a simple matter of looking up what character was selected by finding the location indicated by the red and green dice.

For example, a y3r2g5 (yellow 3, red 2, green 5) would select the ')' symbol from the center table.


The lightly shaded, blank areas in the lower right of each table indicate a re-roll. For every table, regardless of which die it may be, a roll of 6,5 or 6,6 requires a re-roll. For the left and right tables there's an additional re-roll requirement for a 6,4 roll, again, regardless of die color.

The middle table shows an additional re-roll rule which is only used when the space character, indicated by sp in the table, is not used. In that case, it's treated as a blank and a roll of 5,5 would then require a re-roll.

As mentioned previously, except for the hexadecimal table, the other seven have been designed so that the re-rolls are not sensitive to die color. Rolling a 6,6 or a 6,5, and often a 6,4, will require a re-roll. This may sound confusing at first, but a few rolls of the dice while referring to the tables in the document will make them second-nature to you in relatively short order.