First of all, I want to make sure I understand stream ciphers correctly: I put a plainchar (e.g. byte?) through the stream cipher and receive a cipherchar. Correct?
When I now have a pair of plaintext/ciphertext, I could then brute-force all secrets which map plainchar[0]
to cipherchar[0]
. For the next character, I only need to try those passwords which succeeded for the first one. This way the brute-force search space is reduced logarithmically.
Is this correct?
Update As @poncho pointed out correctly, the search space is not reduced logarithmically, but the expensive encryption operation which generates the ciphertext for the plaintext. This has to be done for every tried password which is every possible password for brute-force.