I was reading some questions on here regarding the correct horse battery staple method, and the conclusion was that, assuming any words in the list of most common English words, every word adds about 10-11 bits of entropy, so the XKCD method was relatively correct in their conclusion.

Now, how much secure would that password be if you added random noise (actual random noise, generated from a proper PRNG) to that string? Say, for example, I had correct horse battery staple as my password (ignoring the fact this sentence is pretty common) and then I added some noise, so I get 3orrezt hors bat8ery s9appe@. How much more secure did it actually become? Or is there no point worrying about this kind of thing anyway?

Also, what about adding a small password inside the bigger sentence, for example, correct $58j#O1, battery staple?

  • How did you add this noise? That's what determines the extra entropy. Commented Aug 21, 2015 at 22:24
  • @Gilles As I said, using a secure PRNG. For example, say rolling a dice with n sides (where n is the number of characters in the string), and then rolling another dice with, say, 96 sides and changing the original value to the value obtained with the other dice. (BTW, I don't mean real dices, just a CSPRNG device).
    – MKII
    Commented Aug 21, 2015 at 22:56
  • The question is, what did you do with the output of the RNG? How do you choose which characters to change, what do you change them to, etc.? Commented Aug 21, 2015 at 23:10
  • @Gilles Like I said, the CSPRNG decides both which characters to change, and how they are changed. The idea would be to allow the generator to do all the work, so as to avoid reducing the entropy (since humans are biased).
    – MKII
    Commented Aug 21, 2015 at 23:14
  • I have a feeling that 2 years from now, we're going to be seeing "correcthorsebatterystaple" up in the list of "Top 10 worst passwords" along with "password" and "asdf1234". People tend to take these things very literally.
    – Nic Barker
    Commented Aug 22, 2015 at 0:34

2 Answers 2


Use enough entropy then there's nothing to worry about.

For an 80 bit password just choose 8 random words.

Using your

correct $58j#O1, battery staple

technique with CSPRNG, assuming your password section is over the full character range (96 chars) then you have 10 bits + 6.5 * 7 + 10 + 10 = 75.5 bits.

These are both under the assumption the attacker knows your generation method. In reality they don't so this adds an immeasurable amount of entropy for an untargeted attack.

  • In both examples, it became significantly stronger.
  • However, the original was almost assuredly strong enough
  • And by adding the randomness you generally blow up the "easy to remember/type" value in the diceware/xkcd style password
  • if you need more entropy,either add more words, or use a password manager with a completely gibberish password.

Silverlight Fox's calculation uses the zxcvbn measurement, which assumes the attacker knows your method. As they said, in reality they don't so you effectively moved the attack space from the already large diceware space, to the full brute force space, for a XX length password.

But you get almost that same benefit by adding a SINGLE RANDOM CHAR anywhere in the list that isn't from the diceware list. Once you have added that single char, the additional chars add 6.5 bits of entropy each, but you already massively increased the difficulty of cracking the password

  • why the downvote Commented Aug 23, 2015 at 2:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .