
related topics 
{math, number, function} 
{system, computer, user} 
{style, bgcolor, rowspan} 
{rate, high, increase} 
{war, force, army} 
{water, park, boat} 

In cryptography, a stream cipher is a symmetric key cipher where plaintext bits are combined with a pseudorandom cipher bit stream (keystream), typically by an exclusiveor (xor) operation. In a stream cipher the plaintext digits are encrypted one at a time, and the transformation of successive digits varies during the encryption. An alternative name is a state cipher, as the encryption of each digit is dependent on the current state. In practice, the digits are typically single bits or bytes.
Stream ciphers represent a different approach to symmetric encryption from block ciphers. Block ciphers operate on large blocks of digits with a fixed, unvarying transformation. This distinction is not always clearcut: in some modes of operation, a block cipher primitive is used in such a way that it acts effectively as a stream cipher. Stream ciphers typically execute at a higher speed than block ciphers and have lower hardware complexity. However, stream ciphers can be susceptible to serious security problems if used incorrectly: see stream cipher attacks — in particular, the same starting state must never be used twice.
Contents
Loose inspiration from the onetime pad
Stream ciphers can be viewed as approximating the action of a proven unbreakable cipher, the onetime pad (OTP), sometimes known as the Vernam cipher. A onetime pad uses a keystream of completely random digits. The keystream is combined with the plaintext digits one at a time to form the ciphertext. This system was proved to be secure by Claude Shannon in 1949. However, the keystream must be (at least) the same length as the plaintext, and generated completely at random. This makes the system very cumbersome to implement in practice, and as a result the onetime pad has not been widely used, except for the most critical applications.
Full article ▸


related documents 
PHP 
Threaded code 
TeX 
AppleScript 
Filename extension 
Objectrelational mapping 
Berkeley sockets 
Common Object Request Broker Architecture 
Jackson Structured Programming 
Maildir 
Wikipedia:Free Online Dictionary of Computing/C  D 
Bzip2 
Active Directory 
GNU Compiler Collection 
Classless InterDomain Routing 
YUV 
Java Virtual Machine 
List of computing topics 
Header file 
White noise 
Prototypebased programming 
Interpreter (computing) 
Atari BASIC 
MathML 
Brute force attack 
Befunge 
Linear feedback shift register 
Arithmetic coding 
Orthogonality 
.NET Framework 
