Randomizer
A randomizer is an algorithm that converts an input string into a seemingly random output string. The quality of a randomizer can be evaluated based on two properties: statistical randomness, and cryptographically secure randomness.
Randomizers have important applications in telecommunication and cryptography.
Implementation
Randomizers requiring only statistical randomness are typically based on simple random number generators, such as linear congruential generators and linear feedback shift registers. The latter are particularly popular for hardware implementation due to their good statistical properties and low implementation complexity.
Cryptographic applications have stronger randomness requirements in the sense that the output sequence must be indistinguishable from a random sequence by an adversary unknowledgable of some secret information or key. Such randomizers are either based on engineering constructs (e.g., most stream ciphers), or mathematical algorithms based on one-wayness assumptions.
Applications
Telecommunication
Randomizers with statistical randomness properties have important applications in telecommunication, where they are frequently used reduce signal inter-correlation issues on carriers, as well as for energy dispersal. In this context, randomizers are also referred to as scramblers. Scrambling is usually an essential part in physical layer definitions of interleaved coding and modulation.
Scramblers are typically implemented with linear feedback shift registers.
Cryptography
In cryptography, randomization is usually implemented in the form of pseudo-random bit generation and encryption via stream ciphers.
Some standards for digital television, such as DVB-CA and MPE, refer to encryption at the link layer as scrambling.