Self-synchronizing stream ciphers (SSSC ) - a class of stream ciphers in which plaintext is encrypted depending on the key function and a fixed number of characters ciphertext . Therefore, each encrypted character can be decrypted if the previous ones were received correctly. ciphertext characters, and the key function is known. This approach allows the receiving side to decrypt data in asynchronous mode, that is, it does not require synchronization of the key generator of the receiving and transmitting sides.
Cipher Structure
Encryption of the next plaintext bit performed by binary addition with the corresponding key bit
:
-
,
where is the key bit determined by encryption function
depending on the encryption key changing according to a certain rule
and from previous
ciphertext characters offset by
bit:
called the encryption memory, and
- delayed encryption function. Need for delay
due to the fact that when the algorithm is implemented, the processes of sending and receiving encrypted text, as well as encryption and decryption, occur in parallel . Decryption is carried out as follows:
-
.
To decrypt the first plaintext bit, you must define the initialization vector:
-
.
The initialization vector must be sent to the recipient first. Moreover, if the first first the initialization vector bit on the receiving side is different from the first
bit of the transmitting side, then the probability that the entire ciphertext is received correctly is equal to
. [one]
Cryptographic Properties
The cryptographic properties of a self-synchronizing stream cipher follow from the properties of the encryption function. In this model, the cryptanalyst knows the encryption memory encryption features , and the key unknown to him. To ensure a certain level of cryptographic strength of the function , you need to select the size of the encryption memory depending on the frequency of the key exchange . If at the output of the function the cryptanalyst detects two repeating ciphertext sequences of long each, then he will be able to find out the sum modulo 2 of the corresponding two bits of plaintext.
Let the ciphertext sequence of the encryption function be obtained with a non-changing specific key :
Without loss of generality, a zero delay ( )
Under the given condition
The minimum cipher memory value is determined to prevent the described vulnerability . If we consider the ciphertext stream as a sequence of random numbers, the probability that in a random binary sequence of length all subsequences of length different equal to:
Using Taylor's decomposition for small it turns out:
We set the admissible probability p of the repetition of 2 subsequences of length M inside a sequence of length N. The length of the sequence N is given for a certain key K of the encryption function .
From here we find that the encryption memory M must be selected:
For example, for and encryption memory score - . On the other hand, one should take into account the possibility of errors when transmitting data over a communication channel . An error in one bit during transmission of the ciphertext extends to the next M bits during decryption. Therefore, the encryption memory M should be selected as small as possible. Given the above arguments, for a specific example, select seems reasonable to meet security conditions and error tolerance. [2]
Differential Cryptanalysis
For self-synchronizing ciphers, differential cryptanalysis can be successfully applied, giving restrictions on the type of encryption function . For each pair of input vectors and long M, differing by function returns a pair of encrypted bits. We fix one input vector . Number of possible deviations from this vector: . Consider pairs and . Define the differential probability that the output bits are equal: . Differential cryptanalysis considers difference from . If the differential probability can be represented as:
- ,
then the number of input pairs of vectors needed to calculate the difference approximately equal . It follows that the encryption function should not have a differential probability different from more than :
Number of required pairs:
So, to find out the difference giving information about the key, it is necessary to completely sort through all the possible differences a '. [3]
Comparison of self-synchronizing stream ciphers with analogues
Comparison with synchronous stream ciphers
In synchronous stream ciphers , a key stream is generated regardless of the ciphertext. For correct decryption, it is necessary that the key stream generator be synchronized on the receiving and transmitting sides. As a rule, this is done by resetting the generator when a certain stream of ciphertext bits of a fixed length appears - markers . In case of a marker transfer error, the generators will stop working synchronously and further decryption will fail. At the same time, when a wrong bit is received once in the case of self-synchronizing encryption, decryption will continue correctly after M bits. On the other hand, if the generators are synchronized in synchronous stream encryption, the reception of one incorrect bit gives rise to the incorrect decryption of one bit, while in the self-synchronizing encryption M bits will be incorrectly decrypted.
Comparison with block cipher
Self-synchronizing ciphers can be considered as block ciphers operating in a single-bit feedback mode . To encrypt one plaintext bit, it is required to perform the encryption function of the whole block, which is much slower than the encryption function of the self-synchronizing cipher. Therefore, a self-synchronizing cipher works much more effectively than a block cipher in a given mode. Another important feature of self-synchronizing ciphers is that every bit of plaintext affects the entire ciphertext. Compared to block ciphers, self-synchronizing ciphers give the best performance when attacking based on redundancy of plaintext . [four]
Notes
- ↑ Matthew Robshaw, Olivier Billet. New Stream Cipher Designs - The eSTREAM Finalists . - Springer, 2008 .-- S. 210-213.
- ↑ Ueli M. Maurer. New Approaches to the Design of Self-Synchronizing Stream Ciphers // Advances in Cryptology - EUROCRYPT '91. - Springer, Berlin, Heidelberg, 1991-04-08. - P. 465-466 . - ISBN 3540464166 . - DOI : 10.1007 / 3-540-46416-6_39 .
- ↑ Matthew Robshaw, Olivier Billet. New Stream Cipher Designs - The eSTREAM Finalists. - Springer. - S. 212-213.
- ↑ Ueli M. Maurer. New Approaches to the Design of Self-Synchronizing Stream Ciphers // Advances in Cryptology - EUROCRYPT '91. - Springer, Berlin, Heidelberg, 1991-04-08. - P. 459-460 . - ISBN 3540464166 . - DOI : 10.1007 / 3-540-46416-6_39 .
Literature
- Matthew Robshaw, Olivier Billet. New Stream Cipher Designs - The eSTREAM Finalists . - Springer. - 1997 .-- S. 210-216.
- Ueli M. Maurer. New Approaches to the Design of Self-Synchronizing Stream Ciphers // Advances in Cryptology - EUROCRYPT '91. - Springer, Berlin, Heidelberg, 1991-04-08. - S. 459-466 . - ISBN 3540464166 .