# Brute-forcing Symmetric Keys

Random keys are often produced using high-quality random generators. Assuming a key produced for a symmetrical cipher, this means that the number of zeros and ones in the key will, on average, concentrate on about half of the key's length.

Having this in mind, is it anywhere more profitable to start a brute-force attack from bit patterns with similar population counts (that is, with similar counts of ones and zeros)? Will this increase the probability of success?

You are right, the amount of bits set to 1 of such a truly random key will be (statistically) equal / close to $\frac{x}{2}$ with $x$ defined as the length of the key in bits. It's also true that it is more likely that the key will have $\frac{x}{2}$ bits set to 1 than only 1 bit set to 1 (at least for bigger $x$). The problem is that the amount of possible keys will rise the same as the number of bits set to 1 until it reaches $\frac{x}{2}$ and then drop again. For $x = 4$ there are $2^4 = 16$ possible values of your key. The amount of keys with $\frac 4 2 = 2$ bits set to 1 are $\frac{4!}{2!(4-2)!} = 6$ elements. (See Binomial coefficient for an explanation of this formula) That are $\frac 6 {16} = 37.5\%$ of the whole keyspace, and that's also the chance that the randomly chosen key will be in this space.
In contrast to that there's only exactly 1 element of the space of possible keys that has exactly 0 bits set to 1 - a key containing only 0. With a key length of 4 that one has a chance of $\frac 1 {16} = 6.25\%$, but there's also only 1 key you have to check. The chance is smaller, but you are also much faster through that list.
No, it doesn't help. It doesn't hurt either; as long as you don't repeat keys, the probability of success is always the same. That is, if there are $2^n$ possible keys, and you test $\lambda$ of them, the probability you hit the right one is always $\lambda / 2^{n}$.