Clever Geek Handbook
📜 ⬆️ ⬇️

GPT cryptosystem

The GPT cryptosystem ( Gabidulina-Paramonova-Tretyakov ) is a public -key cryptosystem based on rank codes [1] , developed in 1991 by E. M. Gabidulin , A. V. Paramonov and O. V. Tretyakov [2] based on the cryptosystem McEliece .

This cryptosystem, unlike the McEliece cryptosystem, is more resistant to decoding attacks, and also has a smaller key size [3] , which is better suited for practical use.

Most versions of the system were hacked by R. Overbeck [4] .

Content

Description

Clear Text

As plain text, anyk {\ displaystyle k}   -vectorm=(mone,m2,...,mk) {\ displaystyle m = (m_ {1}, m_ {2}, ..., m_ {k})}   ,ms∈FqN,s=one,2,...,k {\ displaystyle m_ {s} \ in \ mathbb {F} _ {q ^ {N}}, s = 1,2, ..., k}   .

Public Key

The public key is a size generating matrixk×(n+tone) {\ displaystyle k \ times (n + t_ {1})}   :

Gpub=S[X{\ displaystyle G_ {pub} = S [X}  Gk]P {\ displaystyle G_ {k}] P}   ,

Where:

  • Gk{\ displaystyle G_ {k}}   - generating matrix(n,k,d) {\ displaystyle (n, k, d)}   code with maximum rank distanced {\ displaystyle d}   for code lengthn≤N {\ displaystyle n \ leq N}   with number of charactersk {\ displaystyle k}   defined by a matrix of the following form:
Gk=[goneg2⋯gngone[one]g2[one]⋯gn[one]⋮⋮⋱⋮gone[k-one]g2[k-one]⋯gn[k-one]]{\ displaystyle G_ {k} = {\ begin {bmatrix} g_ {1} & g_ {2} & \ cdots & g_ {n} \\ g_ {1} ^ {[1]} & g_ {2} ^ {[1] } & \ cdots & g_ {n} ^ {[1]} \\\ vdots & \ vdots & \ ddots & \ vdots \\ g_ {1} ^ {[k-1]} & g_ {2} ^ {[k- 1]} & \ cdots & g_ {n} ^ {[k-1]} \ end {bmatrix}}}  
Wheregone,g2,...,gn {\ displaystyle g_ {1}, g_ {2}, ..., g_ {n}}   - any set of elements of the extended fieldFqN {\ displaystyle \ mathbb {F} _ {q ^ {N}}}   linearly independent over the fieldFq {\ displaystyle \ mathbb {F} _ {q}}   .
main matrixGk {\ displaystyle G_ {k}}   used to correct errors. Errors of a rank no moren-k2 {\ displaystyle {\ tfrac {nk} {2}}}   can be fixed.
  • String scramblerS {\ displaystyle S}   Is a non-degenerate square order matrixk {\ displaystyle k}   over the fieldFqN {\ displaystyle \ mathbb {F} _ {q ^ {N}}}  
  • X{\ displaystyle X}   - size distortion matrix(k×tone) {\ displaystyle (k \ times {t_ {1}})}   over the fieldFqN {\ displaystyle \ mathbb {F} _ {q ^ {N}}}   with column rankRkcol(X {\ displaystyle Rk_ {col} (X}   |Fq)=tone {\ displaystyle \ mathbb {F} _ {q}) = t_ {1}}   and rankRk(X {\ displaystyle Rk (X}   |FqN)=tX, {\ displaystyle \ mathbb {F} _ {q ^ {N}}) = t_ {X},}  tX≤tone {\ displaystyle t_ {X} \ leq t_ {1}}   .
Matrix[X {\ displaystyle [X}  Gk] {\ displaystyle G_ {k}]}   has a column rankRkcol([X {\ displaystyle Rk_ {col} ([X}  Gk] {\ displaystyle G_ {k}]}   |Fq)=n+tone {\ displaystyle \ mathbb {F} _ {q}) = n + t_ {1}}   .
  • Column scramblerP {\ displaystyle P}   - square order matrix(tone+n) {\ displaystyle (t_ {1} + n)}   over the fieldFq {\ displaystyle \ mathbb {F} _ {q}}   .
  • tone+n{\ displaystyle t_ {1} + n}   maybe moreN {\ displaystyle N}   butn≤N {\ displaystyle n \ leq N}   .

Private Key

The private key is a set(S,Gk,X,P) {\ displaystyle (S, G_ {k}, X, P)}   as well as an algorithm for fast decoding of MPP code, which uses a parity check matrixH(n-k)×n {\ displaystyle H ^ {(nk) \ times n}}   such thatGkHT=0: {\ displaystyle G_ {k} H ^ {T} = 0:}  

