Gathering Entropy

To "salt" files for encryption and to suggest passwords, fpwdman requires an unpredictable stream of numbers. The more random, the better: higher entropy is better. For this, a psuedo-random number generator (PRNG) is provided. PRNG's require either an ongoing source of random numbers, or a large random block of data, in order to generate an unpredictable stream of numbers. It is possible to extract random numbers from such things as timing of disk access, timing of keystrokes, and so on. Unfortunately, there is no easy (for you, the user) and portable way to extract entropy from system operations on both Unix and Windows. Therefore, fpwdman offers a simple way to gather random data from the user, and restart the PRNG using that.

Gathering Entropy

The Tools --> Gather Entropy command (or Alt-T, Alt-G) launches an entropy gathering dialog. By moving the mouse around inside the white square on the right side of the dialog, you can draw a random dot pattern. The dot-pattern is rearranged into a long bit string, which is used to seed the PRNG.

The maximum usable amount of entropy to gather is controlled from the preferences dialog. The particular PRNG in fpwdman only holds 3200 bits of entropy, so anything above that is just insurance. The maximum possible amount is dictated by the number of pixels in the white entropy-gathering window.

If your "PRNG Control" preferences are set to use "System Seed", then fpwdman will use the system's random number seed by default. It will not initiate the entropy-gathering dialog. Using only the system's random number seed provides very little entropy (32 bits at most), so this mode is discouraged unless you intend only to read the file, and not to modify it.

If your "PRNG Control" preferences are set to use "User Entropy", then fpwdman will initiate entropy gathering when the PRNG runs low. You can control whether it does this just once, or whether it repeats when necessary with the "Repeat" check button.

If you invoke the entropy-gathering dialog, fpwdman will use the entropy you provide, regardless of whether you set your Preferences to use the system seed or to gather user entropy,

For the technically minded: