dicendo

Offline deterministic password generation from physical dice.

Get it on Google Play

Dicendo logo

1. What is dicendo?

dicendo is a dice-based generator of very strong random passwords that is easy to verify. It allows users to generate high-entropy passwords using only physical randomness and publicly documented deterministic algorithms. It uses physical randomness obtained by rolling standard six-sided dice. It works entirely offline and does not rely on any external data sources. In particular, it does not use the system random number generator (RNG) for password generation; instead, it derives entropy entirely from dice rolls. The mapping from dice input to the final password is fully deterministic. The process is under the user's full control and is publicly documented.

dicendo generates a password from three separate dice-derived inputs:

  1. Faces (1..6),
  2. Directions (N/E/S/W)
  3. Order, a permutation of 1..n

To generate a good-quality password using only dice faces, at least 30 rolls are typically required, which corresponds to about 630 ≈ 2 * 1023 possible outcomes. The number of required dice can be reduced when additional entropy sources are used. In particular, for numbered dice, a comparable level of entropy can be obtained with about 12 dice when faces, directions, and order are all taken into account, giving approximately 612 * 412 * 12! ≈ 1.7 * 1025 possible states. For more details, see Security model.


2. Name and origin

The name dicendo is derived from dice and the three core input components of the method: N – numbers (faces), D – directions, and O – order. The Android application is an evolution of a personal Python script originally written in 2021, combining and extending its functionality into a single unified tool.


3. Documentation overview

The dicendo documentation is structured so that you can choose the level of detail that best matches your needs: