Keystream

A key stream generator is the core component of a stream cipher. It generates the key from the key stream which is added to the message to encrypt. The most common designs are based on linear feedback shift registers (Linear Feedback Shift Registers, LFSR) or on block ciphers.

Generators on LFSR - based

For generators based on linear shift registers with feedback you take one or several LFSRs, which are usually of different lengths and have different feedback polynomials. Thus combining LFSRs to non-linear generators. These generate a key stream.

Combination of generators using multiple LFSRs whose output bits are linked via a non-linear function. Filter generators consist of a single LFSR, the link bits from different stages of the internal state via a non- linear function. Both combination generators and filter generators were found to be unsafe. Newer generators are so-called clock-controlled generators. Here, an internal output bit controls the behavior of the generator.

Stop-and -go generator

A stop-and- go- generator consists of two LFSRs ( registers R1 and R2 ), the output of the first register (R1) to the clock of the second register (R2) is controlled. Returns the register R1 the output value of "1", the generator supplies the output value from register R2. Returns the register R1 the value " 0", the value of the second register R2 is discarded. Then both registers (R1 and R2) each generate a new bit.

Alternating stop-and -go generator

An alternating stop-and -go generator operates with a total of three registers (R1, R2 and R3). If the register R1 to the output value "1" supplies the register R2 is clocked, the register R3 repeats the previous value. If the register R1 the output value of "0 " returns the register R3 is clocked and the register R2 repeats the previous value. The generator provides as output a bitwise XOR operation of the two registers R2 and R3.

Of autonomous generator

The self-regulating generator controls its own clock. If the register, the "0" output supplies, it is d times clocked. When the register that provides the "1" output, it will be k times clocked.

Shrinking generator

The Shrinking Generator consists of two registers R1 and R2. Returns the register R1 the value " 1", the output of register R2 is regarded as the output of the generator. Returns the register R1 the value " 0", so in this cycle, the output bit of the register R2 is discarded.

Self- Shrinking Generator

The self- shrinking generator LFSR consists of a ( register). This register is clocked twice and the pair of bits generated sets the output. If the first bit of the pair a "1", the generator outputs the value of the second bit. The first bit is a " 0", the second bit is discarded. Thereafter, a new bit pair generated by the register.

Generators based on block ciphers

A block cipher can in Counter Mode or Output Feedback Mode will be operated to serve as a key stream generator.

Provably secure generators

Parallel to the introduction of provable security in other areas of cryptography, there were also efforts to construct keystream generators whose security can be traced directly to the severity of a number theoretic problem. Examples of such generators are the Blum -Blum- Shub generator and the Blum - Micali generator. In practice, these structures are, however, is almost never used as they are orders of magnitude slower than the above.

715734
de