In general, the longer the password, and the more random it is, the more secure it is. This is because if a password file is stolen, the passwords are stored there are stored in encrypted format, where each password is encrypted with… itself. This means that in order to determine what an account
‘s password is, an attack must try encrypting every random possible string and see if it matches the encrypted password.
Naturally, this means that all possible 2-character strings can be tried quicker than 3-character strings, and 4 character strings will take even longer. Unfortunately, thanks to Moore’s Law, “longer” means “a few milliseconds”. 8 character passwords are usually the minimum, but by some estimates, even that is not sufficient. To make for an even bigger challenge, us humans tend to have a hard time remembering random letters and numbers. This leads to bad habits such as using the same password on multiple sites, and that can cause its own problems.
This is where Diceware comes in. The concept is over a decade old, and rather simple: you roll 5 dice, and then look up the number against a word list to get a word. Words are easy for us humans to remember, yet the dice rolls themselves are quite random. Let’s look at a sample run:
That’s 20 dice rolls, which means there is a one-in-6^20 (3.65 * 10^15) chance of getting that specific dice roll or, for an attacker, 6^20 guesses they need to make to try every possible password. As computers evolve and longer passwords are needed, more rolls of the dice can be made.
This app can be used online at: https://diceware.dmuth.org/
Please try it out and let me know what you think. Naturally, my source code is also available for download. It can be found over on GitHub.