Clever Geek Handbook
πŸ“œ ⬆️ ⬇️

Sidelnikov cryptosystem

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 dimensionskΓ—n, {\ displaystyle k \ times n,} k \ times n, Where

k=βˆ‘k=0rCmk,n=2m{\ displaystyle k = \ sum _ {k = 0} ^ {r} C_ {m} ^ {k}, n = 2 ^ {m}} k = \ sum_ {k = 0} ^ r C_m ^ k, n = 2 ^ m

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 matrixG {\ displaystyle G}   Knowing which, the cryptanalyst will be able to restore the original message. Matrices are used for these purposes.P {\ displaystyle P}   andA {\ displaystyle A}   described further in the algorithm. Computations everywhere occur ink {\ displaystyle k}   -dimensional subspace of spaceF2n {\ displaystyle \ mathbb {F} _ {2} ^ {n}}   .

The key generation process is as follows [1] :

  1. Reed-Muller code is selected with certain parametersr {\ displaystyle r}   andm {\ displaystyle m}   (Wherer {\ displaystyle r}   is the code order, and2m {\ displaystyle 2 ^ {m}}   - codeword length).
  2. Random generatednΓ—n {\ displaystyle n \ times n}   permutation matrixP {\ displaystyle P}   .
  3. Random non-degenerate generatedkΓ—k {\ displaystyle k \ times k}   matrixA {\ displaystyle A}   .
  4. The matrix is ​​calculatedE=AGP {\ displaystyle E = AGP}   .
  5. MatrixE {\ displaystyle E}   and the number of errors corrected by the codet {\ displaystyle t}   form a public key , and matrices(A,G,P) {\ displaystyle (A, G, P)}   - private key of the cryptosystem.

Encryption

For coding using linear codes (in particular, using the Reed-Muller code), an informational message must be providedm {\ displaystyle m}   as a sequence of0 {\ displaystyle 0}   andone {\ displaystyle 1}   . This bit sequence is encrypted as follows [1] :

  1. The auxiliary vector is calculateda=mE {\ displaystyle \ mathbf {a} = mE}   .
  2. An error vector is randomly generated.e {\ displaystyle \ mathbf {e}}   dimensionsn {\ displaystyle n}   containing units of no more thant=2m-r-one-one {\ displaystyle t = 2 ^ {mr-1} -1}   discharges.
  3. The transmitted ciphertext is calculated by adding the previously computed vectorsb=a+e {\ displaystyle \ mathbf {b} = \ mathbf {a} + \ mathbf {e}}   .

Decryption

