Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Couldn't I write a bruteforcer that instead of 5 * letters, tried 5 * dictionary words and get your password easily?


The way to compute the amount of possible brute-force combinations:

For a normal 5 letter (alpha-numeric only) password:

36 factorial, which is (36 * 36 * 36 * 36 * 36) = 60 million possible combinations.

However, for a 5-word password, the calculation is as follows:

Assuming the number of possible words in the English language is 1.025109 million, then:

1,025,109 factorial, which is (1,025,109 * 1,025,109 * 1,025,109 * 1,025,109 * 1,025,109) = A really big number.

So, granted, the amount of possible words is much smaller than that. But the attacker can't know that for sure. To put the number above in scale, just 69 factorial is equivalent to 1.711224524 * 10^98.


I agree with your general point, but I have just a couple of mathematical points:

> For a normal 5 letter (alpha-numeric only) password: > 36

With the "normal" recommendation of numbers, uppercase and lowercase letters, and punctuation, it's up around 100.

> factorial

The calculation is X^Y, where X is the number of possibilities per element, and Y is the number of elements (letters or words in these examples). So using only only lowercase letters (26) in an 8 character password would be 26^8. It's not factorial because you can reuse characters (e.g., your password could be X92m-sXp/)

> the amount of possible words is much smaller than that. But the attacker can't know that for sure

They will search the more likely words first. I read someplace that 10,000 words covers most people's vocabulary. That's still 100 times better than numbers + uppercase + lowercase + punctuation.


>"The calculation is X^Y, where X is the number of possibilities per element, and Y is the number of elements (letters or words in these examples). So using only only lowercase letters (26) in an 8 character password would be 26^8. It's not factorial because you can reuse characters (e.g., your password could be X92m-sXp/)"

You're absolutely right, not sure why I got ahead of myself with using factorial so incorrectly.


You were probably thinking about the fact that picking, in order, 5 elements taken from a set of 1000 elements yields (1000 factorial) / (995 factorial) possible combinations.


I guess you meant 36 to the power of 5, instead of factorial. 36! is a much bigger number than 60 million; same goes for 1,025,109 a few lines below


You're making the incorrect assumption that all letters are equally likely, and all English words are equally likely.

I'd guess the words used in that password fall into the top 10k words, easily. No need to check words like pediatrician, when the password contains the word cat.


Technically true perhaps, but from my experience the word selection is always way narrower than that, like usually from maybe the 2000-5000 most common words.

Still a big number, but not astronomically big.


It's big enough to matter. 2000^5 ~= 60^9 so it's as strong as a 9 random character password which is usually regarded as strong enough, and far better than a typical 1 word with 3 or 4 special characters mixed in.


Too late to edit my post. I made a bit of a mistake referring to it as factorial.


Five or six words is a huge amount of entropy. In reality there are other rules in my example than just using words. It starts with a capital letter and includes a conjugated verb (running) both of which increase complexity considerably. And it of a random length, having taken its length from my selection of words rather than from any fixed policy. Few services accept random lengths but imho all should.

There is a great scene in DoctorWho where a door password is a series of concepts (spoken mentally) that one thinks about in a particular order. Fiction, but the person writing that scene knew a thing or two about password complexity.


> It starts with a capital letter and includes a conjugated verb (running) both of which increase complexity considerably.

They reduce complexity: It reduces the number of possibilities on the first character, and the attacker knows that one word must be a (conjugated? present participle?) verb yet, when otherwise it could be anything.


Those are rules in the user's head. We assume that the enemy only knows that the user is chaining words.


That might not be true for an enemy who has access to some of your other passwords already, but assuming it is I still don't see how the strategy above increases complexity. At best, the complexity remains the same.


> strategy above increases complexity

It doesn't, but it does make it easier to remember :)


The question is whether people are all going to pull words from a very small pool or form sentences to cut the search space (adjective noun adverb verb noun). A search space of 2000^5 (2000 most common words without punctuation) is still about 20 times larger than 80^8 (upper/lower/number/symbols)


There are a lot more words in the dictionary than letters.


The number of possible letters is much, much smaller than the number of possible dictionary words. The latter would take many orders of magnitude longer to brute force, which would make it unfeasible.


^This shouldn't be downvoted. It is a perfectly valid question.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: