Чтобы расшифровать сообщение, вам нужно знать правильный ключ.
Чем больше ключей вы попробуете, тем сложнее расшифровать сообщение.
Взяв крайний пример, скажем, нет никакой случайности вообще. Когда я сгенерирую ключ для шифрования своих сообщений, я всегда получу тот же ключ. Независимо от того, где и когда я запускаю программу keygen, она всегда дает мне один и тот же ключ.
Это означает, что любой, кто имеет доступ к программе, которую я использовал для генерации ключа, может тривиально расшифровать мои сообщения. В конце концов, им просто нужно попросить его сгенерировать ключ, и они получают тот же ключ, который я использовал.
Так что нам нужна некоторая случайность, чтобы сделать непредсказуемым, какой ключ вы в конечном итоге используете. Как упоминает Дэвид Шмитт, в Debian была ошибка, из-за которой он генерировал только небольшое количество уникальных ключей, что означает, что для расшифровки сообщения, зашифрованного реализацией OpenSSL по умолчанию в Debian, мне просто нужно попробовать это меньшее количество возможных ключей. Я могу игнорировать огромное количество других допустимых ключей, потому что реализация SSL в Debian никогда не сгенерирует их.
С другой стороны, если при генерации ключа было достаточно случайности, невозможно угадать что-либо о ключе. Вы должны попробовать все возможные битовые комбинации. (и для 128-битного ключа это много комбинаций.)