The ciphertext received on the public channel is a vectorb=mE+e {\ displaystyle \ mathbf {b} = mE + \ mathbf {e}}   wherem {\ displaystyle m}   - Announcement. To decrypt a cryptogram [2] :

  1. The vector is calculatedbβ€²=bP-one {\ displaystyle \ mathbf {b} '= \ mathbf {b} P ^ {- 1}}   , which is a vector of the Reed-Muller code with a generating matrixG {\ displaystyle G}   distorted no more than int {\ displaystyle t}   discharges. Strictly speaking, the error vectore {\ displaystyle \ mathbf {e}}   with this approach, it is also multiplied by the matrixP-one {\ displaystyle P ^ {- 1}}   , but for the decoding algorithm this does not matter, since its weight during permutations, obviously, remains the same.
  2. Using any Reed-Muller code decoding algorithm, a vector is foundaβ€² {\ displaystyle \ mathbf {a} '}   satisfying the conditionbβ€²=aβ€²G+e {\ displaystyle \ mathbf {b} '= \ mathbf {a}' G + \ mathbf {e}}   .
  3. An informational message is calculated .m=aβ€²A-one {\ displaystyle m = \ mathbf {a} 'A ^ {- 1}}   .

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 thatRM(0,m)βŠ‚RM(one,m)βŠ‚...βŠ‚RM(m,m) {\ displaystyle RM (0, m) \ subset RM (1, m) \ subset \ ldots \ subset RM (m, m)}   for anyonem {\ displaystyle m}   (here we approach the code as a linear space spanned by a basis of code vectors) [2] .

Denote byRM(r,m)Ξ΄ {\ displaystyle RM (r, m) ^ {\ delta}}   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 matrixP-one {\ displaystyle P ^ {- 1}}   (this can be done, since for any permutation matrix there is an inverse), find the matrixGβˆ—=AG {\ displaystyle G ^ {*} = AG}   ; since the public key in the Sidelnikov system is the matrixAGP {\ displaystyle AGP}   multiplying which byP-one {\ displaystyle P ^ {- 1}}   can be foundGβˆ— {\ displaystyle G ^ {*}}   [2] .

It remains only to calculate the matrixA {\ displaystyle A}   . To solve this matrix problemGβˆ— {\ displaystyle G ^ {*}}   andE {\ displaystyle E}   are written side by side, and using linear transformations of the strings, the matrixGβˆ— {\ displaystyle G ^ {*}}   reduced to matrixG {\ displaystyle G}   , which is known in advance for a given Reed-Muller code. As a result, there is a chain of transformations(Gβˆ—|E)β†’(G|A-one) {\ displaystyle (G ^ {*} | E) \ rightarrow (G | A ^ {- 1})}   , which follows from basic information about linear algebra. Generally speaking, the matrixA {\ displaystyle A}   you don’t have to search, since it’s easy enough to show thatAG {\ displaystyle AG}   andG {\ displaystyle G}   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:

  1. Looking for code code vectorsRM(r,m)Ξ΄ {\ displaystyle RM (r, m) ^ {\ delta}}   that are very likely to belong to the codeRM(r-one,m)Ξ΄ {\ displaystyle RM (r-1, m) ^ {\ delta}}   . A sufficient number of such vectors is found to construct the basis of spaceRM(r-one,m)Ξ΄ {\ displaystyle RM (r-1, m) ^ {\ delta}}   . The search is based on the statement that the Reed-Muller code is of orderr {\ displaystyle r}   is a subspace of the same order coder-one {\ displaystyle r-1}   , as well as on the properties of code vectors with a minimum weight.
  2. Repeat step 1 until the code is received.RM(one,m)Ξ΄ {\ displaystyle RM (1, m) ^ {\ delta}}   .
  3. Rearranging columns in a certain wayRM(one,m)Ξ΄ {\ displaystyle RM (1, m) ^ {\ delta}}   , it is possible to find the source codeRM(one,m) {\ displaystyle RM (1, m)}   with a probability of moreone/2 {\ displaystyle 1/2}   (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 parametern=2m {\ displaystyle n = 2 ^ {m}}   being the dimension of the codeword. Code orderr {\ displaystyle r}   relies on small compared tom {\ displaystyle m}   , 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 increasingr {\ displaystyle r}   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:O(poly(n))β‹…eO(poly(log(n))) {\ displaystyle O (poly (n)) \ cdot e ^ {O (poly (log (n)))}}   . For large orders of coder {\ displaystyle r}   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:

r=2{\ displaystyle r = 2}  r=3{\ displaystyle r = 3}  r=four{\ displaystyle r = 4}  
m=5(n=32){\ displaystyle m = 5 ~ (n = 32)}  <0,01c{\ displaystyle <0 {,} 01c}  
m=6(n=64){\ displaystyle m = 6 ~ (n = 64)}  <0,01c{\ displaystyle <0 {,} 01c}  
m=7(n=128){\ displaystyle m = 7 ~ (n = 128)}  0,02c{\ displaystyle 0 {,} 02c}  5,261c{\ displaystyle 5 {,} 261c}  
m=8(n=256){\ displaystyle m = 8 ~ (n = 256)}  0,081c{\ displaystyle 0 {,} 081c}  2,059c{\ displaystyle 2 {,} 059c}  
m=9(n=512){\ displaystyle m = 9 ~ (n = 512)}  0,0448c{\ displaystyle 0 {,} 0448c}  3,462c{\ displaystyle 3 {,} 462c}  176,914c{\ displaystyle 176 {,} 914c}  
m=10(n=1024){\ displaystyle m = 10 ~ (n = 1024)}  2,46c{\ displaystyle 2 {,} 46c}  26,6c{\ displaystyle 26 {,} 6c}  82197,fourc{\ displaystyle 82197 {,} 4c}  
m=eleven(n=2048){\ displaystyle m = 11 ~ (n = 2048)}  eighteen,34c{\ displaystyle 18 {,} 34c}  1192,71c{\ displaystyle 1192 {,} 71c}  -{\ displaystyle -}  

Operating time atr=3,m=7 {\ displaystyle r = 3, m = 7}   is the result of an error in the implementation of the algorithm.

Sidelnikov generalized system

Sidelnikov also proposed an enhanced version of his cryptosystem usingu {\ displaystyle u}   generating matrices. In other words, a public key in such a system is calculated as|AGone,AG2...,AGu|P {\ displaystyle | AG_ {1}, AG_ {2} \ ldots, AG_ {u} | P}   where the first factor is a composite matrix of sizeunΓ—k {\ displaystyle un \ times k}   .

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. ↑ 1 2 3 4 5 Chizhov, Borodin, 2013 .
  2. ↑ 1 2 3 4 5 6 7 8 9 10 11 Minder, Shokrollahi, 2007 .
  3. ↑ 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
    <a href=" https://wikidata.org/wiki/Track:Q21753923 "> </a> <a href=" https://wikidata.org/wiki/Track:Q21753922 "> </a> <a href = " https://wikidata.org/wiki/Track:Q21753925 "> </a> <a href=" https://wikidata.org/wiki/Track:Q21766545 "> </a>
  • Sidelnikov V. M. Open encryption based on binary Reed – Muller codes // Diskr. mate. - 1994. - T. 4, no. 3. - S. 191–207. - ISSN 2305-3143
    <a href=" https://wikidata.org/wiki/Track:Q21753923 "> </a> <a href=" https://wikidata.org/wiki/Track:Q21766801 "> </a> <a href = " https://wikidata.org/wiki/Track:Q21753922 "> </a>
  • 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
    <a href=" https://wikidata.org/wiki/Track:Q21777805 "> </a> <a href=" https://wikidata.org/wiki/Track:Q21777804 "</a> <a href = " https://wikidata.org/wiki/Track:Q21777806 "> </a> <a href=" https://wikidata.org/wiki/Track:Q924044 "> </a> <a href = " https://wikidata.org/wiki/Track:Q6899861 "> </a> <a href=" https://wikidata.org/wiki/Track:Q4746324 "> </a> <a href = " https : //wikidata.org/wiki/Track: Q21587985 "> </a>
  • 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
    <a href=" https://wikidata.org/wiki/Track:Q21777337 "> </a> <a href=" https://wikidata.org/wiki/Track:Q742494 "> </a> <a href = " https://wikidata.org/wiki/Track:Q21777332 "> </a> <a href=" https://wikidata.org/wiki/Track:Q21777333 "> </a> <a href = " https://wikidata.org/wiki/Track:Q21777341 "> </a>
Source - https://ru.wikipedia.org/w/index.php?title=Sidelnikova_cryptosystem&oldid=102752989


More articles:

  • Abreu Julio
  • Busse, Ernst
  • Comin 'Out Fighting
  • Maslov, Leonid Petrovich
  • Moscow Regional Drama Theater named after A.N. Ostrovsky
  • Yaketichi
  • Jean II de Montmorency
  • Great Ozertsy
  • Dolgovich, Jan
  • Sacchetti, Romeo

All articles

Clever Geek | 2019