Dictionary attacks usually contain a dictionary of common passwords. To use a dictionary for this, you'd have to use a word dictionary instead of a password one. And then you're back to combinatorics.
4 words, where each word is in the dictionary: N^4. However the N here is way bigger than the amount of ASCII characters. Especially if each of the words may be of a different language. If N is larger than 16384, then it has more combinations than a random 8 ASCII character password. 16384 = sqrt(sqrt(128^8)). Quick Google search says English has more than 1 million words.
Therefore even if you know that the user generated their password using this method and used a dictionary attack tailored for this method, it would still be harder to break than a random 8character password.
The thing is to have a program randomly select the words for you. That way the words are not related between them, and you aren't limited by only the words you know.
Even if you just tried word combinations of the 1000 most common English words (which for the record, none of those four belong to), you'd have a trillion possible combinations. If you try all the one-, two- and three-word-combinations first because you don't know how many words it's gonna be, you're about a billion guesses in before you even get to the actual solution space. If I mix in words from other languages, or less common words, the combinatorics get even worse, even if you knew what to try in the first place.
According to a word list generated from OpenSubtitles in 2018, staple would be #18878, so you'd have to use something on the size order of the top 20k, which would be an upper boundary of 160 quadrillion, not counting trying less than four words. I don't know what the best order for trying the words would be or how to calculate the rank of that combination within that order, but I'm pretty sure that "a fucking long time" is the most apt descriptor of how long it'd take.
By comparison, the 44 bit entropy the comic mentions is "just" 17 Trillion combinations for an upper boundary, or 2048^4. I'd venture a guess and say that that's far below the lower boundary for the other option.
For today's lucky ten thousand:
And for those who don't know where the "lucky ten thousand" comes from:
Wouldn't it be possible to attack with a dictionary?
Dictionary attacks usually contain a dictionary of common passwords. To use a dictionary for this, you'd have to use a word dictionary instead of a password one. And then you're back to combinatorics.
4 words, where each word is in the dictionary: N^4. However the N here is way bigger than the amount of ASCII characters. Especially if each of the words may be of a different language. If N is larger than 16384, then it has more combinations than a random 8 ASCII character password. 16384 = sqrt(sqrt(128^8)). Quick Google search says English has more than 1 million words.
Therefore even if you know that the user generated their password using this method and used a dictionary attack tailored for this method, it would still be harder to break than a random 8character password.
https://internationalenglishtest.com/blog/how-many-words-are-in-the-english-language/
I mean sure it might still work, but would make more sense to grasp for some trickier words, like fantasy character names etc.
The thing is to have a program randomly select the words for you. That way the words are not related between them, and you aren't limited by only the words you know.
Random words, one misspelled, occasional symbols.
Correct-horse7battery,stapple
If your password can be brute forced then you're just not trying.
Even if you just tried word combinations of the 1000 most common English words (which for the record, none of those four belong to), you'd have a trillion possible combinations. If you try all the one-, two- and three-word-combinations first because you don't know how many words it's gonna be, you're about a billion guesses in before you even get to the actual solution space. If I mix in words from other languages, or less common words, the combinatorics get even worse, even if you knew what to try in the first place.
According to a word list generated from OpenSubtitles in 2018, staple would be #18878, so you'd have to use something on the size order of the top 20k, which would be an upper boundary of 160 quadrillion, not counting trying less than four words. I don't know what the best order for trying the words would be or how to calculate the rank of that combination within that order, but I'm pretty sure that "a fucking long time" is the most apt descriptor of how long it'd take.
By comparison, the 44 bit entropy the comic mentions is "just" 17 Trillion combinations for an upper boundary, or 2048^4. I'd venture a guess and say that that's far below the lower boundary for the other option.