1
$\begingroup$

I learned the stream cipher using LFSR in the book. I wonder whether all random bit generators (i.e. BBS, Rabin generator) are suitable for stream cipher. I search using keywords "stream cipher" and "BBS", and there are few results.

$\endgroup$
  • 2
    $\begingroup$ FYI, BBS is a theoretical toy, not actually fit for use in any practical application. You can get orders of magnitude better performance at higher security from something like ChaCha instead. It may be tempting to say that BBS is based on a known hard problem, but actually either way you are relying on an unproven conjecture—BBS just relies on a hard problem that is much easier than the hard problem of ChaCha, because it is highly structured and already known to admit powerful attacks like ECM and NFS. $\endgroup$ – Squeamish Ossifrage May 14 at 14:41
  • $\begingroup$ No, because some RNG:s have requirements incompatible with stream ciphers. The primary requirement of a stream cipher is that it is indistinguishable from random, but some RNG:s are expected to produce numbers within certain ranges or with chosen patterns or to prohibit repetition, etc. In these cases, even if they have sufficient randomness, their outputs could not be securely used for a stream cipher without some form of "whitening", another algorithm to scramble the output to hide the patterns. $\endgroup$ – Natanael May 15 at 10:26
3
$\begingroup$

The requirements for cryptographically secure pseudo random number generator and those for a stream cipher are essentially the same. Obvious not all PRNG are secure, LFSR and mersenne-twister to name a few aren't suitable for any cryptographic task.

In some cases a PRNG will be not practical for use as a cipher. If you look at it in the pure form of a seed generating a stream of random bits than we are OK, random bits are random and knowing some won't help me know the others. But if you look at the full system, PRNGs require some entropy collection and this can make it unpractical when you want to make it a keyed cipher, some PRNGs may for instance have a huge seed which you will not want to use as a key.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.