H=[honeh2⋯hnhone[one]h2[one]⋯hn[one]⋮⋮⋱⋮hone[d-2]h2[d-2]⋯hn[d-2]]{\ displaystyle H = {\ begin {bmatrix} h_ {1} & h_ {2} & \ cdots & h_ {n} \\ h_ {1} ^ {[1]} & h_ {2} ^ {[1]} & \ cdots & h_ {n} ^ {[1]} \\\ vdots & \ vdots & \ ddots & \ vdots \\ h_ {1} ^ {[d-2]} & h_ {2} ^ {[d-2]} & \ cdots & h_ {n} ^ {[d-2]} \ end {bmatrix}}}   ,
Wherehone,h2,...,hn {\ displaystyle h_ {1}, h_ {2}, ..., h_ {n}}   - elements of the extended fieldFqN {\ displaystyle \ mathbb {F} _ {q ^ {N}}}   linearly independent over the main fieldFq {\ displaystyle \ mathbb {F} _ {q}}  
MatrixX {\ displaystyle X}   It is not used to decrypt crypto text and can be deleted after calculating the private key.

Optimal code parameters

  • Code lengthn≤N {\ displaystyle n \ leq N}   ,
  • Dimensionk=n-d+one {\ displaystyle k = n-d + 1}   ,
  • Code Rank Distanced=n-k+one {\ displaystyle d = n-k + 1}  

Encryption

The corresponding plaintext cryptotext is calculated as follows:

c=mGpub+e=mS[X{\ displaystyle c = mG_ {pub} + e = mS [X}  Gk]P+e {\ displaystyle G_ {k}] P + e}   ,

Wheree {\ displaystyle e}   - artificial error vector of rank not highert2 {\ displaystyle t_ {2}}   , andtone+t2≤t=⌊n- k 2 ⌋ {\ displaystyle t_ {1} + t_ {2} \ leq t = \ lfloor {\ tfrac {nk} {2}} \ rfloor}   .

Decryption

Legal recipient receivingc {\ displaystyle c}   , performs the following actions:

  1. Calculatesc′=(cone′,c2′,...,ctone+n′)=cP-one=mS[X {\ displaystyle c '= (c_ {1}', c_ {2} ', ..., c_ {t_ {1} + n}') = cP ^ {- 1} = mS [X}  Gk]+eP-one {\ displaystyle G_ {k}] + eP ^ {- 1}}  
  2. Ofc′ {\ displaystyle c '}   selects a subvectorc″=(ctone+one′,ctone+2′,...,ctone+n′)=mSGk+e″ {\ displaystyle c '' = (c_ {t_ {1} +1} ', c_ {t_ {1} +2}', ..., c_ {t_ {1} + n} ') = mSG_ {k} + e ''}   wheree″ {\ displaystyle e ''}   - subvectoreP-one {\ displaystyle eP ^ {- 1}}  
  3. Applies fast decoding algorithm to correct errore″ {\ displaystyle e ''}  
  4. GetsmS {\ displaystyle mS}  
  5. Restoresm=(mS)S-one {\ displaystyle m = (mS) S ^ {- 1}}  

In this system, the size of the public key isV=k(tone+n)N {\ displaystyle V = k (t_ {1} + n) N}   bit, and information transfer rateR=ktone+n {\ displaystyle R = {\ tfrac {k} {t_ {1} + n}}}   .

Hacking

Frobenius automorphism

We introduce the Frobenius automorphism :σ(x)=xq, {\ displaystyle \ sigma (x) = x ^ {q},}  x∈FqN {\ displaystyle x \ in \ mathbb {F} _ {q ^ {N}}}   . It has the following properties:

  1. For matrixL=(lij) {\ displaystyle L = (l_ {ij})}   over the same fieldσ(L)=(σ(lij))=(lijq) {\ displaystyle \ sigma (L) = (\ sigma (l_ {ij})) = (l_ {ij} ^ {q})}  
  2. For any integer s :σs(L)=σ(σs-one(L)) {\ displaystyle \ sigma ^ {s} (L) = \ sigma (\ sigma ^ {s-1} (L))}  
  3. σN=σ{\ displaystyle \ sigma ^ {N} = \ sigma}  
  4. σ-one=σN-one{\ displaystyle \ sigma ^ {- 1} = \ sigma ^ {N-1}}  
  5. σ(a+b)=σ(a)+σ(b){\ displaystyle \ sigma (a + b) = \ sigma (a) + \ sigma (b)}  
  6. σ(ab)=σ(a)σ(b){\ displaystyle \ sigma (ab) = \ sigma (a) \ sigma (b)}  
  7. In generalσ(L)≠L {\ displaystyle \ sigma (L) \ neq L}   . Equality is achieved ifL {\ displaystyle L}   - matrix above the main fieldFq {\ displaystyle \ mathbb {F} _ {q}}  

