dicendo

Offline deterministic password generation from physical dice or shuffled playing cards.

Dicendo logo Dice and cards

Get it on Google Play


1. What is dicendo?

dicendo is a physical-randomness 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 can use physical randomness obtained by rolling standard six-sided dice or by shuffling a standard deck of playing cards. 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 physical input entered by the user. The mapping from 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, or from the order of a shuffled card deck:

  1. Faces (1..6),
  2. Directions (N/E/S/W)
  3. Order, a permutation of numbered dice 1..n
  4. Cards, a permutation of the active deck.

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.

In cards mode, a shuffled deck is entered card by card. The application can use a standard 52-card deck, optional extra cards, or a reduced deck selected in options. The same deterministic conversion then maps the observed card order into the final password.


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: