Rank error-correcting code

Error-correcting code


title: "Rank error-correcting code" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["error-detection-and-correction", "coding-theory"] description: "Error-correcting code" topic_path: "general/error-detection-and-correction" source: "https://en.wikipedia.org/wiki/Rank_error-correcting_code" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0

::summary Error-correcting code ::

::data[format=table title="infobox code"]

FieldValue
nameRank codes
hierarchyLinear block code
Rank code
block_lengthn
message_lengthk
distancenk + 1
alphabet_sizeQ = q**N (q prime)
notation[n, k, d]-code
decodingBerlekamp–Massey
Euclidean
with Frobenius polynomials
::

| name = Rank codes | image = | image_caption = | hierarchy = Linear block code Rank code | block_length = n | message_length = k | distance = nk + 1 | alphabet_size = Q = q**N (q prime) | notation = [n, k, d]-code | decoding = Berlekamp–Massey Euclidean with Frobenius polynomials

In coding theory, rank codes (also called Gabidulin codes) are non-binary 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.

A rank code is an algebraic linear code over the finite field GF(q^N) similar to Reed–Solomon code.

The rank of the vector over GF(q^N) is the maximum number of linearly independent components over GF(q). The rank distance between two vectors over GF(q^N) 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

Let X^n be an n-dimensional vector space over the finite field GF\left( {q^N } \right), where q is a power of a prime and N is a positive integer. Let \left(u_1, u_2, \dots, u_N\right), with u_i \in GF(q^N), be a base of GF\left( {q^N } \right) as a vector space over the field GF\left( {q} \right).

Every element x_i \in GF\left( {q^N } \right) can be represented as x_i = a_{1i}u_1 + a_{2i}u_2 + \dots + a_{Ni}u_N. Hence, every vector \vec x = \left( {x_1, x_2, \dots, x_n } \right) over GF\left( {q^N } \right) can be written as matrix:

: \vec x = \left| {\begin{array}{*{20}c} a_{1,1} & a_{1,2} & \ldots & a_{1,n} \ a_{2,1} & a_{2,2} & \ldots & a_{2,n} \ \ldots & \ldots & \ldots & \ldots \ a_{N,1} & a_{N,2} & \ldots & a_{N,n} \end{array}} \right|

Rank of the vector \vec x over the field GF\left( {q^N} \right) is a rank of the corresponding matrix A\left( {\vec x} \right) over the field GF\left( {q} \right) denoted by r\left( {\vec x; q} \right).

The set of all vectors \vec x is a space X^n = A_N^n. The map \vec x \to r\left( \vec x; q \right)) defines a norm over X^n and a rank metric:

: d\left( {\vec x;\vec y} \right) = r\left( {\vec x - \vec y;q} \right)

Rank code

A set {x_1, x_2, \dots, x_n} of vectors from X^n is called a code with code distance d = \min d\left( x_i ,x_j \right). If the set also forms a k-dimensional subspace of X^n, then it is called a linear (n, k)-code with distance d. Such a linear rank metric code always satisfies the Singleton bound d \leq n - k + 1 with equality.

Generating matrix

There are several known constructions of rank codes, which are maximum rank distance (or MRD) codes with d = nk + 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 (and Kshevetskiy ).

Let's define a Frobenius power [i] of the element x \in GF(q^N) as

: x^{[i]} = x^{q^{i \mod N}}. ,

Then, every vector \vec g = (g_1, g_2, \dots, g_n), ~ g_i \in GF(q^N), ~ n \leq N, linearly independent over GF(q), defines a generating matrix of the MRD (n, k, d = nk + 1)-code.

: G = \left| {\begin{array}{*{20}c} g_1 & g_2 & \dots & g_n \ g_1^{[m]} & g_2^{[m]} & \dots & g_n^{[m]} \ g_1^{[2 m]} & g_2^{[2 m]} & \dots & g_n^{[2 m]} \ \dots & \dots & \dots & \dots \ g_1^{[(k-1) m]} & g_2^{[(k-1) m]} & \dots & g_n^{[(k-1) m]} \end{array}} \right|,

where \gcd(m,N) = 1.

Applications

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).

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

Notes

References

  • {{Citation |first=Ernst M. |last=Gabidulin |title=Theory of codes with maximum rank distance |journal=Problems of Information Transmission |volume=21 |issue=1 |year=1985 |pages=1–12 |url=http://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=ppi&paperid=967&option_lang=eng
  • {{Cite book|first1= Alexander |last1= Kshevetskiy |first2= Ernst M. |last2= Gabidulin |title= Proceedings. International Symposium on Information Theory, 2005. ISIT 2005 |chapter= The new construction of rank codes |date=4–9 September 2005 |pages=2105–2108 |isbn = 978-0-7803-9151-2 |doi= 10.1109/ISIT.2005.1523717 |s2cid= 11679865
  • {{Cite book|first1= Ernst M. |last1= Gabidulin |first2= Nina I. |last2= Pilipchuk |title= IEEE International Symposium on Information Theory, 2003. Proceedings. |chapter= A new method of erasure correction by rank codes |date=June 29 – July 4, 2003 |pages=423 |isbn = 978-0-7803-7728-8 |doi= 10.1109/ISIT.2003.1228440 |s2cid= 122552232

References

  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.
  3. (4–9 September 2005). "Proceedings. International Symposium on Information Theory, 2005. ISIT 2005".
  4. (2008). "Structural Attacks for Public Key Cryptosystems based on Gabidulin Codes". Journal of Cryptology.

::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::

error-detection-and-correctioncoding-theory