6 Stream Ciphers

Stream ciphers are symmetric ciphers that encrypt and decrypt bits individually. They are used to secure communications in wireless and cellular networks. Stream ciphers are well-suited to hardware implementation and they are generally faster than block ciphers. They also are well-suited to encrypt and decrypt continuous data (e.g. phone communication) at high rate and when devices have limited memory to store long messages. That is why, stream ciphers are often used in telecommunication networks, such as 3G, 4G, and 5G.

ChaCha20 stream cipher is an Internet standard; it is recommended as a cipher in TLS protocol to secure communications between clients and web servers [1]. Most common stream ciphers are built around linear feedback shift registers, which makes them easy to implement in hardware.

This chapter aims at presenting the principles and standard algorithms related to stream ciphers.

6.1 Stream Ciphers

6.1.1 Principles of Stream Ciphers

Definition 6.1 Stream cipher: it is a symmetric cipher where plaintext bits are pairwise combined with bits of a key stream. Each bit of ciphertext is yielded by a bitwise XOR operation.

Definition 6.2 Initialization vector (IV): it is a bit string computed for each plaintext (or for a set of plaintexts) and used jointly with the secret key to generate the keystream.

There are two main reasons to use and frequently change initialization vectors: 1) long sequences of keystream require periodic synchronization of encryption ...

Get Cryptography now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.