A stream cipher , stream cipher or flow cipher ( English stream cipher ) is a cryptographic algorithm for symmetric encryption , in which individual characters of the plain text with the characters of a key stream ( XOR in bits ) are linked. The keystream is usually a pseudorandom string derived from the key. With self-synchronizing stream ciphers, not only the key but also parts of the message are included in the calculation of the keystream.
In contrast to the block cipher, stream encryption does not depend on the fact that enough data to be encrypted has accumulated until it has reached the size for an input block of a block cipher, but can immediately translate every plaintext character into an encrypted output character.
This character or bit can then immediately be transmitted to the recipient via the insecure channel (insecure in the sense of being interceptable).
Stream ciphers are therefore particularly suitable for real-time transmissions (e.g. mobile communications).
A synchronous stream encryption generates the key stream independently of the plain or ciphertext. The Output Feedback Mode (OFB) of block ciphers is an example of a synchronous stream cipher. For a more efficient design, the key stream generator of synchronous stream ciphers is often designed as a linear feedback shift register (LFSR). LFSR can be easily implemented in hardware, are fast, and produce pseudorandom sequences with good statistical properties.
In contrast to synchronous stream ciphers, with a self-synchronizing stream cipher, the keystream depends on the previous encrypted bits. An example of this is the Cipher Feedback Mode (CFB) of block ciphers.
Attacks on power encryption
If an attacker has both the plaintext and the ciphertext, he can reconstruct the keystream. Further messages that are encrypted with this key stream can therefore be decrypted at least as long as there are bits in the key stream. Exactly this gap occurs when encrypting wireless networks using WEP .
The most important cryptanalytic attacks against LFSR are the correlation attack and the algebraic attack. The correlation attack forms linear approximations to the nonlinear function. The algebraic attack exploits the properties of sparse polynomials.
Stream ciphers that can be efficiently implemented in software are, on the one hand, the OFB and the CFB modes of block ciphers. In addition to these, there are proprietary stream ciphers such as RC4 , SEAL , A5 / 1 or the Bluetooth standard E0.
The eSTREAM project identified new stream encryption methods for future standards in three phases between October 2004 and May 2008. It distinguishes between two profiles: Profile 1 are stream ciphers for software applications, Profile 2 are procedures for hardware with limited resources.
The final portfolio is composed as follows:
- Profile 1: HC-128 , Rabbit , Salsa20 / 12 and SOSEMANUK ;
- Profile 2: F-FCSR-H v2, Grain v1, MICKEY v2 and Trivium .
In the revision of September 2008, F-FCSR-H was removed from the portfolio due to security deficiencies.
- Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone: Handbook of Applied Cryptography. CRC Press, Boca Raton FL et al. a. 1996, ISBN 0-8493-8523-7 , pp. 181-222.
- Bruce Schneier : Applied Cryptography. Protocols, algorithms and source code in C. Addison-Wesley, Bonn a. a. 1996, ISBN 3-89319-854-7 , pp. 425-482 ( information security ).
- eSTREAM project
- Solitaire algorithm by Bruce Schneier
- Klaus Pommerening: Bitstream Encryption , Department of Mathematics at Johannes Gutenberg University (PDF, 590 kB)
- Côme Berbain and Henri Gilbert: On the Security of IV Dependent Stream Ciphers . In: Fast Software Encryption 2007 . 2007 ( iacr.org [PDF]). - "A stream cipher [without IV] is considered secure if the associated key to keystream function is a pseudo-random number generator (PRNG)"