Wireless Communications Security

Stream ciphers are symmetric key encrypting algorithms that work on single bits of the plaintext (Figure 2.7). While they are similar to the one-time pad, instead of XORing the message to a pure random string, stream ciphers XOR the message to a pseudorandom sequence of bits, usually called a keystream, generated from a small sequence of pure random bits. A sequence is pseudorandom if is computationally infeasible for an adversary to distinguish between the sequence and a real random string. The decryption proceeds by XORing the ciphertext with a keystring generated from the same small sequence of pure random bits. Block ciphers can also be used as stream ciphers when working in the CFB or OFB modes.
Stream ciphers are usually categorized as synchronous or self-synchronizing.
Synchronous stream ciphers: the generation of the keystream can be independent of the plaintext and ciphertext.
Self-synchronizing stream ciphers: the generation of the keystream depends on the data and its encryption.
There are several advantages to using this approach over the one-time pad and over block ciphers, namely:
Different from the one-time pad, the size of the key can be much smaller than the size of the message to be encrypted.
The encryption operation is very fast; usually stream ciphers are much faster than block ciphers.
There is no error propagation, that is, if parts of the cipher text are corrupted during the transmission, it does not affect other uncorrupted parts.
Note that stream ciphers...