Rank error-correcting code
Rank codes | |
---|---|
Classification | |
Hierarchy | Linear block code Rank code |
Block length | n |
Message length | k |
Distance | n − k + 1 |
Alphabet size | Q = qN (q prime) |
Notation | [n, k, d]-code |
Algorithms | |
Berlekamp–Massey Euclidean with Frobenius polynomials | |
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.
A rank code is an algebraic linear code over the finite field [math]\displaystyle{ GF(q^N) }[/math] similar to Reed–Solomon code.
The rank of the vector over [math]\displaystyle{ GF(q^N) }[/math] is the maximum number of linearly independent components over [math]\displaystyle{ GF(q) }[/math]. The rank distance between two vectors over [math]\displaystyle{ GF(q^N) }[/math] 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 [math]\displaystyle{ X^n }[/math] be an n-dimensional vector space over the finite field [math]\displaystyle{ GF\left( {q^N } \right) }[/math], where [math]\displaystyle{ q }[/math] is a power of a prime and [math]\displaystyle{ N }[/math] is a positive integer. Let [math]\displaystyle{ \left(u_1, u_2, \dots, u_N\right) }[/math], with [math]\displaystyle{ u_i \in GF(q^N) }[/math], be a base of [math]\displaystyle{ GF\left( {q^N } \right) }[/math] as a vector space over the field [math]\displaystyle{ GF\left( {q} \right) }[/math].
Every element [math]\displaystyle{ x_i \in GF\left( {q^N } \right) }[/math] can be represented as [math]\displaystyle{ x_i = a_{1i}u_1 + a_{2i}u_2 + \dots + a_{Ni}u_N }[/math]. Hence, every vector [math]\displaystyle{ \vec x = \left( {x_1, x_2, \dots, x_n } \right) }[/math] over [math]\displaystyle{ GF\left( {q^N } \right) }[/math] can be written as matrix:
- [math]\displaystyle{ \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\| }[/math]
Rank of the vector [math]\displaystyle{ \vec x }[/math] over the field [math]\displaystyle{ GF\left( {q^N} \right) }[/math] is a rank of the corresponding matrix [math]\displaystyle{ A\left( {\vec x} \right) }[/math] over the field [math]\displaystyle{ GF\left( {q} \right) }[/math] denoted by [math]\displaystyle{ r\left( {\vec x; q} \right) }[/math].
The set of all vectors [math]\displaystyle{ \vec x }[/math] is a space [math]\displaystyle{ X^n = A_N^n }[/math]. The map [math]\displaystyle{ \vec x \to r\left( \vec x; q \right) }[/math]) defines a norm over [math]\displaystyle{ X^n }[/math] and a rank metric:
- [math]\displaystyle{ d\left( {\vec x;\vec y} \right) = r\left( {\vec x - \vec y;q} \right) }[/math]
Rank code
A set [math]\displaystyle{ \{x_1, x_2, \dots, x_n\} }[/math] of vectors from [math]\displaystyle{ X^n }[/math] is called a code with code distance [math]\displaystyle{ d = \min d\left( x_i ,x_j \right) }[/math]. If the set also forms a k-dimensional subspace of [math]\displaystyle{ X^n }[/math], then it is called a linear (n, k)-code with distance [math]\displaystyle{ d }[/math]. Such a linear rank metric code always satisfies the Singleton bound [math]\displaystyle{ d \leq n - k + 1 }[/math] with equality.
Generating matrix
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 [math]\displaystyle{ [i] }[/math] of the element [math]\displaystyle{ x \in GF(q^N) }[/math] as
- [math]\displaystyle{ x^{[i]} = x^{q^{i \mod N}}. \, }[/math]
Then, every vector [math]\displaystyle{ \vec g = (g_1, g_2, \dots, g_n), ~ g_i \in GF(q^N), ~ n \leq N }[/math], linearly independent over [math]\displaystyle{ GF(q) }[/math], defines a generating matrix of the MRD (n, k, d = n − k + 1)-code.
- [math]\displaystyle{ 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\|, }[/math]
where [math]\displaystyle{ \gcd(m,N) = 1 }[/math].
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[4]).
Rank codes are also useful for error and erasure correction in network coding.
See also
- Linear code
- Reed–Solomon error correction
- Berlekamp–Massey algorithm
- Network coding
Notes
- ↑ Codes for which each input symbol is from a set of size greater than 2.
- ↑ Gabidulin, Ernst M. (1985). "Theory of codes with maximum rank distance". Problems of Information Transmission 21 (1): 1–12. http://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=ppi&paperid=967&option_lang=eng.
- ↑ 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.
- ↑ 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.
References
- Gabidulin, Ernst M. (1985), "Theory of codes with maximum rank distance", Problems of Information Transmission 21 (1): 1–12, http://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=ppi&paperid=967&option_lang=eng
- 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.
- Gabidulin, Ernst M.; Pilipchuk, Nina I. (June 29 – July 4, 2003). "A new method of erasure correction by rank codes". IEEE International Symposium on Information Theory, 2003. Proceedings.. pp. 423. doi:10.1109/ISIT.2003.1228440. ISBN 978-0-7803-7728-8.
External links
Original source: https://en.wikipedia.org/wiki/Rank error-correcting code.
Read more |