Rank error-correcting code

In coding theory, rank codes (also called Gabidulin codes) are non-binary[1] linear error-correcting codes over not Hamming but rank metric. They described a systematic way of building codes that could detect and correct multiple random rank errors. By adding redundancy with coding k-symbol word to a n-symbol word, a rank code can correct any errors of rank up to t = ⌊ (d − 1) / 2 ⌋, where d is a code distance. As an erasure code, it can correct up to d − 1 known erasures.

Rank codes
Classification
HierarchyLinear block code
Rank code
Block lengthn
Message lengthk
Distancenk + 1
Alphabet sizeQ = qN  (q prime)
Notation[n, k, d]-code
Algorithms
Berlekamp–Massey
Euclidean
with Frobenius polynomials

A rank code is an algebraic linear code over the finite field similar to Reed–Solomon code.

The rank of the vector over is the maximum number of linearly independent components over . The rank distance between two vectors over is the rank of the difference of these vectors.

The rank code corrects all errors with rank of the error vector not greater than t.

Rank metric edit

Let   be an n-dimensional vector space over the finite field  , where   is a power of a prime and   is a positive integer. Let  , with  , be a base of   as a vector space over the field  .

Every element   can be represented as  . Hence, every vector   over   can be written as matrix:

 

Rank of the vector   over the field   is a rank of the corresponding matrix   over the field   denoted by  .

The set of all vectors   is a space  . The map  ) defines a norm over   and a rank metric:

 

Rank code edit

A set   of vectors from   is called a code with code distance  . If the set also forms a k-dimensional subspace of  , then it is called a linear (n, k)-code with distance  . Such a linear rank metric code always satisfies the Singleton bound   with equality.

Generating matrix edit

There are several known constructions of rank codes, which are maximum rank distance (or MRD) codes with d = n − k + 1. The easiest one to construct is known as the (generalized) Gabidulin code, it was discovered first by Delsarte (who called it a Singleton system) and later by Gabidulin [2] (and Kshevetskiy [3] ).

Let's define a Frobenius power   of the element   as

 

Then, every vector  , linearly independent over  , defines a generating matrix of the MRD (n, k, d = n − k + 1)-code.

 

where  .

Applications edit

There are several proposals for public-key cryptosystems based on rank codes. However, most of them have been proven insecure (see e.g. Journal of Cryptology, April 2008[4]).

Rank codes are also useful for error and erasure correction in network coding.

See also edit

Notes edit

  1. ^ Codes for which each input symbol is from a set of size greater than 2.
  2. ^ Gabidulin, Ernst M. (1985). "Theory of codes with maximum rank distance". Problems of Information Transmission. 21 (1): 1–12.
  3. ^ Kshevetskiy, Alexander; Gabidulin, Ernst M. (4–9 September 2005). "The new construction of rank codes". Proceedings. International Symposium on Information Theory, 2005. ISIT 2005. pp. 2105–2108. doi:10.1109/ISIT.2005.1523717. ISBN 978-0-7803-9151-2. S2CID 11679865.
  4. ^ Overbeck, R. (2008). "Structural Attacks for Public Key Cryptosystems based on Gabidulin Codes". Journal of Cryptology. 21 (2): 280–301. doi:10.1007/s00145-007-9003-9. S2CID 2393853.

References edit

External links edit