Sidelnikov's cryptosystem ( Mac-Alice-Sidelnikov ) is a public-key cryptographic system based on the McEliece cryptosystem . It was proposed by the mathematician, academician of the Academy of Cryptography of the Russian Federation Vladimir Mikhailovich Sidelnikov in 1994 [1] . Sidelnikov proposed this cryptosystem, since by that time algorithms had already been found for the McEliece system that cracked it in polynomial or sub-exponential time [2] .
The algorithm used in the Sidelnikov cryptosystem is based on the complexity of decoding the Reed-Muller code [1] . The generating matrix of such a code has dimensions Where
When using the Reed-Muller code, you can select keys of a smaller size than in the McEliece cryptosystem; and also to achieve high decryption speed, since for this code there are fast decoding algorithms [2] . Moreover, the Sidelnikov cryptosystem, like any system based on linear codes , is not vulnerable to attacks that will become possible with the advent of a quantum computer .
This cryptosystem did not find real application, since, despite some improvements compared to the McEliece system, it was hacked in 2007.
Some sources refer to the Mac Alice-Sidelnikov cryptosystem.
Content
- 1 Key Generation
- 2 Encryption
- 3 Decryption
- 4 Attack on the cryptosystem
- 4.1 Essence of attack
- 4.2 Temporary estimates of the hacking algorithm
- 4.2.1 Experimental runtime
- 5 Generalized Sidelnikov system
- 6 See also
- 7 notes
- 8 Literature
Key Generation
Sidelnikov's system, like all asymmetric cryptosystems , uses public and private keys. The public key is used to encrypt messages and is not secret. The private key is used for decryption and should be known only to the party to whom the encrypted messages are intended. The task of the owner of the private key is to mask the generating matrix Knowing which, the cryptanalyst will be able to restore the original message. Matrices are used for these purposes. and described further in the algorithm. Computations everywhere occur in -dimensional subspace of space .
The key generation process is as follows [1] :
- Reed-Muller code is selected with certain parameters and (Where is the code order, and - codeword length).
- Random generated permutation matrix .
- Random non-degenerate generated matrix .
- The matrix is ββcalculated .
- Matrix and the number of errors corrected by the code form a public key , and matrices - private key of the cryptosystem.
Encryption
For coding using linear codes (in particular, using the Reed-Muller code), an informational message must be provided as a sequence of and . This bit sequence is encrypted as follows [1] :
- The auxiliary vector is calculated .
- An error vector is randomly generated. dimensions containing units of no more than discharges.
- The transmitted ciphertext is calculated by adding the previously computed vectors .
Decryption
The ciphertext received on the public channel is a vector where - Announcement. To decrypt a cryptogram [2] :
- The vector is calculated , which is a vector of the Reed-Muller code with a generating matrix distorted no more than in discharges. Strictly speaking, the error vector with this approach, it is also multiplied by the matrix , but for the decoding algorithm this does not matter, since its weight during permutations, obviously, remains the same.
- Using any Reed-Muller code decoding algorithm, a vector is found satisfying the condition .
- An informational message is calculated . .
Attack on the cryptosystem
Sidelnikov in one of his articles showed the inconsistency of the McEliece cryptosystem based on Reed-Solomon codes , finding a way to crack such a system in polynomial time [3] . In this regard, and also, wishing to eliminate some of the shortcomings of the McEliece system, Sidelnikov proposed and described a cryptosystem based on Reed-Muller codes [1] .
Despite the fact that Sidelnikov considered his cryptosystem reliable, in 2007 cryptographers L. Minder and A. Shokrolllahi invented a very original way to crack Sidelnikovβs system. The method was based on the assertion that for anyone (here we approach the code as a linear space spanned by a basis of code vectors) [2] .
Denote by Reed-Muller code after applying the permutation operator to it. Then, finding in some way the permutation matrix that was used to generate the private key, it is possible by computing the matrix (this can be done, since for any permutation matrix there is an inverse), find the matrix ; since the public key in the Sidelnikov system is the matrix multiplying which by can be found [2] .
It remains only to calculate the matrix . To solve this matrix problem and are written side by side, and using linear transformations of the strings, the matrix reduced to matrix , which is known in advance for a given Reed-Muller code. As a result, there is a chain of transformations , which follows from basic information about linear algebra. Generally speaking, the matrix you donβt have to search, since itβs easy enough to show that and generate the same Reed-Muller code [2] .
Attack Essence
Minder and Shokrolllahi in their article proposed the following way to search for a permutation matrix:
- Looking for code code vectors that are very likely to belong to the code . A sufficient number of such vectors is found to construct the basis of space . The search is based on the statement that the Reed-Muller code is of order is a subspace of the same order code , as well as on the properties of code vectors with a minimum weight.
- Repeat step 1 until the code is received. .
- Rearranging columns in a certain way , it is possible to find the source code with a probability of more (a maximum of 2 iterations is required to obtain a positive result) [2] . In other words, it is possible to find the permutation operator used to generate the private key.
Temporary estimates of the hacking algorithm
In a temporary analysis of the algorithm, the number is taken as the input parameter being the dimension of the codeword. Code order relies on small compared to , since the Reed-Muller code at large orders is rather useless in terms of practical application (in particular, the number of errors it corrects with increasing becomes very small). The most computationally complex part of the entire algorithm is the search for code words with minimal weight, since all other operations are performed in a known polynomial time [2] .
Asymptotic estimate of the complexity of the algorithm: . For large orders of code the task becomes computationally difficult, since the time taken to search for code words with minimal weight increases significantly [2] .
Experimental
Minder and Shokrolllahi conducted a series of experiments on a computer with a clock frequency of 2.4 GHz [2] . The results can be seen in the table:
Operating time at is the result of an error in the implementation of the algorithm.
Sidelnikov generalized system
Sidelnikov also proposed an enhanced version of his cryptosystem using generating matrices. In other words, a public key in such a system is calculated as where the first factor is a composite matrix of size .
Minder and Shokrolllahi in their article showed that hacking a cryptosystem thus improved does not differ in complexity from hacking a cryptosystem with a single generating matrix, since breaking the code into blocks is a very simple task [2] .
See also
- McEliece
- Niederreiter Cryptosystem
Notes
- β 1 2 3 4 5 Chizhov, Borodin, 2013 .
- β 1 2 3 4 5 6 7 8 9 10 11 Minder, Shokrollahi, 2007 .
- β Sidelnikov, Shestakov, 1992 .
Literature
- Sidelnikov V. M. , Shestakov S. O. On an encryption system based on generalized Reed β Solomon codes // Diskr. mate. - 1992. - T. 4, no. 3. - S. 57β63. - ISSN 2305-3143
- Sidelnikov V. M. Open encryption based on binary Reed β Muller codes // Diskr. mate. - 1994. - T. 4, no. 3. - S. 191β207. - ISSN 2305-3143
- Minder L. , Shokrollahi A. Cryptanalysis of the Sidelnikov Cryptosystem // Advances in Cryptology - EUROCRYPT 2007 : 26th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Barcelona, ββSpain, May 20-24, 2007. Proceedings / M. Naor - Springer Berlin Heidelberg , 2007. - P. 347-360. - ( Lecture Notes in Computer Science ; Vol. 4515) - ISBN 978-3-540-72539-8 - ISSN 0302-9743 - doi: 10.1007 / 978-3-540-72540-4_20
- Chizhov I. V. , Borodin M. A. The failure of McEliece PKC based on Reed-Muller codes // Prikl. Diskr. Mat. Suppl. - Tomsk State University , 2013 .-- Iss. 6. - P. 48β49. - ISSN 2226-308X