Explore chapters and articles related to this topic
Very-Large-Scale Integration Implementations of Cryptographic Algorithms
Published in Tomasz Wojcicki, Krzysztof Iniewski, VLSI: Circuits for Emerging Applications, 2017
A stream cipher is a symmetric key encryption algorithm where plaintext digits are combined with a pseudorandom keystream generated by the stream cipher. In a stream cipher, each plaintext bit or byte or block of any size is encrypted one at a time with the corresponding bit or byte or block of the keystream, to give the corresponding bit or byte or block of the ciphertext stream. Usually, the message stream is combined with the keystream with a bitwise exclusive-or (XOR) operation. The pseudorandom keystream is typically generated serially from a random seed value that serves as the key of the stream cipher. Many stream cipher algorithms are designed by combining the outputs of several independent Linear Feedback Shift Registers (LFSRs) using a nonlinear Boolean function. The VLSI area used in implementing such stream cipher systems has two components: the area used to implement the LFSRs and the area used to implement the Boolean function. The area required to implement the LFSRs is proportional to the product of the length of the LFSR and the number of inputs to the LFSR, whereas the area required to implement the Boolean function grows exponentially with the number of inputs. Thus, implementing the Boolean function is a main hurdle in this case.
Cryptography Threats
Published in Nicholas Kolokotronis, Stavros Shiaeles, Cyber-Security Threats, Actors, and Dynamic Mitigation, 2021
Konstantinos Limniotis, Nicholas Kolokotronis
The simplest (but also typical) form of a stream cipher is illustrated in Figure 4.2. In this case, the message is being encrypted via an XOR operation, on a bit-by-bit basis, with a sequence being called keystream. The keystream is being produced by the so-called keystream generator, whose initial state is uniquely determined by the secret key. Therefore, since the two parties have the same secret key, they are bound to produce the same keystream; this enables the decryption, which is operationally identical with encryption (i.e. again an XOR operation).
Overview of Cryptography
Published in Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, Handbook of Applied Cryptography, 2018
Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone
A stream cipher applies simple encryption transformations according to the keystream being used. The keystream could be generated at random, or by an algorithm which generates the keystream from an initial small keystream (called a seed), or from a seed and previous ciphertext symbols. Such an algorithm is called a keystream generator.
Efficiency Analysis of Cryptographic Algorithms for Image Data Security at Cloud Environment
Published in IETE Journal of Research, 2021
RC4 is a symmetric key encryption algorithm and it was invented by Ron Rivest in 1987 [30]. RC4 is a stream cipher that is it generates streams of bytes, one for each byte of the plaintext to encrypt [31]. Once the key stream has been generated it is simply xored with plaintext to generate the cipher. Normally RC4 uses 64 and 128 bit keys. Although it is not strong cryptographically [32], it is very easy to implement both on software as well as hardware. Some of the popular implementations include the WEP in 802.11 networks and even in SSL which is used for HTTPS [33]. RC4 encryption process consists of two parts [34]: one is the Key Scheduling Algorithm called KSA and the other is the Pseudo-Random Generation Algorithm (PRGA).
On black-box optimization in divide-and-conquer SAT solving
Published in Optimization Methods and Software, 2021
O. S. Zaikin, S. E. Kochemazov
Any stream cipher (with some reservations) can be considered as a discrete function that transforms an input called secret key into an output called keystream [47]. Stream ciphers are usually used to quickly encrypt large amount of online data, eg phone calls. The encryption is performed by combining the produced keystream with a plain text (an original data). Stream ciphers are designed in such a way that given a secret key, the corresponding keystream is produced very fast. Moreover, the algorithms are created specifically to make it extremely hard to find the input corresponding to any given output (ie such discrete functions are hard to invert). Each stream cipher consists of one or several registers, where the internal state of the cipher is stored. First, given a secret key, the initialization phase is performed to fill the registers with nontrivial contents. Then, using the registers' state, the keystream is produced. Usually, the following variant of the cryptanalysis of stream ciphers is considered: given a known keystream fragment to find the registers' initial state that was used to produce this keystream fragment (see, eg [45]). Basically, it allows one to forgo the initialization phase at a cost of having to find the unknown values for the whole contents of ciphers registers (at the beginning of keystream generation) instead of the secret key itself (which is typically smaller than the size of registers). In the present study, this very variant of the cryptanalysis is considered in application to the following stream ciphers: Trivium [15], Grain_v1 [28], Mickey [3], and Rabbit [8]. They are the finalists of the eSTREAM project [18,52] that was completed in 2008. This project was organized by European cryptological community and was aimed at identifying new fast and resistant stream ciphers. Thus, the eSTREAM's finalists can be considered as state of the art in the area of stream ciphers.