Overback attack description [4]

  • The cryptanalyst calculates the extended public key from the public key:
Gext,pub=‖Gpubσ(Gpub)⋯σu(Gpub)‖=‖S[XGk]Pσ(S)[σ(X)σ(Gk)]P⋯⋯⋯⋯σu(S)[σu(X)σu(Gk]P‖{\ displaystyle G_ {ext, pub} = {\ begin {Vmatrix} G_ {pub} \\\ sigma (G_ {pub}) \\\ cdots \\\ sigma ^ {u} (G_ {pub}) \ end {Vmatrix}} = {\ begin {Vmatrix} S & [X & G_ {k}] & P \\\ sigma (S) & [\ sigma (X) & \ sigma (G_ {k})] & P \\\ cdots & \ cdots & \ cdots & \ cdots \\\ sigma ^ {u} (S) & [\ sigma ^ {u} (X) & \ sigma ^ {u} (G_ {k}] & P \ end {Vmatrix}}}  
Here property 7 of the Frobenius automorphism is used:σ(P)=P {\ displaystyle \ sigma (P) = P}   , becauseP {\ displaystyle P}   - matrix above the main fieldFq {\ displaystyle \ mathbb {F} _ {q}}   .
  • Rewrites this matrix asGext,pub=Sext[Xext {\ displaystyle G_ {ext, pub} = S_ {ext} [X_ {ext}}  Gext] {\ displaystyle G_ {ext}]}   ,
Where
Sext=diag[Sσ(S)⋯σu(S)]{\ displaystyle S_ {ext} = diag {\ begin {bmatrix} S & \ sigma (S) & \ cdots & \ sigma ^ {u} (S) \ end {bmatrix}}}   ,
Xext=[Xσ(X)⋮σu(X)]{\ displaystyle X_ {ext} = {\ begin {bmatrix} X \\\ sigma (X) \\\ vdots \\\ sigma ^ {u} (X) \ end {bmatrix}}}   ,Gext=[Gkσ(Gk)⋮σu(Gk)] {\ displaystyle G_ {ext} = {\ begin {bmatrix} G_ {k} \\\ sigma (G_ {k}) \\\ vdots \\\ sigma ^ {u} (G_ {k}) \ end {bmatrix }}}   .
  • Selectsu=n-k-one {\ displaystyle u = nk-1}   .
  • Defines matrices:
Xone(k-one×tone){\ displaystyle X_ {1} ^ {(k-1 \ times t_ {1})}}   derived fromX(k×tone) {\ displaystyle X ^ {(k \ times t_ {1})}}   deleting the last line,
X2(k-one×tone){\ displaystyle X_ {2} ^ {(k-1 \ times t_ {1})}}   derived fromX(k×tone) {\ displaystyle X ^ {(k \ times t_ {1})}}   deleting the first line.
  • Defines a linear display.T {\ displaystyle T}   :FqNk×tone→FqN(k-one)×tone {\ displaystyle \ mathbb {F} _ {q ^ {N}} ^ {k \ times t_ {1}} \ rightarrow \ mathbb {F} _ {q ^ {N}} ^ {(k-1) \ times t_ {1}}}   according to the following rule:
if aX∈FqNk×tone {\ displaystyle X \ in \ mathbb {F} _ {q ^ {N}} ^ {k \ times t_ {1}}}   thenT(X)=Y=σ(Xone)-X2 {\ displaystyle T (X) = Y = \ sigma (X_ {1}) - X_ {2}}  
  • Writes downYext=[Yσ(Y)σ2(Y)⋯σu-one(Y)]⊤ {\ displaystyle Y_ {ext} = {\ begin {bmatrix} Y & \ sigma (Y) & \ sigma ^ {2} (Y) & \ cdots & \ sigma ^ {u-1} (Y) \ end {bmatrix} } ^ {\ top}}  
  • Using matrix transformations, the extended public key is brought to the form:
G~pub,ext=S~ext[Z|Gn-oneYext|0]P{\ displaystyle {\ widetilde {G}} _ {pub, ext} = {\ widetilde {S}} _ {ext} {\ begin {bmatrix} Z & | & G_ {n-1} \\ Y_ {ext} & | & 0 \ end {bmatrix}} P}  
WhereGn-one {\ displaystyle G_ {n-1}}   - generating matrix(n,n-one,2) {\ displaystyle (n, n-1,2)}   MPP code.
  • Trying to find a solution to the system.
S~ext=[Z|Gn-oneYext|0]PuT=0{\ displaystyle {\ widetilde {S}} _ {ext} = {\ begin {bmatrix} Z & | & G_ {n-1} \\ Y_ {ext} & | & 0 \ end {bmatrix}} Pu ^ {T} = 0}   ,
Whereu {\ displaystyle u}   - row vector above the extended fieldFqN {\ displaystyle \ mathbb {F} _ {q ^ {N}}}   lengthstone+n {\ displaystyle t_ {1} + n}  
  • Represents VectorPuT {\ displaystyle Pu ^ {T}}   as:
PuT=[yh]⊤{\ displaystyle Pu ^ {T} = {\ begin {bmatrix} y & h \ end {bmatrix}} ^ {\ top}}  
Wherey {\ displaystyle y}   - length sub-vectortone {\ displaystyle t_ {1}}   , buth {\ displaystyle h}   - lengthsn {\ displaystyle n}  
  • Now the system of equations is equivalent to the following:
{ZyT+Gn-onehT=0,YextyT=0{\ displaystyle {\ begin {cases} Zy ^ {T} + G_ {n-1} h ^ {T} = 0, \\ Y_ {ext} y ^ {T} = 0 \ end {cases}}}  
  • Assuming the condition is trueRk(Yext|FqN)=tone {\ displaystyle Rk (Y_ {ext} | \ mathbb {F} _ {q ^ {N}}) = t_ {1}}   , we see that the above system has only a trivial solutionyT=0 {\ displaystyle y ^ {T} = 0}   . Therefore, the first equation from the system is converted to the form:
Gn-onehT=0{\ displaystyle G_ {n-1} h ^ {T} = 0}   .

This will allow you to find the first row of the parity check matrix for the code with this generating matrixG~pub,ext {\ displaystyle {\ widetilde {G}} _ {pub, ext}}   . Therefore, this solution breaks the described cryptosystem in polynomial time. Overbeck attack requiresO((n+tone)3) {\ displaystyle O ((n + t_ {1}) ^ {3})}   field operationsFqN {\ displaystyle \ mathbb {F} _ {q ^ {N}}}   , since each attack step has a complexity not higher than cubic onn+tone {\ displaystyle n + t_ {1}}   .

Notes

  1. ↑ Gabidulin E. M. Theory of Codes with Maximum Rank Distance (Unavailable Link) // Probl. transmission inform. - 1985. - T. 21, no. 1 .-- S. 3-16.
  2. ↑ Gabidulin EM, Paramonov AV, Tretjakov OV Ideals over a Non-commutative Ring and Their Application in Cryptology // Advances in Cryptology - Eurocrypt '91, LNCS 547, 1991, pp. 482-489.
  3. ↑ Khan E., Gabidulin EM, Honary B., Ahmed H. Modified Niederreiter type of GPT Cryptosystem based on Reducible Rank Codes // et al. Des. Codes Cryptogr. (2014) 70: 231. - ISSN 0925-1022
  4. ↑ 1 2 Overbeck R. Structural Attacks for Public Key Cryptosystems based on Gabidulin Codes // Journal of Cryptology : volume 21, number 2, april 2008 - ISSN 0933-2790

Literature

  • Gabidulin, E. M., Pilipchuk, N.I., Honari B., and Rashvan H. Information Security in a Network with Random Network Encoding // Probl. transmission inform. , 2013, Volume 49, Issue 2, 92-106
  • Gadouleau M., Yan Zh. Security of GPT-type cryptosystems // Proc. 2006 IEEE Int. Sympos. on Information Theory (ISIT'2006) . - ISIT.2006.261627
  • Rashwan H., Gabidulin EM, Honary B. A smart approach for GPT Cryptosystem Based on Rank Codes // Proc. 2010 IEEE Int. Sympos. on Information Theory (ISIT'2010). Austin, Texas, USA. June 13-18, 2010. P. 2463-2467.
  • Kshevetskiy AS Security of GPT-like cryptosystems based on linear rank codes // Signal Design and Its Applications in Communications, 2007. IWSDA 2007 . On page (s): 143-147.
  • Ourivski AV, Gabidulin EM Column Scrambler for the GPT Cryptosystem // Discrete Applied Mathematics. 128 (1): 207-221 (2003).
  • Overbeck R. Extending Gibson's attacks on the GPT cryptosystem // In Proc. of WCC 2005, volume 3969 of LNCS, pp. 178-188, Springer Verlag, 2006.
Source - https://ru.wikipedia.org/w/index.php?title= GPT cryptosystem&oldid = 97705522


More articles:

  • Mabergs, Patrick
  • Mazalov, Vladimir Vladimirovich
  • Old Frisian language
  • Yorgachevich, Boyan
  • 425
  • Freight
  • Urbanovich, Josip Pavlovich
  • Musig
  • Medusa (Supergirl)
  • Wiedemann Algorithm

All articles

Clever Geek | 2019