WO1991020028A1 - Universal galois field multiplier - Google Patents
Universal galois field multiplier Download PDFInfo
- Publication number
- WO1991020028A1 WO1991020028A1 PCT/SE1991/000384 SE9100384W WO9120028A1 WO 1991020028 A1 WO1991020028 A1 WO 1991020028A1 SE 9100384 W SE9100384 W SE 9100384W WO 9120028 A1 WO9120028 A1 WO 9120028A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- elements
- field
- polynomial
- multiplier
- logic means
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/033—Theoretical methods to calculate these checking codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
Definitions
- the invention is concerned with the multiplication of two arbitrary elements belonging to a Galois field, especially an apparatus for performing such multiplication.
- Galois fields are finite fields consisting of p m elements, where p is a prime number and m a positive integer.
- the field GF(2 m ) is of particular importance in practice because its elements can be represented by binary polynomials of degree at most m-1 in a particular primitive element. This primitive element is a root of the irreducible primitive polynomial of degree m that generates the Galois field.
- ECC Error-control codes
- BCH codes Bose-Chaudury-Hocqenhem codes
- RS codes Reed-Solomon codes
- Goppa codes Goppa codes.
- ECC Error-control codes
- BCH codes Bose-Chaudury-Hocqenhem codes
- RS codes Reed-Solomon codes
- Goppa codes Goppa codes.
- R.E. Blahut "Theory and practice of Error Control Codes", Cambridge, MA: Addison-Wesley, 1984, gives another treatment of the same theories with emphasis on the practical aspects.
- the main parameters of an ECC are the block length n, the number of information symbols k (also called the dimension) and the minimum (Hamming) distance d between two any codewords of the code.
- a code with minimum distance d is capable of correcting t errors and s erasures as long as 2t + s ⁇ d-1.
- ECCs are very useful in practice for improving the reliability of a noisy communication channel.
- different applications require different codes with different parameters n, k, d.
- the maximum block length n of an RS code is 2 m + 1. This means that, if we are constrained to use one single Galois field we are also limited in our selection of ECC.
- the new apparatus has fewer components and higher speed than previous art apparatus.
- FIG. 1 is a block diagram of apparatus according to a preferred organization.
- FIG. 2 is a more detailed block diagram of a sub-unit of apparatus used to compute ⁇ -A over different fields of characteristic two.
- FIG. 3 is yet a more detailed block diagram of a sub-unit of apparatus used to compute the inner product of two binary vectors.
- FIG. 4 is an example of apparatus for the fields GF(2 m ), 2 ⁇ m ⁇ 4.
- a Galois field GF(p m ) is an algebraic finite field consisting of p m elements, where p is a prime and m a positive integer. Among the field elements are included the null element, 0, and the unit element, 1. Upon the elements in the field are defined the operations of addition, subtraction, multiplication and division. Addition, subtraction and multiplication are associative and commutative and multiplication is distributive with respect to addition and subtraction. Further, any of the four aforementioned operations results always in an element of the field.
- GF(2) of dimension m (in which case it should be denoted GF(2) m ).
- Representing an element A as a polynomial ⁇ 0 + ⁇ 1 x + ... + ⁇ m- 2 x m-2 + ⁇ m-1 x m -1 corresponds to choosing the set of field elements ⁇ 1, ⁇ , ..., ⁇ m-2 , ⁇ m-1 ⁇ as a basis of GF(2 m ). Every element can thus be expressed as a linear combination of the basis elements.
- the elements ⁇ i , i 0,
- P(x) the irreducible polynomial generating the field and which has the field element a as a root
- P( ⁇ ) 0.
- A(x) is the polynomial associated with the field element A
- B(x) the polynomial associated with the field element B
- C(x) the polynomial associated with the product of A and B .
- Z is the m by m binary matrix in equation (4).
- the entries of Z have to be generated and this can be done as follows.
- We call such a cell the ⁇ -cell and the cascaded structure the ⁇ -array.
- the polynomial P(x) used to generate the field is of the form x m + x m'1 p m ⁇ + ... + xp ⁇ + 1 (the first and last coefficient must necessarily be ones if P(x) is to be irreducible).
- xA(x) mod P(x) can be written as follows:
- ⁇ m-1 the feedback (FB) signal.
- Fig. 1 shows the general structure of the novel TJGM. The notation is consistent with the previous section.
- Unit 1 is the ⁇ -array that generates the entries of the matrix Z as defined in equation (4).
- the IP network consists in turn of m identical cells, where each cell, here called the IP-cell, computes one inner product.
- Fig. 3 shows a preferred implementation of the IP-cell 21 based on twoinput gates. M AND gates and M-1 XOR gates are required.
- the present UGM requires about 50% less components.
- the performance of the UGM is directly related to the worst signal path (WSP) between any input and any output of the UGM.
- WSP worst signal path
- the WSP through the ⁇ -array depends on the choice of P(x). It consists however of three parts: switches, XOR gates and multiplexers.
- the number of XOR gates along the WSP can be much less than m - 1 by smart choice of P(x).
- the following is a table over the number of XOR gates along the WSP through the ⁇ -array for some good P(x) and m ⁇ 16:
- the design of the ⁇ -cell follows directly from equation (10).
- the ⁇ -cell consists of M-1 identical sub-cells where each sub-cell performs the operation plus one cell for computing where
- juxtaposition means modulo p-multiplication and "+" modulo p-addition. Since P is known in advance the additive inverses can be precomputed and input to the multiplier instead of the original coefficients pt.
- the new ⁇ -array is obtained simply by cascading M-1 ⁇ -cells just as before.
- the ⁇ -array is connected to the IP network as before to compute the necessary inner products.
- the IP cell is modified to compute the inner product of two p-ary vectors of length M.
- the vectors & and V can either be stored in registers which are loaded from outside or they can be derived from the coefficients of P (in fact only the position of the highest coefficient p is relevant to this purpose) by some simple logic.
- the binary representation of each coefficient will require [log 2 p] bits.
- the three elements of GF(3) require two bits. Accordingly, it is intended that all matter contained in the above descriptions and the following drawings shall be interpreted as illustrative and not in a limiting sense.
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Error Detection And Correction (AREA)
- Complex Calculations (AREA)
Abstract
The present invention provides a novel apparatus for computing products in Galois fields GF(pm) with emphasis on the case p = 2. The elements of the field are represented in polynomial basis and no basis conversion is required. The apparatus consists of two distinct subunits. The first subunit simultaneously produces the first m α-multiples of one of the two elements to be multiplied. The second subunit simultaneously produces the m inner products of the second element and the m vectors consisting of suitable components of the above mentioned α-multiples. Both subunits are capable of operating over any Galois field GF(pm) where m is an integer in the range [2, M]. Consequently, the apparatus is programmable for operation over any of the above mentioned Galois fields.
Description
Universal galois field multiplier
The invention is concerned with the multiplication of two arbitrary elements belonging to a Galois field, especially an apparatus for performing such multiplication.
Galois fields are finite fields consisting of pm elements, where p is a prime number and m a positive integer. The field GF(2m) is of particular importance in practice because its elements can be represented by binary polynomials of degree at most m-1 in a particular primitive element. This primitive element is a root of the irreducible primitive polynomial of degree m that generates the Galois field.
Galois fields are of fundamental importance in the construction, encoding and decoding of several classes of powerful error-control codes (here abbreviated ECC) like Bose-Chaudury-Hocqenhem codes (called BCH codes), Reed-Solomon codes (called RS codes) and Goppa codes. The reader is referred to F.J. MacWilliams, N.J.A. Sloane "The Theory of Error- Correcting Codes", Amsterdam: North-Holland 1977, for details on the theory of ECC and an introduction to the theory of finite fields. The book by R.E. Blahut, "Theory and practice of Error Control Codes", Cambridge, MA: Addison-Wesley, 1984, gives another treatment of the same theories with emphasis on the practical aspects.
The main parameters of an ECC are the block length n, the number of information symbols k (also called the dimension) and the minimum (Hamming) distance d between two any codewords of the code. A code with minimum distance d is capable of correcting t errors and s erasures as long as 2t + s≤ d-1. ECCs are very useful in practice for improving the reliability of a noisy communication channel. However, different applications require different codes with different parameters n, k, d. These parameters are all directly or indirectly related to the number (=2m) of elements of the Galois field GF(2m). For example the maximum block length n of an RS code is 2m + 1. This means that, if we are constrained to use one single Galois field we are also limited in our selection of ECC.
Building a dedicated hardware for every code of practical interest is obviously unreasonable. Sometimes dedicated hardware can though be motivated by standardization and/or by extreme speed requirements. In many other situations a flexible, programmable device capable of implementing different codes over different Galois fields would be the most appropriate choice. The most crucial and important single unit in a device capable of providing the aforementioned flexibility, is a fast universal Galois field multiplier (here abbreviated UGM) capable of operating over a
number of different Galois fields. Actually, multiplication is by far the most common operation occurring in the encoding/decoding procedures of, for example, BCH and RS codes. Successive multiplications can also be used to compute the inverse of a field element. Inversion is required in the decoding of, for example, BCH and RS codes.
A prior art UGM has resulted in a cellular-array multiplier which is too slow to be really practical. The poor performance of the prior art UGM is due to a worst signal path of about 6m levels of logic when the UGM is operated over GF(2m). Details on the prior art UGM are found in B.A. Laws, C.K. Rushforth, "A Cellular-Array Multiplier for GF(2m)", IEEE Trans. Comput., Vol. C-20, pp. 1573-1578, December 1971.
The principal object of the invention is to provide a novel apparatus for computing products of elements belonging to a Galois field GF(pm ) with emphasis on the case p =2. The new apparatus has fewer components and higher speed than previous art apparatus.
It is a feature of this invention to be programmable for operation over any Galois field GF(pm ) with 2≤ m≤ M where M is an arbitrary positive integer greater than one.
The invention, as well as the embodiments thereof, is defined in the appended claims.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of apparatus according to a preferred organization.
FIG. 2 is a more detailed block diagram of a sub-unit of apparatus used to compute α-A over different fields of characteristic two.
FIG. 3 is yet a more detailed block diagram of a sub-unit of apparatus used to compute the inner product of two binary vectors.
FIG. 4 is an example of apparatus for the fields GF(2 m), 2≤ m≤ 4.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT The discussion of apparatus requires a review of some basic properties of a Galois field. A Galois field GF(pm) is an algebraic finite field consisting of pm elements, where p is a prime and m a positive integer. Among the field elements are included the null element, 0, and the unit element, 1. Upon the elements in the field are defined the operations of addition, subtraction, multiplication and division. Addition, subtraction and multiplication are
associative and commutative and multiplication is distributive with respect to addition and subtraction. Further, any of the four aforementioned operations results always in an element of the field.
The present invention is primarily concerned with, but not limited to fields of characteristic two (i.e. p = 2) which are denoted by GF(2m). The smallest of these fields ( m=1) consists actually only of a null element 0 and a unit element 1 and it is called the binary field GF(2). Addition and multiplication in GF(2) are performed modulo 2, i.e. 0+0=1+1=0, 0+1=1+0=1, 0.0=0-1 =1 .=0, 1.1=1 and -1=1. Addition is thus the same as exclusive-or (XOR) whereas multiplication is the same as logical AND.
In GF(2m), m > 1, each element can be represented by a polynomial of degree m-1 or less with binary coefficients. Each element is a residue modulo an irreducible polynomial of degree m over GF(2), and all arithmetic operations on the coefficients are performed modulo 2. Alternatively, the field GF(2m) can be seen as a linear vector space over
GF(2) of dimension m (in which case it should be denoted GF(2)m).
For each integer m there exists only one finite field with 2m elements (this is true in general for fields of any characteristic). In general, however, there exist several different representations of the elements of a finite field. The particular representation is given by the particular irreducible polynomial chosen to generate the finite field.
Representing an element A as a polynomial α0 + α1x + ... + αm- 2xm-2 + αm-1xm -1 corresponds to choosing the set of field elements {1, α, ..., αm-2, αm-1} as a basis of GF(2m). Every element can thus be expressed as a linear combination of the basis elements. In particular, the elements αi, i = 0,
1 , ..., m—1 are represented in this basis by the polynomials xi, i=0, 1, ..., m— 1 and the expression α0 + a1x + ... + am- 2xm- 2 + am-1xm-1 is equivalent to α0 + α1 α + ... + αm_2α + α m-1α m- 1. The type of basis discussed above is naturally called the polynomial basis.
In the following we call P(x) the irreducible polynomial generating the field and which has the field element a as a root, i.e. P(α) = 0. A(x) is the polynomial associated with the field element A, B(x) the polynomial associated with the field element B and C(x) the polynomial associated with the product of A and B . Then the product is given by the following expression
C(x) = A(x)-B(x) mod P(x) =
= [b0A(x) + b1 xA(x) + ... + bm-1x m-1A(x)] mod P(x) =
1 = [b0A(x) mod P(x)] + [b1xAix) mod P(x)] + ... + [ .
bm - 1xm-lA(x) mod P(*x)]. (1)
where zi,j∈ GF(2). Then
C(x) = b 0Z0,(x) + b1Z1r{x) + ... + bm-1Zm-1, (x). (3)
- And in matrix notation
where Z is the m by m binary matrix in equation (4). We see that the product C can be obtained by computing the m inner products Z-,jB,j = 0,1..., m-1, where Z- j denotes theJ:th row of Z. First, though, the entries of Z have to be generated and this can be done as follows. We generate the m columns of Z simultaneously by cascading m-l identical cells where each cell implements the operation xA(x) mod P(x) (the first column Z0, _ is the element A itself, see equation (2)). We call such a cell the α-cell and the cascaded structure the α-array.
The polynomial P(x) used to generate the field is of the form xm + xm'1pmΛ + ... + xp± + 1 (the first and last coefficient must necessarily be ones if P(x) is to be irreducible). Then the expression xA(x) mod P(x) can be written as follows:
In equation (5) we have utilized the fact that αm = αm-1 p. m- 1+ .•• + αφ1 + 1 (or equivalently xm = xm' pmΛ+ ... + xp1 + 1). Equation (5) describes the
function of the α-cell for fixed m: for each pt≠ 0, i = 1, 2, ..., m-1, one sum αm-1 + αi-1 has to be computed whereas the coefficient of x0 is A's most significant coefficient am-1. We call αm-1 the feedback (FB) signal.
Having described the mathematical preliminaries, a preferred embodiment of the novel UGM will now follow.
A. Hardware
Fig. 1 shows the general structure of the novel TJGM. The notation is consistent with the previous section. Unit 1 is the α-array that generates the entries of the matrix Z as defined in equation (4). Unit 2 computes the m inner products cj = Z ,j.B,j = 0,1..., m-1 and is here called the IP network. The IP network consists in turn of m identical cells, where each cell, here called the IP-cell, computes one inner product. The UGM requires the input field elements to have zeros in the unused high-order positions, i.e. αi = bi= 0, i > m-1.
Fig. 2 shows a preferred implementation of the α-cell 11 for performing the operation xA(x) mod P(x) (or, equivalently, αA). The α-cell can be programmed to operate over any of the fields GF(2m), 2≤ m≤ M by means of the binary vectors P = (p1,p2,p3, ...,pM-1) and S = (s1, s2, s3, sM-1) shown in Fig. 2.
Suppose we want to program the UGM for operation over GF(2m) where m is a particular value in the usable range. Then the components of the vector S are set as follows:
The vector S determines the feedback signal FB of Fig. 2. The first m-1 components of the vector P are the m-l middle coefficients of the irreducible polynomial P(x) chosen to generate the field. The remaining coefficients pm through pM-1 are, for example, set to zero.
We see in Fig. 2 that the α-cell has a regular bit-slice structure consisting of m-l identical subcells (unit 111 in Fig. 2). In each subcell there is one binary adder (XOR), one switch SW and one multiplexer MX.
The switch SW in subcell #i is controlled by the signal si in the following way: SW is closed if si = 1 , SW is open if si = 0. The multiplexer MX is controlled by the signal pi in the following way: if pi = 1 then MX passes the signal coming from the binary adder (= αm-1 + αi-1), if pi = 0 then MX passes the other input (= αi-1).
Fig. 3 shows a preferred implementation of the IP-cell 21 based on twoinput gates. M AND gates and M-1 XOR gates are required. The multiplexer MX appended to the output of the IP-cell is required to zero the product coefficients ci for i > m -1 since these are not used. In this case the signal vi is the i:th component of a vector V = (v0, v1, ..., vM-1) that could be set as follows
The multiplexer MX would then zero the output if vi = 1. If vi = 0 the output of the XOR-tree is selected. Fig. 4 shows the complete UGM for the case M = 4 together with a table of values for the vectors S and V for 2≤ m≤ 4. Notice that m≥ 2 implies that the first two components s0 and s1 of S are always zero and need not be generated (the multiplexer could be skipped in those IP-cells). The field generator P(x) is not indicated but can be chosen as follows: P(x) = x4 + x + 1 for m = 4, P(x) = x3 + x + 1 for m = 3 and P(x) = x2 + x + 1 for m = 2.
The extension to a new value of M is straightforward.
Operating the UGM for m < M means that only a part of α-array is used. This fact can be easily illustrated by help of equation (4). First we define the vectors CL, CU} _BL and Bυ as follows
where the superscript T indicates transposition. Then we have
where Z1, Z2 and Z3 are submatrices of Z defined according to the subdivision of Z indicated in equation (8). The product of interest for us is Z1. BL and we want it to appear on the lines of CL. To have this product
correctly computed we must ensure that the product Z3.BU is always zero.
But this is the case since BU is required to be zero. What remains to take care of is the product Z2.B L since this is normally non-zero and it would appear on the lines of CU (the unused lines that we wish to be zero). The zeroing of these lines is done through the multiplexer MX and the control signal vi mentioned above and shown in Fig. 3.
B. Complexity
The α-array consists of m - 1 α-cells where each cell contains m - 1 XOR gates, m -1 switches and m -1 multiplexers. Since switches and multiplexers are much simpler than XOR gates we approximate the complexity of a switch-multiplexer pair by that of one XOR gate. Then the complexity of the α-array can be estimated to 2(m-1)2 gates. The IP-network consists of m IP-cells where each cell contains 2m -1 gates. Totally 2m2-m gates for the IP-network. Finally we need 3m register to store the vectors P, S and V needed to program the UGM (these registers are loaded from an external unit). The complexity NUGM for the whole UGM can therefore be estimated by
NUGM≈ 2(m - 1)2 + 2m2-m + 3m.
Compared to a prior art UGM with complexity ~ 7m2 +3m the present UGM requires about 50% less components.
C. Performance
The performance of the UGM is directly related to the worst signal path (WSP) between any input and any output of the UGM. We will give an upper bound on the length Lwsp (in gates) of the WSP. In doing this we approximate the delay of a switch-multiplexer pair by that of one XOR gate.
The WSP through the UGM must go through m-l α-cells and one IP-cell. The length of the WSP through the IP-cell is fixed and it is easily found to be 1 + [log2M] gates.
The WSP through the α-array depends on the choice of P(x). It consists however of three parts: switches, XOR gates and multiplexers. The number of XOR gates along the WSP can be much less than m - 1 by smart choice of P(x). The following is a table over the number of XOR gates along the WSP through the α-array for some good P(x) and m≤ 16:
In the table we indicate only the powers of x in P(x) whose coefficients are non-zero . We see that the number of XOR gates is at least one and at most for m≤ 8. For m > 8 a better upper bound seems to be We use as an
upper bound for all m.
The number of switches and multiplexers along the WSP is not easily determined exactly. We assume worst case and say therefore that the WSP goes through m-1 switches and m - 1 multiplexers. According to the approximation above this corresponds to about m - 1 XOR gates.
The total length LWSP of the WSP can now be upper bounded by LWSP≤ (m-1) + m/2 + 1 + [log2M] = 1.5m + [log2M ] [Gates] which is considerably better than the ~ 6m gates of a prior art UGM.
D. Comments
One skilled in the art will immediately recognize that several changes could be made in the above design without departing form the basic structure. For example, instead of storing the three vectors P, S and V in registers one could design some simple logic that generates both S and V from P (in this case also the highest coefficient pm of P(x) must be entered into the UGM). The programming of the UGM would thus be simplified to one single operation instead of three. The UGM is also easily modified to perform the operation A.B + D by adding one input and one XOR gate to each IP-cell. Further, the design of the sub-cell 111 can alternatively be done by using an AND gate instead of the multiplexer MX. The AND gate
computes the product am -1pi. This product enters then the XOR gate (instead of the feedback signal am-1) to produce the sum am-1pi + ai-1.
The same general structure of Fig. 1 can be utilized for UGMs operating over fields of characteristic other than 'two. Only the details get slightly more complicated since all coefficient operations must be performed modulo the prime p, p > 2, that is the XOR gate becomes a mod p-adder and the AND gate a mod p-multiplier. Further, for prime p > 2 we have -1≠1 mod p which means that signs must be considered. For example, suppose P(x) is a monic (i.e. with the highest coefficient pM = 1) irreducible polynomial of degree M over GF(p) that has α as a root, i.e. P(α) = 0. Then
where pi' is the additive inverse of pi in GF(p). Now equation (5) becomes
The design of the α-cell follows directly from equation (10). The α-cell consists of M-1 identical sub-cells where each sub-cell performs the operation plus one cell for computing where
juxtaposition means modulo p-multiplication and "+" modulo p-addition. Since P is known in advance the additive inverses
can be precomputed and input to the multiplier instead of the original coefficients pt. The α-cell is made programmable for operation over different fields GF(pm), 2≤ m≤ M just the same way as for p = 2 by means of switches and the control vector S. The new α-array is obtained simply by cascading M-1 α-cells just as before. The α-array is connected to the IP network as before to compute the necessary inner products. The IP cell is modified to compute the inner product of two p-ary vectors of length M. The control vector V is used as for p = 2. The vectors & and V can either be stored in registers which are loaded from outside or they can be derived from the coefficients of P (in fact only the position of the highest coefficient p is relevant to this purpose) by some simple logic. We notice finally that the binary representation of each coefficient will require [log2p] bits. For example the three elements of GF(3) require two bits.
Accordingly, it is intended that all matter contained in the above descriptions and the following drawings shall be interpreted as illustrative and not in a limiting sense.
Claims
CLAIMS 1. A multiplier for performing multiplication of two elements in the finite field GF(pm) with pm elements, and obtaining a product vector of m p- ary components, where m is an integer equal to or greater than 2 or equal to or less than M, where M is an integer equal to or greater than 2, each of said pm elements of GF(pm) represented by a vector of m p-ary coefficients according to a polynomial basis representation, c h a r a c t e r i z e d b y a) first logic means (1) including a cascade of at least one α-cell (11) for developing for the first of said two elements the first m αmultiples, each α-multiple being the product of αl and said element for i = 0, 1, 2 , ..., m-1, where α is an element of the field GF(pm) satisfying the equation P(x) = 0 for x = α, where P(x) is a polynomial of degree m which is irreducible over the field GF(p); and b) second logic means (2) including at least two IP cells (21), where each IP cell will simultaneously develop the inner product of the second element and every p-ary vector whose components are the j:th components of all said α-multiples for j = 0, 1, 2, ..., m-1, each of said m inner products being one component of said product vector.
2. The multiplier recited in claim 1 w h e r e i n: a) said first logic means (1) comprise means for changing of said irreducible polynomial, whereby said first logic means are programmable for operation over any of said finite fields GF(pm ), 2≤ m≤M, including all possible representations of said finite fields; and b) means for selectively connecting the output of said second logic means (2) to a logical zero.
3. The multiplier recited in claim 1 or 2 w h e r e i n each of the pm elements of GF(pm) is represented by a vector of m p-ary components according to a polynomial basis representation of the form A = α0 + α1α + ... + αm-2αm-2 + αm-1αm-1, where A is an element of GF(pm ), α0, α1, ..., αm-2, αm- 1 are the p-ary components of A , and α is an element of GF(p m) satisfying the equation P(x) = 0 for x = α, where P(x) is a polynomial of degree m which is irreducible over the field GF(p).
4. The multiplier recited in claim 2 or 3 wherein: a) the unused inputs of said first logic means (1) are set to logical zero; and b) the unused inputs and outputs of said second logic means (2) are set to logical zero.
5. The multiplier recited in claim 1,2, 3 or 4 wherein p = 2.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9002124-7 | 1990-06-15 | ||
SE9002124A SE466822B (en) | 1990-06-15 | 1990-06-15 | DEVICE FOR MULTIPLICATION OF TWO ELEMENTS IN A GALOIC BODY |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1991020028A1 true WO1991020028A1 (en) | 1991-12-26 |
Family
ID=20379773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/SE1991/000384 WO1991020028A1 (en) | 1990-06-15 | 1991-05-31 | Universal galois field multiplier |
Country Status (3)
Country | Link |
---|---|
AU (1) | AU8076591A (en) |
SE (1) | SE466822B (en) |
WO (1) | WO1991020028A1 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL1003335C2 (en) * | 1996-05-30 | 1997-12-17 | Lg Semicon Co Ltd | Universal Galois field multiplier circuit. |
EP0840461A2 (en) * | 1996-10-30 | 1998-05-06 | Discovision Associates | Galois field multiplier for Reed-Solomon decoder |
GB2323457A (en) * | 1996-12-30 | 1998-09-23 | Certicom Corp | A finite field multiplication system |
US6662346B1 (en) | 2001-10-03 | 2003-12-09 | Marvell International, Ltd. | Method and apparatus for reducing power dissipation in finite field arithmetic circuits |
WO2004001701A1 (en) * | 2002-06-20 | 2003-12-31 | Hitachi, Ltd. | Code calculating device |
EP1043654A3 (en) * | 1999-04-09 | 2005-02-09 | Fujitsu Limited | Apparatus and method for generating parameters for finite field operations |
EP2434650A1 (en) * | 2010-09-23 | 2012-03-28 | Panasonic Corporation | Reed-Solomon encoder with simplified Galois field multipliers |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3805037A (en) * | 1972-02-22 | 1974-04-16 | J Ellison | N{40 th power galois linear gate |
US4251875A (en) * | 1979-02-12 | 1981-02-17 | Sperry Corporation | Sequential Galois multiplication in GF(2n) with GF(2m) Galois multiplication gates |
US4697248A (en) * | 1983-12-30 | 1987-09-29 | Sony Corporation | Arithmetic circuit for obtaining the vector product of two vectors |
-
1990
- 1990-06-15 SE SE9002124A patent/SE466822B/en not_active IP Right Cessation
-
1991
- 1991-05-31 AU AU80765/91A patent/AU8076591A/en not_active Abandoned
- 1991-05-31 WO PCT/SE1991/000384 patent/WO1991020028A1/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3805037A (en) * | 1972-02-22 | 1974-04-16 | J Ellison | N{40 th power galois linear gate |
US4251875A (en) * | 1979-02-12 | 1981-02-17 | Sperry Corporation | Sequential Galois multiplication in GF(2n) with GF(2m) Galois multiplication gates |
US4697248A (en) * | 1983-12-30 | 1987-09-29 | Sony Corporation | Arithmetic circuit for obtaining the vector product of two vectors |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL1003335C2 (en) * | 1996-05-30 | 1997-12-17 | Lg Semicon Co Ltd | Universal Galois field multiplier circuit. |
US5768168A (en) * | 1996-05-30 | 1998-06-16 | Lg Semicon Co., Ltd. | Universal galois field multiplier |
EP0840461A2 (en) * | 1996-10-30 | 1998-05-06 | Discovision Associates | Galois field multiplier for Reed-Solomon decoder |
EP0840461A3 (en) * | 1996-10-30 | 2000-03-08 | Discovision Associates | Galois field multiplier for Reed-Solomon decoder |
GB2323457A (en) * | 1996-12-30 | 1998-09-23 | Certicom Corp | A finite field multiplication system |
EP1043654A3 (en) * | 1999-04-09 | 2005-02-09 | Fujitsu Limited | Apparatus and method for generating parameters for finite field operations |
US7142668B1 (en) | 1999-04-09 | 2006-11-28 | Fujitsu Limited | Apparatus and method for generating expression data for finite field operation |
US6662346B1 (en) | 2001-10-03 | 2003-12-09 | Marvell International, Ltd. | Method and apparatus for reducing power dissipation in finite field arithmetic circuits |
WO2004001701A1 (en) * | 2002-06-20 | 2003-12-31 | Hitachi, Ltd. | Code calculating device |
EP2434650A1 (en) * | 2010-09-23 | 2012-03-28 | Panasonic Corporation | Reed-Solomon encoder with simplified Galois field multipliers |
Also Published As
Publication number | Publication date |
---|---|
SE9002124D0 (en) | 1990-06-15 |
AU8076591A (en) | 1992-01-07 |
SE9002124L (en) | 1991-12-16 |
SE466822B (en) | 1992-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4873688A (en) | High-speed real-time Reed-Solomon decoder | |
EP0114938B1 (en) | On-the-fly multibyte error correction | |
US6928602B2 (en) | Encoding method and encoder | |
Wang et al. | VLSI architectures for computing multiplications and inverses in GF (2 m) | |
Campobello et al. | Parallel CRC realization | |
US20030192007A1 (en) | Code-programmable field-programmable architecturally-systolic Reed-Solomon BCH error correction decoder integrated circuit and error correction decoding method | |
Augot et al. | Generalized Gabidulin codes over fields of any characteristic | |
US6467063B1 (en) | Reed Solomon coding apparatus and Reed Solomon coding method | |
US5535225A (en) | Time domain algebraic encoder/decoder | |
RU2008148940A (en) | ERROR CORRECTION METHOD AND DEVICE | |
EP0447245A2 (en) | Bit-serial division method and apparatus | |
US20040078408A1 (en) | Modular galois-field subfield-power integrated inverter-multiplier circuit for galois-field division over GF(256) | |
KR20190003315A (en) | Encoding method of efficient generalized tensor product codes, and apparatus there-of | |
WO1991020028A1 (en) | Universal galois field multiplier | |
KR100258951B1 (en) | Rs decoder having serial expansion architecture and method therefor | |
US6405339B1 (en) | Parallelized programmable encoder/syndrome generator | |
US5931894A (en) | Power-sum circuit for finite field GF(2m) | |
JP3239522B2 (en) | Data loss correction method and circuit | |
JP4045872B2 (en) | Encoding method and encoding apparatus | |
RU2605672C1 (en) | Reconfigurable reed-solomon coder | |
JPH0476540B2 (en) | ||
US6971056B1 (en) | Decoder-usable syndrome generation with representation generated with information based on vector portion | |
Patel | On-the-fly decoder for multiple byte errors | |
Conway | Galois field arithmetic over GF (p/sup m/) for high-speed/low-power error-control applications | |
Gulliver et al. | Q-ary Gray codes and weight distributions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AU CA FI NO US |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE DK ES FR GB GR IT LU NL SE |
|
NENP | Non-entry into the national phase |
Ref country code: CA |