Stream Cipher (thing)

A stream cipher is basically any cipher whereby elements are dependent upon previous elements for decryption. The problem with a traditional streamcipher is that each element in the chain contains the method for decrypting the next element. Why is this bad? Well if you get the packets out of order (TCP helps with this), then you have a perfectlyrandomstream of bits (thanks to the waterfall theory; which states that for security to be in place ciphertext should have nothing to do with plaintext). Should something go wrong, you have a random bit firehose, in theory. It should also look like that to any third party who can see your data.

There are very few, if any, publicly used stream ciphers. There are some advantages to them (and i personally know of several apps that take advantage of this for numerous reasons), but all in all, it is best to stick with a block cipher, whereby each data is encrypted the same (ala DES, or 3DES).