Passphrase Generator


Freeware. Generates a random passphrase from a list of words. Included is the Bitcoin BIP39 list and the original Diceware list. Other lists can be used also by reading the list into the program. The program can also generate an 'ordinary' password for different security levels (2^96, 2^128, 2^256) - random bytes are generated and the password/passphrase is the hexadecimal, base64 or numeric representation of the wanted number of bytes.

passphrase_g_setup.msi as of December 31, 2019 size 622KB.
 For Windows Desktop (64 bit).

Passphrase generator main window

Passphrase generator main window, tab

At program startup a seed B of 128 bytes is initialized with certain hashed values of processes and threads in the computer.

When random bytes are needed the RNGCryptoServiceProvider of the C# language is used to generate random 32 bytes A.

C=A2 xor B2

After the calculation of C2 a new B is formed by calculating B_new=sha512(B_old), ie. the first 64 bytes of B_old are sha512 hashed to form the first 64 bytes of the B_new and the next 64 bytes of the B_old are sha512 hashed to form the next 64 bytes of the B_new.

The generated word or password string is based on C2 e.g. for an 'ordinary' password the string is the hexadecimal, base64 or numeric representation of C2, consisting of 12, 16 or 32 bytes for the security levels 2^96, 2^128 and 2^256.

During program run the seed (B) is updated during mouse movements etc. an old value is xored with a new measurement:

index=(index+1) % 128
B[index]=B[index] xor new_measurement

The % operation is the modulo operation.