WCSIT GrobenerCoding

advertisement
World of Computer Science and Information Technology Journal (WCSIT)
ISSN: 2221-0741
Vol. 5, No. XXX, XXX-XXX, 2015
Decoding Error Correcting Codes
Using Groebner Bases
Thomas Risse
Institute of Informatics and Automation
Hochschule Bremen, University of Applied Sciences, Bremen, Germany
Abstract——In the past Groebner bases have been proved to be a very potent tool to solve a variety of problems first of all in
mathematics but also in science and engineering. Hence, it is near at hand to study application of Groebner bases in coding, i.e. the
encoding and especially the decoding of linear error correcting codes. This paper attempts an overview focusing on Reed-Solomon
codes and Goppa codes together with their coding and decoding algorithms.
Keywords- Groebner bases, error correcting codes, decoding, Reed-Solomon codes, Goppa codes
I.
{𝑔1 , … , 𝑔𝑡 } is a Groebner basis if and only if 𝐿𝑇(𝑓) is divisible
by one of the 𝐿𝑇(𝑔𝑖 ) for any 𝑓 in 𝐼. By the way, 𝐺 then has the
minimality properties of a proper ideal basis. Furthermore, 𝐺 is
unique, and any 𝑓 in 𝑅 can be written as 𝑓 = 𝑔 + 𝑟 for unique
polynomials 𝑔 and 𝑟 with 𝑔 in 𝐼 and no term of 𝑟 is divisible
by any element of 𝐿𝑇(𝑔𝑖 ).
INTRODUCTION (HEADING 1)
A Groebner basis (according to Bruno Buchberger, 1965)
or a standard basis (according to Heisuke Hironaka, 1964) is a
finite generating set of an ideal 𝐼 in the polynomial ring 𝑅 =
𝐾[𝑥1 , … , 𝑥𝑛 ] over a field K. For any such ideal the (reduced)
Groebner basis is unique and can be determined
algorithmically. This basis allows solving some prominent
mathematical problems, e.g. to decide whether some
polynomial belongs to 𝐼 or not, whether two ideals are
identical, whether two varieties are identical or not etc. In his
seminal thesis [5] Buchberger developed the theory and
presented the necessary algorithms. He also investigated
applications [7] of Groebner bases like solving systems of
multivariate polynomial equations.
B. B. Algorithms [11]
Buchberger’s algorithm computes a (not reduced) Groebner
basis for an ideal 𝐼 = ⟨𝑓1 , … 𝑓𝑠 ⟩.using sysygy- or S-polynomials
𝐿𝐶𝑀(𝐿𝑀(𝑓),𝐿𝑀(𝑔))
In the eighties the rapid development of computers spurred
further investigation of Groebner bases which resulted in
improvements of the algorithms and even more applications
[7]. Especially Computer Algebra Systems benefitted [9] from
Groebner bases. But Groebner bases also brought forth
progress in coding and cryptography.
II.
𝐿𝐶𝑀(𝐿𝑀(𝑓),𝐿𝑀(𝑔))
𝑆(𝑓, 𝑔) =
𝑓−
𝑔 for any two
𝐿𝑇(𝑓)
𝐿𝑇(𝑔)
polynomials 𝑓 and 𝑔 in 𝑅 together with a generalization of the
polynomial division algorithm for polynomials in one variable
to the case of multivariate polynomials 𝑓, 𝑓1 , … , 𝑓𝑠 , 𝑟 in 𝑅 such
that 𝑓 = 𝑎1 𝑓1 + ⋯ + 𝑎𝑠 𝑓𝑠 + 𝑟 where the remainder 𝑟 =
𝑓 ̅ {𝑓1 ,…,𝑓𝑠} is zero or a 𝐾-linear combination of monomials none
of which is divisible by any 𝐿𝑇(𝑓1 ), … , 𝐿𝑇(𝑓𝑠 ) – all in the usual
notation of [11][21] et al. With these definitions Buchberger’s
algorithm can now be specified.
input: 𝐹 = (𝑓1 , … , 𝑓𝑠 ) ⊂ 𝐾[𝑥1 , … , 𝑥𝑛 ]
output: 𝐺 = (𝑔1 , … , 𝑔𝑡 ) with ⟨𝐹⟩ = ⟨𝐺⟩
repeat
𝐺′ ≔ 𝐺
for each {𝑝, 𝑞} ⊂ 𝐺 ′ , 𝑝 ≠ 𝑞 do
𝑆 ∶= ̅̅̅̅̅̅̅̅̅
𝑆(𝑝, 𝑞)𝐺
if 𝑆 ≠ 0 then 𝐺 ∶= 𝐺 ∪ {𝑆}
until 𝐺 = 𝐺 ′
GROEBNER BASES
A. Definitions [11]
Let 𝐼 be some ideal in 𝑅 = 𝐾[𝑥1 , … , 𝑥𝑛 ]. Then by Hilberts
basis theorem, 𝐼 is finitely generated, i.e. 𝐼 = ⟨𝑓1 , … 𝑓𝑠 ⟩. Now
fix some monomial order on the monomials in 𝑅 to be able to
specify leading monomials 𝐿𝑀(𝑓), leading terms 𝐿𝑇(𝑓) and
leading coefficients 𝐿𝐶(𝑓) for any 𝑓 in 𝑅 . Then a Groebner
basis 𝐺 for 𝐼 is a set 𝐺 = {𝑔1 , … , 𝑔𝑡 } with 𝐼 = ⟨𝐺⟩ so that the
ideal generated by the leading terms of the elements in 𝐼 is
generated by the leading terms 𝐿𝑇(𝑔) for 𝑔 in 𝐺 ,
i.e. ⟨𝐿𝑇(𝑔1 ), … , 𝐿𝑇(𝑔𝑡 )⟩ = ⟨𝐿𝑇(𝐼)⟩ . Equivalently, 𝐺 =
Code snippet 1.
1
Computation of 𝐺 with ⟨𝐺⟩ = ⟨𝐹⟩
WCSIT 5 (X), XX -XX, 2015
Obviously, this very simple version of Buchberger’s
algorithm extends the given set 𝐹 to 𝐺 . A reduction step
removes superfluous elements from 𝐺 resulting in the unique
reduced Groebner basis of 𝐼 . There are improved versions
Error! Reference source not found. to compute the unique,
reduced Groebner basis of 𝐼 efficiently.
original 𝑐 (and then to the original information word 𝑢 ) is
difficult. In fact, it is NP-complete Error! Reference source
not found.. However, for many specific (linear) codes there
exist efficient decoding algorithms.
A. (Generalized) Reed-Solomon Codes
(Generalized) Reed-Solomon codes, RS and gRS, are an
important class of codes comprising many other important
codes. Such code 𝒞𝑔𝑅𝑆 is specified by its 𝑛 distinct non-zero
code locators 𝛼1 , … , 𝛼𝑛 ∈ 𝔽 and 𝑛 column multipliers
𝑣1 , … , 𝑣𝑛 ∈ 𝔽. Then the parity matrix 𝐻𝑔𝑅𝑆 of 𝒞𝑔𝑅𝑆 is defined
by
C. Applications [11]
First, one should note that the concept of Groebner bases
generalizes both Euclid’s algorithm to compute the greatest
common divisor, gcd, of two polynomials as well as Gauß’s
algorithm to solve a system of linear equations.
Euclids algorithm
𝐻𝑔𝑅𝑆
in: 𝑓, 𝑔 ∈ 𝐾[𝑥]; out: ℎ = 𝑔𝑐𝑑(𝑓, 𝑔)
ℎ ∶= 𝑓; 𝑠 ∶= 𝑔;
while 𝑠 ≠ 0
𝑟 = 𝑟𝑒𝑚𝑎𝑖𝑛𝑑𝑒𝑟(ℎ, 𝑠);
ℎ ∶ = 𝑠; 𝑠 ∶= 𝑟;
Code snippet 2.
𝛼2𝑜
𝛼21
⋮
𝛼2𝑛−𝑘−1
⋯
𝛼𝑛𝑜
𝑣1
⋯
𝛼𝑛1
)(
⋱
⋮
𝑛−𝑘−1
0
⋯ 𝛼𝑛
0
𝑣2
).
⋱
𝑣𝑛
Then, 𝒞𝑔𝑅𝑆 is a (linear) [𝑛, 𝑘, 𝑑] code with 𝑑 = 𝑛 − 𝑘 + 1.
(Such codes attain the Singleton bound 𝑑 ≤ 𝑛 − 𝑘 + 1 and are
called maximum distance separable, MDS codes.) For gRS
codes there are efficient decoding algorithms: e.g. solving
linear equations Error! Reference source not found., using
Euclid’s algorithm Error! Reference source not found. or
linear recurrences in case of the famous Berlekamp-Massey
algorithm Error! Reference source not found.Error!
Reference source not found.Error! Reference source not
found.. List decoding of e.g. (generalized) Reed-Solomon
codes relaxes the assumption on the number of allowed errors
and returns a list of possible code words.
ℎ = 𝑔𝑐𝑑(𝑓, 𝑔) for any 𝑓, 𝑔 ∈ 𝐾[𝑥]
Regard each equation of a system of linear equations in the
unknowns 𝑥1 , … , 𝑥𝑛 as a linear polynomial 𝑓𝑖 in 𝐾[𝑥1 , … , 𝑥𝑛 ].
Then, the reduced Groebner basis 𝐺 = {𝑔1 , … , 𝑔𝑡 } of 𝐼 =
⟨𝑓1 , … , 𝑓𝑛 ⟩ consists of linear, non-zero polynomials whose
coefficients correspond to the non-zero rows in the reduced
echelon form of the coefficient matrix of the system of linear
equations. In this sense, computation of the reduced Groebner
basis is equivalent to Gauß’s algorithm.
B. Goppa-Codes
Goppa-codes, alternant gRS codes, play an important role
e.g. in the McEliece Public Key Crypto System, PKCS Error!
Reference source not found.Error! Reference source not
found.. Let 𝐹 = 𝔾𝔽𝑞 , K = 𝔾𝔽(𝑞 𝑚 ) and 𝐿 = {𝛼1 , … , 𝛼𝑛 } ⊂ K
be a set of pair wise different code locators and let 𝑔(𝑥) ∈
K[𝑥] with 0 ∉ 𝑔(𝐿) be a Goppa-polynomial of degree 𝑡. Then
As one of the very many applications of Groebner bases
consider the problem to solve a system of multivariate
polynomial equations 𝑓1 = 𝑓2 = ⋯ = 𝑓𝑠 = 0 for 𝑓𝑖 in 𝑅. Here
we use 𝐼 = ⟨𝑓1 , … 𝑓𝑠 ⟩ = ⟨𝐺⟩ for the reduced Groebner basis
𝐺 = {𝑔1 , … , 𝑔𝑡 } of 𝐼 . It turns out that the set of equations
𝑔1 = 𝑔2 = ⋯ = 𝑔𝑡 = 0 is easier to solve because using the
lexicographic order (lex), variables are eliminated in that order
in the Groebner basis so that a process like back substitution
generates the variety 𝑉(𝐼) = 𝑉(⟨𝐺⟩) = 𝑉(𝑔1 , … , 𝑔𝑡 ).
Elimination theory Error! Reference source not found.
provides the proofs and Error! Reference source not found.
more examples.
III.
𝛼1𝑜
𝛼11
=(
⋮
𝛼1𝑛−𝑘−1
𝐶𝐺𝑜𝑝𝑝𝑎 = {(𝑐1 , … , 𝑐𝑛 ) ∈ 𝐹 𝑛 : ∑𝑛𝑖=1
𝑐𝑖
𝑥−𝛼𝑖
= 0 𝑚𝑜𝑑 𝑔(𝑥)}
is a linear [𝑛, 𝑘, 𝑑] code over 𝐹 . The code 𝐶𝐺𝑜𝑝𝑝𝑎 is called
irreducible iff the Goppa polynomial 𝑔 is irreducible. Let
𝑔(𝑥) = ∑𝑡𝑖=𝑜 𝑔𝑖 𝑥 𝑖 be the Goppa polynomial. Then we have
𝑔(𝑥)−𝑔(𝛼)
(best shown by induction in 𝑡, the degree of 𝑔) 𝑥−𝛼 =
ERROR CORRECTING CODES
𝑡−2 𝑖 𝑡−2−𝑖
𝑖 𝑡−1−𝑖 + 𝑔
𝑔𝑡 ∑𝑡−1
+ ⋯ + 𝑔2 (𝑥 + 𝛼) + 𝑔1 .
𝑡−1 ∑𝑖=𝑜 𝛼 𝑥
𝑖=𝑜 𝛼 𝑥
Here we consider linear block codes Error! Reference
source not found. only. An alphabet is some finite field 𝔽 =
𝔾𝔽(𝑝𝑚 ) for prime 𝑝 and 𝑚 ∈ ℕ and information words 𝑢 of
length 𝑘 are in 𝔽𝑘 . Code words over 𝔽 are of the form 𝑢𝐺 for a
𝑛 × 𝑘 generator matrix 𝐺. Hence the code 𝒞 = {𝑢𝐺: 𝑢 ∈ 𝔽𝑘 } is
a linear subspace of 𝔽𝑛 . 𝒞 can also be characterized as the
kernel space 𝒞 = {𝑐 ∈ 𝔽𝑛 : 𝐻𝑐 ⊤ = 0} of the parity matrix 𝐻 ,
i.e. 𝐻𝐺 ⊤ = 0. If any two code words have a Hamming distance
of at least 𝑑 then at most (𝑑 − 1)/2 errors in a transmitted
code word can be corrected. Such a code is called a (linear)
[𝑛, 𝑘, 𝑑] code.
𝐻=
𝑔𝑡
𝑔𝑡
𝑔(𝛼1 )
𝑔𝑡−1 +𝛼1 𝑔𝑡
𝑔(𝛼2 )
𝑔𝑡−1 +𝛼2 𝑔
𝑔(𝛼1 )
𝑔(𝛼2 )
⋮
⋮
𝑔1 +𝛼1 𝑔 +⋯+𝛼𝑡−1
1
2
(
𝑔(𝛼1 )
𝐶𝑋𝑌 where
Encoding an information word 𝑢 to 𝑐 = 𝑢𝐺 ∈ 𝒞 is easy
whereas decoding a corrupted word 𝑦 = 𝑐 + 𝑒 with an error
𝑑−1
vector 𝑒 ∈ 𝔽𝑛 with no more than
non-zero elements to the
2
2
⋯
𝑡
𝑔
𝑡
𝑔1 +𝛼2 𝑔 +⋯+𝛼𝑡−1
2
2
𝑔(𝛼2 )
⋯
⋱
𝑔
𝑡
⋯
𝑔𝑡
𝑔(𝛼𝑛 )
𝑔𝑡−1 +𝛼𝑛 𝑔
𝑡
𝑔(𝛼𝑛 )
=
⋮
𝑔1 +𝛼𝑛 𝑔 +⋯+𝛼𝑡−1
𝑛
2
𝑔(𝛼𝑛 )
𝑔
𝑡
)
WCSIT 5 (X), XX -XX, 2015
𝑔𝑡
0
𝑔𝑡−1 𝑔𝑡
𝐶=(
⋮
⋮
𝑔1 𝑔2
1
𝛼1𝑜
𝛼11
⋯ 0
⋯ 0
), 𝑋 = (
⋱ ⋮
⋮
⋯ 𝑔𝑡
𝛼1𝑡−1
𝑔(𝛼1 )
(
⋮
𝛼2𝑡−1
𝛼𝑛𝑜
𝛼𝑛1
),
⋮
𝛼𝑛𝑡−1
less equations of lower multidegree so that the Groebner basis
is faster to compute.
A. RS and gRS codes
Decoding RS and gRS codes means to solve the key
equations. Hence in general a formulation of the decoding
problem using Groebner bases is near at hand. But exploiting
the fact that Groebner bases help to determine the
corresponding variety 𝑉(𝐼) of some ideal 𝐼 = ⟨𝐺⟩ for the
reduced Groebner basis 𝐺 of 𝐼 explains why Groebner bases
support list decoding naturally. Error! Reference source not
found. gives an overview over existing methods.
.
𝑔(𝛼2 )
𝟎
⋯
⋯
⋱
⋯
𝟎
1
and Y=
𝛼2𝑜
𝛼11
⋱
1
𝑔(𝛼𝑛 ))
𝑡
Such codes correct up to errors, even up to 𝑡 errors in the
2
binary case, i.e. if 𝐶𝐺𝑜𝑝𝑝𝑎 is a code over 𝔽 = 𝔾𝔽(2).
errors Error!
B. Goppa codes
Error! Reference source not found. is most promising to
decode Goppa codes. However, Error! Reference source not
found. shows ‘that one can, at least in theory, decode these
codes up to half the true minimum distance by using the theory
of Groebner bases’. Therefore, what is lacking is the transfer of
the solution of Error! Reference source not found. into
praxis.
C. Cyclic Codes
Cyclic codes Error! Reference source not found. are
linear codes 𝐶 when in addition with any code word
(𝑐𝑜 , … , 𝑐𝑛−1 ) ∈ 𝐶 also (𝑐𝑛−1 , 𝑐𝑜 , … , 𝑐𝑛−2 ) ∈ 𝐶, i.e. the shifted
word is again a code word. Conventional Reed-Solomon codes
(code locators 𝛼𝑗 = 𝛼 𝑗−1 are powers of an element 𝛼 ∈ 𝔽 of
multiplicative order 𝑛) as well as BCH codes (alternant codes
of conventional Reed-Solomon codes) are prominent examples
of cyclic codes. Cyclic codes feature efficient encoding
(multiplication by the generator polynomial 𝑔 of the code),
syndrome computation (remainder of division by 𝑔 ) and
decoding (e.g. sequentially by Meggitt decoder) via rather
simple hardware.
C. Cyclic codes
Error! Reference source not found. gives an algorithm to
decode cyclic codes using Groebner bases. The decoding
problem is represented as a system of 𝑛 − 𝑘 linear equations
together with 𝑛 quadratic equations in at most 𝑛 + 𝑑
unknowns, i.e. error locations and error values. Because the
number of errors is not known beforehand, the algorithm then
starts with assumed 𝑡 = 0 errors and increases 𝑡 as long as the
variety 𝑉(𝐼) = ∅ where 𝐼 is the ideal generated by equations
specified above. Once 𝑉(𝐼) ≠ ∅ it contains the unique solution.
However, the viability of the algorithm is limited because on
one hand there are aforesaid efficient decoding methods and on
the other hand the cost to compute a Groebner basis might be
prohibitive.
Early methods used Euclid’s algorithm for decoding or list
decoding Error! Reference source not found.. Later
Patterson’s algorithm Error! Reference source not found.
provided an efficient method to decode received words when
using a Goppa encoding Error! Reference source not found..
On top one can correct approximately up to
Reference source not found..
IV.
𝑡2
𝑛
Here, we illustrate how cyclic codes can be decoded using
Groebner bases by a very simple example. We use the
computer algebra system SAGE to describe the procedure.
APPLYING GROEBNER ALGORITHMS TO CODING
There are several ways Error! Reference source not
found. to transform the decoding problem into a problem of
solving a system of multivariate polynomial equations. A
straightforward way is to consider the (unknown) entries 𝑒𝑖 of
the error vector 𝑒 as variables 𝐸𝑖 . If 𝐻 consists of rows
ℎ1 , … , ℎ𝑟 with redundancy 𝑟 = 𝑛 − 𝑘 then the vector equation
𝑠 = 𝐻𝑒 ⊤ is equivalent to the 𝑟 linear equations
Define a linear binary cyclic [𝑛, 𝑘, 𝑑] code 𝐶 with 𝑛 = 7,
𝑘 = 𝑛 − 3 and, 𝑑 = 3 by choosing from 𝑥 8 − 1 = (𝑥 +
1)(𝑥 3 + 𝑥 + 1)(𝑥 3 + 𝑥 2 + 1) the generator polynomial
𝑔(𝑥) = 𝑥 3 + 𝑥 + 1; let ⟨𝛼⟩ = 𝐹2∗3 and 𝐽 = {1} be the defining
set, i.e. 𝐶 = {𝑐(𝑋) ∈ 𝐹2 [𝑋]/(𝑋 7 − 1): 𝑐(𝛼) = 0} . Then the
complete defining set is 𝐽(𝐶) = {1,2,4}. Then, the parity matrix
𝑯 is 𝑯 = ((𝛼 𝑗 )𝑗𝑖 )𝑗𝑖∈𝐽(𝐶) , 𝑗 = 0,1, . . . , (𝑛 − 1). Also the code 𝐶
can be represented using exclusively polynomials:
𝑛
∑(ℎ𝑖 )𝑗 𝐸𝑗 − 𝑠𝑖 = 0 for 𝑖 = 1, … , 𝑟
(1)
𝑗=1
𝐶 = {𝑢(𝑋) ∗ 𝑔(𝑋)𝑚𝑜𝑑(𝑋 7 − 1): 𝑢(𝑋) ∈ (𝐹2 )4 [𝑋]}.
𝑑−1
We can formulate the condition that 𝑒 has at most 𝑡 = ⌊ ⌋
2
𝑛
non-zero entries by the (𝑡+1
) equations of multidegree 𝑡 + 1
𝐸𝑗1 ∙ 𝐸𝑗2 ∙ … ∙ 𝐸𝑗𝑡+1 = 0 for 1 ≤ 𝑗1 < 𝑗2 < ⋯ < 𝑗𝑡+1 ≤ 𝑛
In SAGE this would be something like (in Python, a sharp
starts a comment, indentation specifies a block):
(2)
Let the two sets of equations together generate the ideal 𝐼.
Then the Groebner basis of 𝐼 allows to read off the solution 𝐸,
𝐸 = (𝐸1 , … , 𝐸𝑛 ) i.e. the only one element in the variety 𝑉(𝐼).
In addition, Error! Reference source not found.Error!
Reference source not found. present alternatives to (2) with
3
WCSIT 5 (X), XX -XX, 2015
𝑗
have 𝑠𝑗 = 𝑒𝑖1 (𝛼 𝑖1 )𝑗 for 𝑗 ∈ 𝐽 , i.e. 𝑠𝑖 = 𝑌1 𝑋1 𝑖 for 𝑗𝑖 ∈ 𝐽 =
{1,2,4} . These are four polynomial equations in the two
variables 𝑋1 and 𝑌1 . We will solve these equations by
computing the Groebner basis of the ideal generated by the four
polynomials.
F = GF(2); n = 7; # base field
Fext = GF(2^3,'xi'); # field extension
alpha = Fext.multiplicative_generator();
# print 'Fext is',Fext,'with generator',alpha,'of Fextstar';
R.<X> = PolynomialRing(F);
g = X^3+X+1; # a generator polynom g
S = R.quotient_ring(R.ideal(X^n-1));
J = [1,2,4]; print 'complete defining set J(C) =',J
H = matrix(Fext,3,n,[[alpha^(j*i) for i in range(n)] for j in J]);
# pretty_print('H=',H)
s = y*transpose(H); print 's =',s;
I = R.ideal(Y1*X1-s[0], Y1*X1^2-s[1], Y1*X1^4-s[2],
Y1^2-Y1, X1^7-1); print 'I is',I;
print 'I.groebner_basis() is',I.groebner_basis(),'with
dimension',I.dimension()
if I.dimension()==0:
V = I.variety();
print 'I.dimension()==0, hence I.variety() =',V;
loc = V[0]; loc = loc[X1];
print 'locator =',loc,', error location =',loc.log(alpha)
We generate each code words of 𝐶 (and check that 𝒄𝑯𝑇 =
𝟎 for all 𝒄 ∈ 𝐶) by a function which converts an integer 𝑖 to the
𝑖-th code word out of 16 in our case.
def int2codeword(i):
vec = Integer(i).digits(2,padto=4);
u = vec[0]+vec[1]*X+vec[2]*X^2+vec[3]*X^3
vec = (u*g).list(); # with generator polynomial g
for i in range(n-len(vec)):
vec.append(0);
# print 'H*transpose(u*g) =',vector(vec)*transpose(H)
return vector(vec)
which generates in our case generated at random
s = (xi, xi^2, xi^2 + xi)
I is Ideal(X1*Y1+(xi), X1^2*Y1+(xi^2), X1^4*Y1
+(xi^2+xi), Y1^2+Y1, X1^7+1) of Multivariate
Polynomial Ring in X1, Y1 over Finite Field in
xi of size 2^3
I.groebner_basis() is [X1+(xi), Y1+1] with
dimension 0
I.dimension()==0, hence I.variety() = [{Y1:1,
X1:xi}]
locator = xi , error location = 1
We now generate some code word 𝒄 ∈ 𝐶 y int2codeword,
add some error vector with Hamming weight 1 giving the
received word 𝒚.
We do not need to compute the error value 𝑌1 which
necessarily is 1 ∈ 𝔽2 . So according to expectation, we were
able to correct up to one error.
cw = int2codeword(ZZ.random_element(0,16));
print 'some code word of C is',cw;
e = vector(GF(2),7);
e[ZZ.random_element(0,7)]=1;
print ' some error vector is',e
y = cw+e; print ' received vector y is',y
s = y*transpose(H); print '
its syndrome is',s;
CONCLUSION
This article is meant to set the stage for Groebner bases in
coding. In the light of the very many application of Groebner
bases in science and engineering Error! Reference source not
found. it is to be expected that further research will reveal even
better algorithms for the decoding of linear (and non-linear)
error-correcting codes. (Also, Groebner bases have spurred the
specification and investigation of new linear codes Error!
Reference source not found.Error! Reference source not
found..) The exact average complexity of determining the
reduced Groebner basis of an ideal is not known right now.
Once it has been determined Error! Reference source not
found. one will be able to set objectives and to identify limits
of the approach to apply Groebner bases for coding.
A result generated at random might look like (note that the
syndrome is an element of (𝐹23 )3 )
some code word of C
some error vector
received vector y
its syndrome
is
is
is
is
(1, 1, 1, 1, 1,
(0, 1, 0, 0, 0,
(1, 0, 1, 1, 1,
(xi, xi^2, xi^2
1, 1)
0, 0)
1, 1)
+ xi)
The next computation is done in
R.<X1,Y1> = PolynomialRing(Fext)
REFERENCES
where here 𝑋1 is the one error locator with its error value
𝑌1 . Because of 𝑋1 ∈ 𝐹2∗3 we have 𝑋17 = 1. Because 𝑌1 ∈ 𝔽2 we
have 𝑌12 = 𝑌1 . And because 𝒔 = 𝒚𝑯𝑇 = (𝒄 + 𝒆)𝑯𝑇 = 𝒆𝑯𝑇 we
[1]
4
E.R. Berlekamp, Goppa Codes, IEEE Transactions Information Theory,
Vol 19, No 5, September 1973, 590–592
http://infosec.seu.edu.cn/space/kangwei/senior_thesis/Goppa.pdf
WCSIT 5 (X), XX -XX, 2015
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
E.R. Berlekamp, R.J. McEliece, H.C.A. van Tilborg, On the inherent
intractability of certain coding problems, IEEE Trans. Inform. Theory,
24 (1978) 384–386
E.R. Berlekamp, Algebraic Coding Theory, Aegean Park Press 1984
D.J. Bernstein, List decoding for binary Goppa codes, 2008
http://cr.yp.to/ntheory/goppalist-20080706.pdf
B. Buchberger, Ein Algorithmus zum Auffinden der Basiselemente des
Restklassenringes nach einem nulldimensionalen Polynomideal,
Universität Innsbruck, Dissertation, 1965
http://www.ricam.oeaw.ac.at/Groebner-BasesBibliography/gbbib_files/publication_706.pdf
B. Buchberger, An Algorithmic Criterion for the Solvability of a System
of Algebraic Equations, Aequationes Mathematicae 4 (1970), 374–383
http://www.ricam.oeaw.ac.at/Groebner-BasesBibliography/gbbib_files/publication_699.pdf
B. Buchberger, Groebner Bases – A Short Introduction for System
Theorists, Proceedings of Computer Aided Systems Theory,
EURO¬CAST, 1–19, 2001
http://people.reed.edu/~davidp/pcmi/buchberger.pdf
B. Buchberger, H. Engl, Workshop D1: Groebner Bases in Cryptography, Coding Theory, and Algebraic Combinatorics, May 1st – May
6th, 2006 with papers on coding, cryptography, algebraic combinatorics,
etc. http://www.ricam.oeaw.ac.at/specsem/srs/groeb/schedule_D1.html
B. Buchberger, A. Maletzky (organizers), session ‘Software for
Groebner Bases’, 4th Int. Congress on Mathematical Software, ICMS,
Seoul, August 5th – 9th, 2014
http://www.risc.jku.at/people/amaletzk/ICMS2014-GB.html
S. Bulygin, R. Pelikaan, Bounded distance decoding of linear errorcorrecting codes with Groebner bases, J. Symbolic Computation 44
(2009) 1626–1643
http://www.sciencedirect.com/science/article/pii/S0747717108001776
D. Cox, J. Little, D. O'Shea, Ideals, Varieties, and Algorithms, Springer
2007
http://www.math.ku.dk/~holm/download/ideals-varieties-andalgorithms.pdf
M. de Boer, R. Pellikaan, Gröbner bases for error-correcting codes and
their decoding.
http://www.risc.jku.at/GroebnerBases-Bibliography/gbbib_files/publication_590.pdf
C. Di, Z. Liu, Construction of a Class of Algebraic-Geometric Codes via
Groebner Bases, MM Research Preprints, 42–48 No. 16, April 1998.
Beijing
http://www.mmrc.iss.ac.cn/pub/mm16.pdf/cdi.pdf
J. Fitzgerald , R.F. Lax Decoding affine variety codes using Groebner
bases, Designs, Codes and Cryptography, 13, 147–158 (1998)
[15]
[16]
[17]
[18]
[19]
[20]
[21]
[22]
[23]
[24]
https://www.math.lsu.edu/~lax/designscodescrypt.pdf or
http://www.ricam.oeaw.ac.at/Groebner-BasesBibliography/gbbib_files/publication_277.pdf
H. O’Keeffe, P. Fitzpatrick, A Groebner basis approach to list decoding
of Reed-Solomon and Algebraic Geometry Codes, see [8]
https://www.ricam.oeaw.ac.at/specsem/srs/groeb/download/OKeeffe.pdf
N. J. Patterson: The Algebraic Decoding of Goppa Codes; IEEE Trans.
on Information Theory, Vol IT-21, No 2, March 1975, 203–20
R.M. Roth, Introduction to Coding Theory, Cambridge 2006
Th. Risse, How SAGE helps to implement Goppa Codes and McEliece
PKCSs, Int. Conf. on Information Technologies 2011, ICIT'11, May
11th – 13th, 2011, Amman
http://www.weblearn.hs-bremen.de/risse/papers/ICIT11/
Th. Risse, Generating Goppa Codes, Int. Conf. on Information
Technologies 2013, ICIT'13, May 8th – 10th, 2013, Amman
http://sce.zuj.edu.jo/icit13/index.php/accepted-papers/2uncategorised/41-applied-mathematics
Th. Risse, Groebner-Basen, 12. Workshop Mathematik für Ingenieure,
Hafen City Universität, Hamburg 12. – 13.2.2015,
http://www.weblearn.hs-bremen.de/risse/papers/MathEng12/
M. Sala, T. Mora, L. Perret, S. Sakata, C. Traverso (Editors), Groebner
Bases, Coding, and Cryptography, Springer 2009
http://xa.yimg.com/kq/groups/24626876/489439549/name/ggp496.pdf
P. Shankar, Decoding Reed–Solomon Codes Using Euclid’s Algorithm,
Resonance April 2007, 37–51
http://www.ias.ac.in/resonance/Volumes/12/04/0037-0051.pdf
Y. Sugiyama, M. Kasahara, S. Hirasawa, T. Namekawa, A Method for
Solving Key Equation for Decoding Goppa Codes, Information and
Control 27 (1975) 87–99
http://www.sciencedirect.com/science/article/pii/S001999587590090X
W. Stein, D. Joyner: SAGE ̶ System for Algebra and Geometry
Experimentation; ACM SIGSAM Bulletin, vol 39, no 2, 61‒64, 2005
AUTHORS PROFILE
Prof Dr Thomas Risse, Institute for Informatics and Automation, Hochschule
Bremen, University of Applied Sciences, Flughafenallee 10, D-28199
Bremen, Germany, risse@hs-bremen.de
5
Download