There are various encryption techniques on stream ciphers such as, Random Number Generator (**RNG**), One-Time Pad (**OTP**), Linear Feedback Shift Registers (**LFSR**) and **Trivium**: a modern stream cipher.

Starting with the **RNG**, which stands for Random Number Generator is a stream cipher that is very technique in cryptography, which generate random numbers. RNG is divided into three parts: True Random Number Generator, Pseudorandom Number Generator and Cryptographically Secure Random Number Generator.

- Initially, the
**True Random Number Generator** (**TRNG**) is based on the physical random processes such as, coin flipping or dice rolling. The output stream (*s*_{i}) should have good statistical properties of **50%** (__either 0 or 1__), since the output can neither be predicted nor reproduced. It is usually used for generating the key.

- Secondly, the
**Pseudorandom Number Generator** (**PRNG**), where it generates sequences from the initial seed value. Typically, output stream has good statistical properties. The output can be reproduced and can be predicted, because it is often computed in a recursive way. **Note:** Most (**PRNGs**) have bad cryptographic properties.

- Eventually, the
**Cryptographically Secure Pseudorandom Number Generator** (**CSPRNG**) is similar to (**PRNG**), but with additional property to ensure that the output **unpredictable**. This will make sure that the output cannot be predicted.

The second encryption technique on the stream cipher is the **One-Time Pad** (**OTP**). **OTP** is a cryptosystem developed by *Mauborgne* and it is based on Vernam’s stream cipher. **Note****:** The **OTP** is unconditionally secure, __if and only if__ the key bit (*k*_{i}) is only used once.

The main problems are for almost all applications; the OTP is impractical since the key must be as long as the message! (Imagine you have to encrypt a 1GByte email attachment); side by side with the ability for the hacker to know the approximate the length of the message.

**Remember: **The **One-Time Pad** is a provable secure symmetric cipher. However, it is highly impractical for most applications because the key length has to equal the message length.

The third encryption technique on the stream cipher is the **Linear Feedback Shift Registers** (**LFSR**). LFSR is trying to emulate the **OTP**, since it designs a random number generator and XORs output with plaintext stream. Using a single (**LFSR**) is bad, but it is recommended to use multi (**LFSR**).

**Remember:** Single **LFSRs** make poor stream ciphers despite their good statistical properties. However, careful combinations of several **LFSR** can yield strong ciphers.

Finally, is the modern stream cipher, which is known as **Trivium**. This encryption technique is small in Hardware with a **total of 288 register count**, **3 AND-Gates** & **7 XOR-Gates** (4 with three inputs). The encryption is an XOR-Sum of all three NLFSR outputs generates **key stream** (*s*_{i}). The figure below shows the process of generating the stream key out of the original key (**Trivium**).