Computational method and apparatus for finite field multiplication.
Abstract
A Galois field multiplier is used to obtain a product (D) which is stored in an accumulation register (20) and is composed of two elements (B, C), which are stored in shift registers ( 12, 14). The product (D) is represented as a normal basis with each binary digit of the binary vector (the product, D) being determined by a sum of the product of the binary digits (bi, ci) representing the two elements. By grouping similar digits of one of the ordinary digits in the expression of the product's binary digit and shifting the suffixes of the binary digits, it is possible to accumulate grouped terms of each of the binary digits of the product simultaneously.
Term
Term ended
Projected expiry passed 16 December 2006, 19.8 years ago.
- Priority and filed
- Published
- Projected expiry
- Today
6 claims: 2 independent, 4 dependent
- 1Claims of equivalent WO 8804805 A1 CLAIMS :1. A method of determining the product of two elements B and C of the finite field GF(2 ), where m is an integer greater than 1, the field having elements A 2 ( 0 x -£- m ) that constitute a normal basis, comprising the steps of: a) representing the element B as a vector of binary digits b-, where b. is the coeffecient of A 2 ~ in the normal basis representa ion of B b) representing the element C as a vector of binary digits c. j , where c. is the coefficient of A 2 1 in the normal basis representation of C c) representing the product D of elements B and C as a vector of binary digits d., where d. is the coefficient of A 2 ~ in the normal basis representation of D, each of said binary digits d. being expressed in the form of sums of products of the binary digits b. and c, , ( O : J' k ^- ~ ) d) storing in m successive cells of a first shift register the binary digits, b. e) storing in m successive cells of a second shift register the binary digits, c. f) selecting at least some of said products of a binary digit d. and grouping like ones of one of the binary digits b- or c, to provide grouped terms of the form g) associating each of said grouped terms with a respective one of m accumulating cells of an accumulating register, h) establishing connections between the cells of said first and second shift registers and a first of said accumulating cells to provide a first of said grouped terms in said accumulating cell, i) establishing connections between the cells of said first and second shift registers and a second of said accumulating cells adjacent to said first cell to provide an expression equivalent to another of said grouped terms with the suffixes of the binary digits of said second grouped term increased by 1 (Modulo m) j) repeating step i for successive ones of the grouped terms with the increase in the suffix of each binary digit of said grouped terms accumulat¬ ing by 1 (Modulo m) for each repetition whereby there is provided in each accumulating cell a grouped term of each of the m binary digits d., k) generating a grouped term in an accumulating cell 1) transferring the contents of the accumulating cell to the adjacent accumulating cell m) transferring contents of each cell of the shift registers to their next cell n) repeating steps k, 1 and m, m times whereby at each repetition an additional term of each of the binary digits d. of the vector D is accumulated in each of the accumulating cells.
- 6A method of determining the product of two elements B and C of the finite field GF(2 m ), where m is an integer greater than 1, the field having elements A 2 1 (O .= i -^ ) that constitute a normal basis, comprising the steps of:a) representing the element B as a vector of binary digits b., where b. is the coefficient of A 2 - m. the normal basis representation of B b) representing the element C as a vector of binary digits c. , where c. is the coefficient of A 2 1 i.n the normal basis representation of C c) representing the product D of elements B and C as a vector of binary digits d., where d. is the coefficient of A 2 - in the normal basis representation of D, each of said binary digits d. being expressed in the form of sums of products of the binary digits b. and c. , (0 f= j,k - m) J ■κ d) storing in m successive cells of a first shift register the binary digits, b. e) storing in m successive cells of a second shift register the binary digits, c- f) selecting at least some of said terms of a binary digit d. and grouping like ones of one of the binary digits b. or c, to J κ provide grouped terms of the form g) establishing connections from respective cells of said shift registers to each of said accumulating cells to produce in each accumulating cell a grouped term of a binary digit representing the vector D, said 3 connections being established such that a first grouped term of one of said binary digits is accumulated in a first of said cells and upon repeated transfer of the contents of one of said accumulating cells through each of said accumulating cells accompanied by successive rotations of said shift register contents, successive grouped terms of said one binary digit will be generated in successive cells h) accumulating successive ones of said grouped terms of said one binary digit by transferring the contents of one accumulating cell to another cell and rotating the vectors representing B and C in the shift registers to generate another grouped term i) adding said other grouped term to the contents of said other cell j) repeating the accumulation m times whereby grouped terms of a binary digit are accumulated successively in each of said accumulating cells to generate simultaneously grouped terms of each the m binary digits of the vector representing the product D.
Independent claims2
318 paragraphs in 87 sections, as filed
Description of equivalent WO 8804805 A1
COMPUTATIONAL METHOD AND APPARATUS FOR FINITE FIELD MULTIPLICATION
0002Background of the Invention
0003The present invention relates to a method and apparatus for multiplying two elements in the finite field GF(2 ) .
0004As explained fully in European application 0080528 from which the following discussion is taken, the finite field
0005GF(2 ) is a number system containing 2 elements. Its attractiveness in practical applications results from the ability to represent each element by a vector of m binary digits. The practical application of error-correcting codes makes considerable use of computation in GF(2 ) . Both the encoding and decoding devices for the important Reed-Solomon codes must perform computations in G (2<sup>m</sup>) . The decoding device for the binary Bo<sub>.</sub>se-Chaudhuri-Hocquenghem codes also must perform computation in- GF(2 ) . The reader is referred to
0006"Error-Correcting Codes" by W. . Peterson and E.J. Weldon, Jr. ,
00072nd Ed., the M.I.T. Press, 1972, for details of these and other applications of GF(2 ) computation for error-co rection.
0008There exist cryptographic systems with encryption and decryption algorithms that require exponenti tion operations on large numbers. Several public-key cryptosyste s have been proposed that require or may be adapted to use the exponentiation of elements in GF(2 ) . Since the process of exponentiation consists of squaring and multiplication operations, it is essential that these operations be performed as quickly and efficiently as possible. The reader is referred to "Cryptography and Data Security" by D . E. Denning, Addison-Wesley, 1983, for desriptions of GF(2 ) arithmetic and exponentiation algorithms, and for examples of public-key cryptosystems utilizing these algorithms.
0009Recent advances in the art of secrecy coding also require the use of computation in GF(2 ) . The reader is referred to the letter "Implementing Public Key Scheme", by S. Berkovits, J. Kowalchuk and B. Schanning , IEEE Communications Magazine, Vol. 17, pp. 2-3, May 1979.
0010The finite field GF(2) is the number system in which the only elements are the binary numbers 0 and 1 and in which the rules of addition and multiplication are the following:
00110 + 0 = 1 + 1 = 0
00120 + 1 = 1 + 0 = 1
00130 x 0 = 1 x 0 = 0 x 1 = 0 (1)
00141 x 1 = 1 These rules are commonly called modulo-two arithmetic. Hence all additions specified in logic expressions or by adders in this application are performed modulo two. In addition, multiplication is implemented with logical AND gates to correspond with the rule set out at (1) above. The finite field GF(2 ) , where m is an integer greater than l<sub>r</sub> is the number system in which there are 2 elements and in which the rules of addition and multiplica ion correspond to arithmetic modulo an irreducible polynomial of degree with coefficients in GF(2) . Although in an abstract sense there is for each m only one field GF(2 ) , the complexity of the logic circuitry required to perform operations in GF(2 ) depends strongly on the particular way in which the field elements are represented.
0015The conventional approach to the design of logic circuitry to perform operations in GF<sup>~</sup>(2 ) is described in such papers as T. Bartee and D. Schneider, "Computation with Finite Fields", Information and Control, Vol. 6, pp. 79-98, 1963. In this conventional approach, one first chooses a polynomial P(X) of degree m which is irreducible over GF(2) , that is P(X) has binary coefficients but cannot be factored into a product of polynomials with binary coefficients each of whose degree is less than m. An element A in GF(2 ) is then defined to be a root of P(X) , that is, to satisfy P(A) = 0. The fact that P(X)
00160 2 is irreducible guarantees that the m elements A = 1, A, A ,
0017... , A of GF(2 ) are linearly independent over GF(2) , that is, that b<sub>Q</sub> + b A + b<sub>2</sub>A + ... + b<sub>m</sub>_<sub>x</sub>A vanishes only when the binary digits b_,b ,b ... , b are all zeroes. The conventional approach is then to assign the unit vectors of length m with binary components to the elements,
00181, A, A , ... , A •
0019As a specific example of the conventional approach, consider the finite field GF(2 ) with the choice
0020p (X) = x<sup>J</sup> + x + l for the irreducible polynomial of degree 3 The next step is to define A as an element of GF(2^) such that
0021A<sup>3</sup> + A + 1 0 (3) The following assignment of unit vectors is then made:
0022A° = 1 = [0, 0, 1]
0023A = [0, 1, 0] A<sup>2</sup> = [1, 0, 0] (4)
0024An arbitrary element B of GF(2^) is now represented by the binary vector [b2, ]_, bg] with the meaning that
0025B = [b<sub>2</sub>,b<sub>1</sub>,b<sub>0</sub>] = b<sub>2</sub>A<sup>2</sup> + b<sub>χ</sub>A + b<sub>0</sub> (5)
0026Let C = [C<sub>2</sub>,C;L,CgJ be a second element of GF(2<sup>3</sup>) . It follows from equations (4) and (5) that
0027B + C = [b<sub>2</sub> + c<sub>2</sub>rb<sub>1</sub> + CJL^O + c<sub>0</sub>]. (6)
0028Thus, in the conventional approach, addition in GF (2 ) is easily performed by logic circuitry that merely forms the modulo-two sum of the two vectors representing the elements to be summed component-by-component. Multiplication is, however, considerably more complex to implement. Continuing the example, one sees from equation (3) that
0029A<sup>3</sup> = A + 1
0030A<sup>4</sup> = A<sup>2</sup> + A (7) where use has been made of the fact that -1 = +1 in GF (2) . From the equations (4) , (5) and (7) it follows that
0031B x C - [d<sub>2</sub>, d<sub>j</sub>_, d<sub>0</sub>] <sub>.</sub> (8) where <sup>d</sup>0 <sup>=b</sup>0<sup>c</sup>Q <sup>+ b</sup>l<sup>c</sup>2 <sup>+ b</sup>2<sup>c</sup> l
0032<img file="WO8804805A1_D0001.tif" />
0033d<sub>2</sub> = bgc<sub>2</sub> + b C + b<sub>]</sub>_C<sub>}</sub> + b<sub>2</sub>c<sub>2</sub> Complex logic circuitry is required to implement equations (9) . Upon taking C = B equation (8) , it follows from equation (9) th
0034B<sup>2</sup> = [e<sub>2</sub>, e<sub>x</sub>, e<sub>0</sub>] (10) where eg = bg ex = b<sub>2</sub> (11) e<sub>2</sub> = b<sub>χ</sub> + b<sub>2</sub>
00352 and where use has been made of the facts that b = b and b + b = 0 in GF (2) . Whereas the squaring rule of equations (11) is considerably simpler to implement than the multiplication rule of equations (9) , it still has the disadvantage that some additions (in the example, only one ) must be performed and tha the form of the squaring rule varies among the components of th square.
0036By way of summary, one can say that the conventional approach to the design of logic circuitry to perform operations in GF(2 ) leads to simple circuitry for addition, somewhat more complex circuitry for squaring, and very complex circuitry for multiplication.
0037In the European application 0080528 noted above advantage was taken of the following special features of the finite field GF(2 ) . There always exists a so-called normal basis for this finite field, that is, one can always find a field element A such that A, A2, A4, . . . , A '?~<sup>l</sup>~- are a basis for GF(2<sup>m</sup> in the sense that every field element B can be uniquely written as
0038<img file="WO8804805A1_D0002.tif" />
0039<sup>" [b</sup>m-l' ' <sup>~</sup>2 ' <sup>b</sup>l' <sup>b</sup>0<sup>]</sup>
0040where g, b-,, b<sub>2</sub>, . . . , <sup>b</sup><sub>m</sub>_<sub>τ</sub> are binary digits,
0041Moreover, squaring in GF(2<sup>m</sup> is a linear operation in the sense that for every pair of elements B and C in GF(2<sup>m</sup>)
0042(B + C)<sup>2</sup> = B<sup>2</sup> + C<sup>2</sup> (13)
0043Further, it is the case for every element B of GF(2<sup>m</sup>) that
0044_m B = B (14)
0045The inventors in the above application sought to simplify the multiplication procedure by initially choosing a polynomial P(X) of degree m which is irreducible over GF(2) and which has linearly independent roots. This latter condition on P(X) insures that upon defining A as an element of GF(2<sup>m</sup> such that P(A) = 0 then A, A 2 , A4, ... A2<sup>m-1</sup> form a normal basis for GF(2<sup>m</sup>).
0046For a discussion of normal bases in finite fields, the reader is referred to "Finite Fields" by Lidl and Neidereiter. Then it B = [b and m-1'
0047C = [c , c , c , c ] are any two elements of m-1'
0048,m
0049GF(2 ) in said normal basis representation, then the product
0050D = B X C = [d m-1. , .-., d 2 , d 1 , d<sub>n</sub>0] (15)
0051has the property that the same logic circuitry which when applied to the components or binary digits of the vectors representing B and C produces d _, will sequentially produce the remaining components d ., ..., d„ , d. , d<sub>n</sub> of the m-2 2 1 0 product when applied to the components of the successive rotations of the vectors representing B and C.
0052This may be appreciated by considering the binary digits d_ , d , d of e.g. equation (9) above where
0053do = b<sub>lCl</sub> + bgC! + b^g + b C<sub>2</sub> + b<sub>2</sub>Cg <sup>d</sup>l = <sup>b</sup>0<sup>c</sup>0 <sup>+ b</sup>2<sup>c</sup>0 <sup>+ b</sup>0<sup>c</sup>2 <sup>+ b</sup>2<sup>c</sup>l <sup>+ b</sup>l<sup>c</sup>2 d<sub>0</sub> = b<sub>2</sub>c<sub>2</sub> -i- b!C<sub>2</sub> + b<sub>2</sub>c<sub>χ</sub> + b<sub>lC</sub> + b<sub>QCl</sub>
0054Like ones of one of the binary digits b<sub>j</sub>_ or c<sub>1</sub> are grouped to obtain grouped terms so that these may be rewritten in the form d<sub>2</sub> = y (c<sub>j</sub>_ + c<sub>2</sub>) + c<sub>0</sub> (b<sub>λ</sub> + b<sub>2</sub>) + <img file="WO8804805A1_D0003.tif" /> d<sub>]</sub>_ = b (Cg + C<sub>j</sub>_) + C<sub>2</sub> (bg + b<sub>]</sub>_) + bgCg d = <sub>χ</sub> (C<sub>2</sub> + Cg) + <sub>Cχ</sub> (b<sub>2</sub> + bg) + D<sub>2</sub>C<sub>2</sub>
0055Where an expression such as bg(C<sub>j</sub>_ + c ) is subsequently referred to as a grouped term. Thus the logic equation for d<sub>j</sub>_ could be derived from that for d<sub>2</sub> by reducing the suffix of all binary digits b., c, by 1 (Modulo-3) . A practical implementation was achieved by entering the vectors in respective shift registers, establishing connections and implementing digital logic circuitry to generate all terms of the component d_ simultaneously. Then the shift register contents are rotated one bit position to obtain d , and, similarly d<sub>n</sub> . Thus, by rotating the vectors B and C in the two shift registers, the binary digits of the product vector D could be generated by the one logic circuit.
0056However, whilst the above proposal is more efficient than the conventional approach, it suffers the disadvantage that all grouped terms constituting one binary digit of the vector must be added simultaneously at one location. This-makes the implementation of the logic complicated, and for large values of , (e.g. greater than 250) , impractical. The above European application also proposes the simultaneous or parallel generation of all m binary digits of the product vector by m identical multiplier logic circuits. However, this simply compounds the difficulty of logic implementation because of the increase in external shift register connections and the large amount of circuitry required.
0057The applicants have recognised that multiplication may be implemented by storing bit vectors B and C in respective shift registers and establishing connections to respective accumulating cells such that a grouped term of each of the expressions d. is generated in respective ones of accumulating cells. By rotating the bit vectors B and C in the shift registers and by rotating the contents of the accumulating cells each grouped term of a respective binary digit d. is accumulated in successive cells. Thus all of the binary digits of the product vector are generated simultaneously in the accumulating cells after one complete rotation of the bit vectors B and C.
0058Embodiments of the invention will now be described by way of example only with reference to the accompanying drawings in which
0059Figure 1 is a block diagram of a multiplier to implement multiplication of two elements in the field GF(2 ) .
0060Figure 2 is a block logic diagram of a component used in the multiplier of Figure 1.
0061Figure 3 is a block diagram of an alternative form of multiplier to implement multiplication of two elements in the field GF(2<sup>5</sup>) .
0062Figure 4 is a block diagram of a further embodiment of a multiplier to implement multiplication in the field GF(2 ) .
0063Figure 5 is a block diagram of the multiplier of Figure 4 with the connections modified for an optimal implementation of a GF(2<sup>6</sup>) multiplier.
0064The principle of operation may best be understood by reference to Figures 1 and 2 that represents the logic implementation for multiplying two elements in the finite field GF(2 ) . Before referring to the figures in detail, it will be useful to consider the form of the product D of two elements B and C . B will be of the form B = (b<sub>Q</sub>, b,, b<sub>2</sub>, b<sub>3</sub>, b. ) in normal basis representation and C will be of the form C = (c<sub>Q</sub>, c,, c<sub>2</sub>, c<sub>3</sub>, c.) in normal basis representation.
0065The product D will be of the form D = (d<sub>Q</sub>, d, , d<sub>2</sub>, d<sub>3</sub>, d- ) in normal basis represen¬ tation. Each of the bit vectors d. will consist of grouped terms of the binary digits representing B and C and for the case where = 5 <sup>d</sup>i<sup>=b</sup>i+4<sup>(c</sup>i+4 <sup>+ c</sup>i+3<sup>+ C</sup>i+1<sup>+ C</sup>i<sup>} + b</sup>i+3
0066<sup>(c</sup>i+4<sup>+ C</sup>i+2<sup>+ C</sup>i+1<sup>+ C</sup>i<sup>) + b</sup>i+2<sup>(c</sup>i+3<sup>+ C</sup>i<sup>)</sup> + -<sub>±</sub> + 1 (c<sub>i+4</sub> + c<sub>i+3</sub>) <img file="WO8804805A1_D0004.tif" />
0067In general, all subscripts are added using modulo 5 arithmetic. Thus the binary digits have the form: d<sub>Q</sub> = b<sub>4</sub>(c<sub>4</sub>+c<sub>3</sub>+c<sub>1</sub>+c<sub>0</sub>) + b<sub>3</sub>(c<sub>4</sub>+c<sub>2</sub>+c<sub>1</sub>+c<sub>0</sub>)+ b<sub>2</sub>(c<sub>3</sub>+c<sub>Q</sub>) + b<sub>1</sub>(c<sub>4</sub>+c<sub>3</sub>) + b<sub>Q</sub>(c<sub>4</sub>+c<sub>3</sub>+c<sub>2</sub>)
0068<sup>d</sup>l <sup>= b</sup>0<sup>(c</sup>0 <sup>+ c</sup>4 <sup>+ c</sup>2 <sup>+ c</sup>l<sup>} + b</sup>4<sup>(c</sup>0 <sup>+ c</sup>3 <sup>+</sup><sup></sup><sup>~</sup><sub>2</sub> + <sub>±</sub> ) + b<sub>3</sub>(c<sub>4</sub> + c<sub>χ</sub>) + <sub>2</sub>(c<sub>Q</sub> + c<sub>4</sub>) + <sup>b</sup>l<sup>(c</sup>0 <sup>+ c</sup>4 <sup>+ c</sup>3<sup>)</sup><sub>2</sub> = b<sub>1</sub>(c<sub>1</sub> + c<sub>Q</sub> + c<sub>3</sub> + c<sub>2</sub>) + b<sub>Q</sub>(c<sub>1</sub> + c<sub>4</sub> + c<sub>3</sub> + c<sub>2</sub>) + b<sub>4</sub>(c<sub>Q</sub> + c<sub>2</sub>) + b<sub>3</sub>(c<sub>1</sub> + c<sub>Q</sub>) + <sup>b</sup>2<sup>(c</sup>l <sup>+ c</sup>0 <sup>+ c</sup>4<sup>)</sup><sup> d</sup>3 <sup>= b</sup>2<sup>(c</sup>2 <sup>+ C</sup>l <sup>+ C</sup>4 <sup>+ c</sup>3<sup>) + b</sup>li<sup>c</sup>2 <sup>+ C</sup>0 <sup>+</sup> c<sub>4</sub> ÷ c<sub>3</sub>) + h<sub>Q</sub> { c<sub>λ</sub> + c<sub>3</sub>) + b<sub>4</sub>(c<sub>2</sub> + c<sub>±</sub> ) + b<sub>3</sub>(c<sub>2</sub> + c<sub>±</sub> + c<sub>Q</sub>) and d<sub>4</sub> = b<sub>3</sub>(c<sub>3</sub> + c<sub>2</sub> + c<sub>Q</sub> + c<sub>4</sub>) + b<sub>2</sub>(c<sub>3</sub> + c-, + <sup>c</sup>0 <sup>+ C</sup>A <sup>) + b</sup>l<sup>(c</sup>2 <sup>+ c</sup>4<sup>) + b</sup>0<sup>(c</sup>3 <sup>+ c</sup>2 <sup>) +</sup> b<sub>4</sub>(G<sub>3</sub> + ~ + Cn ) - li ¬ lt will be appreciated from the above that by establishing logic connections to generate the first grouped term b. (c„ + c, + c, + c_) of d<sub>n</sub> , the first grouped 4 4 3 1 0 ϋ term of the binary digits d , d , d , and d will also be generated by these same connections if the bit vectors of B and C are successively rotated one place to the right. The applicants have recognised tha if connections are also established to generate the second grouped term of d after the generation of the first grouped term and the bit vectors have been rotated, the connections will in fact generate the second grouped term of d, prior to rotation of the bit vectors B and C. Thus by establishing connections to generate successive group terms of the binary digits d„ in successive clock cycles, it is possible to accumulate in parallel each of the binary digits of the product vector. This simplifies implementation of the logic.
0069Referring therefore to Figure 1, a multiplier 10 includes a pair of shift registers 12, 14 each having m cells 16. Shift registers 12 and 14 are loaded with bit vectors B and C respectively so that<sup>'</sup>each cell 16 contains one of the binary d igi ts b . or c ..
0070^ 1 1
0071The shift registers 12, 14 are connected, in a manner to be described below, to the respective ones of accumulating cells 18 of a term accumulating register 20. The register 20 will have m cells 18 each of which is configured as shown in Figure 2. Referring to Figure 2, each ceil 18 receives a pair of inputs 22, 24 that originate from the shift registers 12, 14 -Ir¬
0072respectively and an input 26 from the adjacent cell 18 of the register 20. The inputs 22, 24 are connected to inputs of an AND gate 28. The output of gate 28 is added to the input 26 at MOD 2 ADDER 30 whose output is connected to a latch 32. The output of latch 32 forms the input 26 of the next cell 18 and receives a clock signal 34 to store the output of ADDER 30.
0073The nature of inputs 22, 24 is determined by the connections implemented between the cells 16 of shift registers 12, 14 and the cell 18. The connections are arranged such that one grouped term of the binary digits d. is generated at the output of AND gate 28. Thus for the binary digits d to <sub>4</sub> shown above, the binary digits b<sub>Q</sub> to b<sub>4</sub> and c to c<sub>4</sub> are stored in shift registers 12, 14 respectively as indicated in Figure 1. A first grouped term of d<sub>Q</sub> is to be accumulated in cell 18 indicated as d<sub>Q</sub> in Figure 1, i.e. the output of AND gate 42 will represent the grouped term <sup>b</sup><sub>n</sub>(<sup>c</sup>4 + c<sub>3</sub> + c<sub>2</sub>). To implement this, a connection is established from the cell 16 of shift register 12 containing the binary digit b<sub>Q</sub> to form input 22. Connections from cells 16 of shift<sup>'</sup> register 14 containing binary digits c<sub>4</sub>, c<sub>3</sub> and c<sub>2</sub> are made to ADDER 36 whose output, representing c<sub>4</sub> + c<sub>3</sub> + c<sub>2</sub>, forms the input 24 to AND gate 28. The output of AND gate 28 will thus be b<sub>Q</sub>(c<sub>4</sub> + c<sub>3</sub> + c<sub>2</sub>) .
0074Connections are made between the shift register 12, 14 and the cell 18 indicated as d<sub>1</sub> to generate the penultimate grouped term of d-^, i.e. the term b<sub>2</sub>(c<sub>Q</sub> + c<sub>4</sub>). Thus cells 16 of shift register 14 containing the binary digits c and c. are connected to adder 38 whose output forms input 24 of the cell 18 designated d and cell 16 of shift register 12 containing binary digit b<sub>?</sub> is connected as the input 22 of cell 18 designated d. so that the output of AND gate 28 is b<sub>2</sub>(c<sub>Q</sub> + c<sub>4</sub>) .
0075Similarly the shift registers 12, 14 are connected to the cell 18 indicated d<sub>2</sub> to generate the third term of binary digit d„ , i.e. b (c. + c~) ; to the cell 18 indicated d., to provide the second term of binary digit d.. , i.e. b, (c_ + c<sub>n</sub> + c + c-.) ; and to the cell 18 indicated 1 2 0 4 3 d. to produce the first term of binary digit d , i.e. b<sub>3</sub>(c<sub>3</sub> + c<sub>2</sub> + c<sub>Q</sub> + c<sub>4</sub>) .
0076In general, therefore, the jth cell 18 of accumulating register 20 is connected to the shift registers 12, 14 to produce the jth grouped term of a binary digit d. with the subscripts of binary digits b. and c, increased by j-1 using modulo arithmetic. This adjustment of the subscripts of the grouped term is called "offsetting" and ensures that each of the m accumulating cells generates one grouped term of each of the binary digits d. during each of m successive clock cycles.
0077With the connections established the binary digits d<sub>n</sub> to d<sub>ς</sub> can be generated as follows.
0078First, the binary digits b_ to b are loaded into shift register 12 and the binary digits c<sub>n</sub> to c<sub>c</sub> are loaded
00790 5 into shift register 14. These may be loaded in parallel or in series as is most appropriate for the particular shift register utilised. The contents of the latches 32 of the cells 18 of accumulating register 20 are cleared by loading zeroes into each. Upon initation of the multiplication, the grouped terms corresponding to the connections noted above will be generated at the output of each AND gate 28. Because each of the inputs 26 is zero the outputs of the MOD 2 ADDER 30 in each case will correspond to the output of the AND gate 28.
0080On the first rising edge of the clock signal, the output, of each ADDER 30 is entered into the corresponding latch 32 to appear as the input of the adjacent cell 18. Thus, latch 32 of cell 18 designated d« will contain the term b„ (c . + c<sub>3</sub> + c<sub>2</sub>) , latch 32 of cell 18 designated d, will contain the term b~ (c<sub>fl</sub> + c.) etc. The first rising edge of the clock, signal causes the simultaneous rotation one position to the right of the contents of registers 12, 14 respectively so that the binary <sup>J</sup> dig ~its b1. and c1. are transferred to an adjacent cell. Thus, the inputs to cell 18 designated d<sub>n</sub> will now be b. from shift register 12 and (c, + c„ + c-.) from the adder 36. The output of AND gate 28 of cell 18 designated d<sub>Q</sub> will thus be (c. + c<sub>2</sub> + c^ ) . The input 26 of cell 18 (d<sub>Q</sub>) will be the contents of latch 32 of cell 18 (d<sub>4</sub>) , i.e. b<sub>3</sub> (c<sub>3</sub> + c<sub>2</sub> + c<sub>Q</sub> + c<sub>4</sub>) and thus the output of the MOD 2 ADDER 30 of cell 18 (d<sub>Q</sub>) will be <sub>4</sub>(<sub>C;L</sub> + c<sub>2</sub> + c<sub>3</sub>) + b<sub>3</sub>(c<sub>3</sub> + c<sub>2</sub> + c<sub>Q</sub> + c<sub>4</sub>) . It will be seen that this corresponds to two grouped terms of the binary digit d. set out above. A careful consideration of the output of each ADDER 30 will show that the sum of two grouped terms of each binary digit d. will appear as the input of respective latches 32.
0081On the next rising edge of the clock signal, the outputs of each ADDER 30 will be entered into respective latches 32 and the binary digits b. and c. rotated in the shift registers 12, 14 respectively. Thus, the contents of the latch of cell 18 (d<sub>Q</sub>) , namely b<sub>4</sub> (c<sub>χ</sub> + c<sub>2</sub> + c<sub>3</sub>) + b<sub>3</sub> (c<sub>3</sub> + c , + c + c.) will be present as input 26 of cell 18 (d ) and the output of AND gate 28 of cell 18 (d,) will be b<sub>n</sub> (c + c-. ) , i.e. a third grouped term of the binary digit d<sub>4</sub>. It will be appreciated that after five clock cycles, the sum of all grouped terms of the binary digit d. will be stored in the latch of cell 18 designated d-, and similarly the sum of all the grouped terms of binary digits d-. to d„ will be stored in respective ones of cells 18. Thus, the bit vector constituting the normal basis representation of product D is available by reading the :ontents of the accumulating register 20.
0082It will also be noted the connections from the cells 16 of shift registers 12, and 14 are distributed amongst the cells 18 of accumulating register 20 to reduce the number of inputs of any adder.
0083Whilst the above multiplier constitutes a significant improvement over tha described in the European patent application 0080528, the number of connections may be reduced further although the number of clock cycles required to generate the binary digits d, is increased. A multiplier for the
0084- 5 field GF(2 ) is shown in figure 3 and is similar to that shown in figure 1. Accordingly the reference numerals used in the description of figure 1 and 2 will be used to identify like components with a prefix 100 added, i.e. reference numeral 12 will become 112. The arrangement shown in figure 3 differs in two important ways, namely the provision for exchang¬ ing the contents of shift registers 112 and 114 as indicated by dashed lines 150, 152 and the nature of the connections between the cells 116 and cells 118. It will also be noted that the shift registers 112, 114 are controlled by a separate clock signal, indicated at clock 1, to the accumulating register 120 whose clock signal is indicated at clock 2.
0085The nature of the connections is established from a further manipulation of the terms representing the binary digits d.. Thus considering the binary digit d<sub>4</sub> above, this may be written as: b<sub>3</sub>c<sub>3</sub>+b<sub>3</sub>c<sub>2</sub>+b<sub>3</sub>c<sub>0</sub>+b<sub>3</sub>c<sub>4</sub>+b<sub>2</sub>c<sub>3</sub>+b<sub>2</sub>c<sub>1</sub>+b<sub>2</sub>Cg+ b<sub>2</sub>c<sub>4</sub>+b<sub>1</sub>c<sub>2</sub>+b<sub>1</sub>c<sub>4</sub>+b<sub>0</sub>c<sub>3</sub>+b<sub>4</sub>c<sub>3</sub>+b<sub>4</sub>c<sub>2</sub>+b<sub>4</sub>c<sub>1</sub> and rearranged as b<sub>3</sub>c<sub>3</sub>+[b<sub>3</sub>c<sub>2</sub>+b<sub>2</sub>c<sub>3</sub>] + [b<sub>3</sub>c<sub>0</sub>+b<sub>Q</sub>c<sub>3</sub>] + [b<sub>3</sub>c<sub>4</sub> + b<sub>4</sub>c<sub>3</sub>] + [b<sub>2</sub>c<sub>1</sub> + b<sub>1</sub>c<sub>2</sub>] + b<sub>2</sub>c<sub>4</sub> + b<sub>4</sub>c<sub>2</sub>]
0086<sup>[b</sup>l<sup>c</sup>4 <sup>+ b</sup>4<sup>c</sup>l<sup>]</sup> It will be observed tha the terms within the brackets
0087[] possess a symmetry such that if one product term is of the form b.c, , the other product term is obtained by j k interchanging the suffixes, i.e. b.c.. It has been
0088K j recognised that by implementing the logic to produce one product term of each pair, the other product term may be obtained from a simple interchange of the contents of th<sup>~</sup>e shift registers and by a repeated circuit operation each of the product terms of each pair may be obtained. Moreover, the offsetting principle still applies so that the terms of each binary digit will be generated in parallel. The expression for digit d. is
0089b<sub>3</sub>c<sub>3</sub> + <sup>bb</sup>33<sup>CC</sup>22 D<sub>2</sub>C<sub>3</sub>
0090+ + <sup>b</sup>3<sup>C</sup>0 <sup>b</sup>0<sup>C</sup>3
0091+ + <sup>b</sup>3<sup>C</sup>4 *4<sup>C</sup>3
0092+ + 2<sup>C</sup>l <sup>b</sup>l<sup>C</sup>2
0093+ + <sup>b</sup>2<sup>C</sup>0 <sup>b</sup>0<sup>C</sup>2
0094+ +
0095<sup>D</sup>2<sup>C</sup>4 <sup>b</sup>4<sup>C</sup>2 <img file="WO8804805A1_D0005.tif" />
0096The product terms in column Y are then selected and like terms grouped as discussed above with reference to figure
00971. Thus column Y may be expressed as b,. (c_ + c. + c ) + b 2_(c1<sub>η</sub> + c0- + c4.) + b.1c4,,. By implementing the logic to generate these terms in successive cells 118 of accumulating register 120, the terms of column Z will also be generated after interchange of the shift registers 112, 114 by a second pass through the accumulating cells. The odd term of column X may be generated during one of the two passes through the cells 118 with its generation inhibited during the other pass.
0098It will be noted that the grouped terms of column Y would require 3 inputs to two of the ADDERS whilst only 3 of the accumulating cells 118 are utilised. In order to spread the connections evenly between the cells 118, the expression is modified to select one of each pair of product terras but obtain a different grouping. Thus, in the example above, the third and sixth product terms are selected from column Z rather than Y so that the expression b-, (c<sub>2</sub> + c<sub>Q</sub>) + b (c., + c<sub>2</sub>) + b<sub>2</sub> (c, + c<sub>fi</sub>) + b,c, is to "be implemented. This increases the number of cells 118 utilised and reduces the number of connections to some of the ADDERS.
0099Referring therefore to figure 3, the final term b,c. is implemented in the cell 118 designated d 1 4 o
0100(referred to hereafter as 118 [d ] } by connecting cell 116 of shift register 112 containing binary digit b, and cell 116 of shift register 114 containing binary digit c, to the AND gate 128. The connections to the second of cells 118 is established from a second term with the suffixes of the binary digits increased by 1, Modulo 5 i.e. b, (c^ + c, ) and in general the jth cell 118 accumulates a jth term of the expression with suffixes increased by j-1 (Modulo m) .
0101Connections are also established to implement the odd term b~c of col .ax X in cell 118 designated d . The connections to d are modified to include an AND gate 154 to inhibit the accumulation of the add terms e.g. b-.c . The
0102AND gate 154 is located between the cell 116 designated c, and
0103ADDER 160 and receives as one input the output of cell 116 and as its other input an inhibit signal 156 derived from the clock signal. When the inhibit signal 156 is logic level 0, the output of AND gate 154 will be zero so that zero will be added by ADDER 130 to the contents of the latch 136 of the previous cell 118 [d<sub>3</sub>] -
0104With the connections established, the binary digits „ to b <sub>Λ</sub> and c„ to c are loaded in respective cells 116 0 4 0 4 of shift registers 112, 114. The contents of each cell 118 is cleared so that each latch 132 contains 0 and the inhibit signal 156 is held at logic level 0 to force the output of AND gate 154 to also be zero.
0105The contents of the shift registers 112, 114 and the cells 118 are then rotated one bit position rightwards by successive clock cycles so that after clock cycles one of each part of the paired product terms is accumulated in respective cells 118. The generation of the terms is shown in table 1 below.
0106Thus, it will be seen that the terms in d<sub>4</sub> correspond to the rewritten expression for one of each of the pairs of product terms.
0107After five clock cycles, registers 112, 114 will have undergone a complete rotation so that binary digits b. and c - will be stored in the cells 116 in which they were initially loaded.
0108- Now the contents of the shift registers 112 and 114 are exchanged through connections 150, 152. This may be accomplished by shifting the contents of both registers 112, 114 for five clock cycles as a serial, circular exchange or alternately could be achieved by parallel connections between cells 116. Serial exchange is shown in Figure 4 and is easiest to implement for large values of m. During the exchange, clock 1 goes through five cycles while clock 2 is held low to prevent unwanted terms accumulating in register 120. When binary digits d. pass through accumulating cells, both clock signals are identical.
0109After the exchange of binary digits, the inhibit signal 156 is set to logic level 1 so that AND gate 154 passes the input from cell 116 to the input of ADDER 160. The circuit operation then continues as exemplified by the table below for the next five clock cycles. Again, it will be seen that the terms of each of the binary digits d. are accumulated in each of the cells 118 in parallel so that after 2m clock cycles of computation the binary digits of D are available in the cells 118 of accumulating register 120. Because of the need to exchange the contents of the shift registers 112, 114, additional clock cycles are required to complete the computation. However, the number of the connections between the shift registers and the accumulating register in the multiplier of Figure 3 is less than those shown in the multiplier of Figure 1 to compensate for this.
0110The implementation shown in Figure 3 has been used to illustrate the generality of the above principle. However, in practical implementations particularly for large valves of m, the connections may be simplified further by selecting the grouped terms in ascending order of the coefficient b. or c.. In this manner a maximum of two connections between each
01111 cell of one of the shift registers and the accumulating register is obtained.
0112In order to reduce the time taken to compute the binary digits d. , the multiplier of Figure 3 can be further modified as shown in Figure 4. Again like components will be identified by like reference numerals with a prefix 2 added for clarity. Figure 4 shows a multiplier for generating the binary digits d. in the field GF(2<sup>6</sup>) . It will be noted that the shift registers 212 and 214 have been segmented into 3 units, 212a, b, or c and 214 a, b or c respectively, each having two cells 116. Similarly, the accumulating register 220 is segmented into 3 units 220 a, b or c each having two cells. It will be noted that each of the shift register units 212 a, b, and c is connected to a corresponding shift register unit 214 a, b and c by paths 250 a, b, c, and 252 a, b, c respectively. The paths 250,252 are utilised to exchange the contents of the registers 212, 214 between units a, b and c rather than through the entire shift register. In this way the number of clock cycles necessary to transfer the contents of the shift register is reduced from m to the number of cells 216 in each unit.
0113The binary digit d,. of product D in GF (2 ) is given by
0114d<sub>5</sub> = b<sub>5</sub>c<sub>5</sub> + b<sub>5</sub>c<sub>4</sub> + b<sub>4</sub>c<sub>5</sub>
0115+ b<sub>2</sub>c<sub>5</sub> + b<sub>5</sub>c<sub>2</sub>
0116<sup>+ b</sup>0<sup>C</sup>5 <sup>+ b</sup>50 + b<sub>lC2</sub> + b^
0117+ b^ + b<sub>χ</sub>c<sub>3</sub>
0118+ b<sub>4</sub>c<sub>2</sub> + b<sub>2</sub>c<sub>4</sub>
0119<sup>+ b</sup>0°3 <sup>+ b</sup>3°0 + b<sub>2</sub>c<sub>Q</sub> + b<sub>Q</sub>c<sub>2</sub>
0120Thus by implementing the expression b<sub>Q</sub> (c<sub>3</sub> + c<sub>5</sub>) + b<sub>1</sub>c<sub>2</sub> + b<sub>2</sub>(c<sub>Q</sub> + C<sub>5</sub>) + b<sub>3</sub>c<sub>χ</sub> + b.c<sub>2</sub> + b<sub>ς</sub> {c . + c<sub>5</sub>) the binary digits d. of the normal basis representation of the product D can be generated. It is believed to be apparent from the above discussion that the initial connections to be established are as follows: cell 118 physical connection
0121<img file="WO8804805A1_D0006.tif" /><sup>d</sup>l <sup>b</sup>2<sup>C</sup>3 <img file="WO8804805A1_D0007.tif" /><sup>d</sup>3 <sup>b</sup>0<sup>C</sup>4 <sup>d</sup>4 <sup>b</sup>2<sup>C</sup>0 <sup>d</sup>5 <sup>b</sup>4<sup>(C</sup>3 <sup>+ C</sup>4<sup>}</sup>
0122In this case, the odd term is generated initially in cell 218 [d<sub>ς</sub>] and the input to the adder 236 associated with cell 218 [d<sub>c</sub>] that is initially from the cell 216 containing digit c. is inhibited after the first pass tnrough the accumulating register 220 by use of an AND gate in a manner similar to that shown in Figure 3.
0123The operation of the multiplier of figure 4 is similar to that described above with reference to figure 3. However, exchange of the contents of the registers 212, 214 occurs over the lines 250, 252 to reduce from 6 to 2 the number of clock cycles necessary to complete the exchange.
0124It is believed the above examples clearly and explicitly explain the operation of GF (2 ) the multiplier. Relatively small values of m have been selected for the sake of simplicity but it will be apparent that the above principles apply for large values of usually employed in encryption.
0125However, for the larger values of usually utilised in encryption, the number of product terms in the expression for binary digit d may increase quadratically with the value of m. This renders the implementation of a multiplier impractical because of the large number of connections necessary. For those values of m listed in Table 3 there does exist an optimal normal basis in the sense that it yields an expression d. that has 2m-l product terms, the smallest number possible. Each of the integers m has an indication of type for use in the computer program discussed below. The binary digits b.c. of the binary digit d„ of the product vector D for the optimal normal basis of a value of m listed in Table 3 may be obtained executing the computer program listed in appendix 1. By running the program for m=6 the following results were obtained:
0126<sup>d</sup>o - 5 5 0 1 1 0 4 1 1 4 5 3 3 5 4 2 2 4 3 2 3 which yields the equation for d„ as:
0127<sup>d</sup>0 <sup>= b</sup>5<sup>C</sup>5 <sup>+ b</sup>0<sup>+C</sup>l <sup>+ b</sup>l<sup>C</sup>0 <sup>+ b</sup>4<sup>C</sup>l <sup>+ b</sup>l<sup>C</sup>4 <sup>+</sup> b<sub>5</sub>c<sub>3</sub> +b<sub>3</sub>c<sub>5</sub> + b<sub>4</sub>c<sub>2</sub> + b<sub>2</sub>c<sub>4</sub> + b<sub>3</sub>c<sub>2</sub> + b<sub>2</sub>c<sub>3</sub>
0128Figure 5 shows the implementation of this expression for the segmented GF(2 ) multiplier shown in Figure 4 with appropriate modifications to the connections to implement the above. The rearrangement of d„ to obtain these connections will be apparent from the above and consideration of Figure 5.
0129An optimal multiplier design exists for every value of m listed in Table 3 such that every accumulating cell 218 has a single input from same shift register cell 216. Thus, m modulo-two ADDERS are eliminated as compared to the multipliers of Figures 1, 3 and 4 further simplifying the circuitry.
0130In addition, the applicants believe that the maximum number of connections to the output of any shift register cell 216 is three.
0131The above description has utilised block diagram representations of the registers 12, 14, 20 and the adders and logic functions. However, it is believed that the selection and operation of the components to perform the functions discussed above will be apparent to a person skilled in the art of digital logic design and that further particula risation of the components is not necessary.
0132Clearly different offset patterns may be chosen whilst utilising the principle of parallel generation of terms of each of the binary digits of d.. -26- α Ci o
0133+ + — t i i —<sup>•</sup> n
0134#—% <sub>*</sub>»«» . A- A m <sup>■</sup>V ( H rO Η υ + .+
0135+ * # o o - £ tN * *«<sup>•</sup> * m + u υ u υ υ
0136•*-** **■* * υ o υ T + + υ -H n (
0137H «H O r O v H u u
0138A JQ J3 Λ A A A — ' —
0139f» <sup>■</sup>«r < -i m + C r-t «r rH u
0140* o * o 4 «?c ¥ N ¥ f U +<sup>•</sup> ~J~ ¥ <n ¥ ( + * O <? + u υ υ u o <sup>«</sup>—
0141<sub>^^</sub> + u υ n o υ υ — ' "f o mi mm.
0142«n -i O en o A •H (J «* f) o «-t n C
0143<sup>•</sup>Ό I A A A A + X) "-* J3 J3 Λ 3 Λ
0144<img file="WO8804805A1_D0008.tif" />
0145—r m -+ CN CN
0146CN —»
0147+ J3 O
0148CN + υ ¥ Q * o +. ¥ <*»• ¥ o ¥ xr + ¥ m u <sup>•</sup>«r + m u J- N U o o •-• u
0149U -i υ — w ςj f- •H υ σ *-} ■H IT O Ή o m T
0150A XI <sup>«</sup>-' XI XI A A A A A A A
0151•H o U u O + O + + + + - + <*> υ o CN O O CN o υ o o υ υ U *- r-i u "— u
0152XI — «τ — O U
0153+ o "<r Γ
0154H X> A I A
0155*Q o X3 + XI + Λ XI + + + ts (~ mT\
0156CJ o u 1 u u CN +<sup>•</sup> «*<sup>•</sup> H^
A A
0158+ + + rΛ + £ + *r ΓN C u O «» «». .-»
0159A T H *r 4- X3 m IN m ¥ ¥.A *
0160+ .U U υ o + u o χι o T + «r o m + + + ( U CN "r <sup>■</sup>*<sup>•</sup> + -i y u Ή XJ XI O O CN HΛ <sup>«</sup>-' U en o A
0161<sup>Q</sup> U U 0 C -* <sup>•</sup>+ υ υ A H H o m o y
0162T3 <sub>Λ</sub> w y X) XI w y A A A U -f
0163+ + — + + Ή O m m o Λ "^ ~N + + N n u m + IT m υ o + υ A A
0164+ + \n " • 'r + + n + N + +
0165O + «< <H X3 o <c + υ Xi A H ^ U a A m Ή υ U U <→ + + + 0 U U + XI XI yN w u w u — (-1 mm- (j CO O T — • w <sup>1</sup> CN —i •>— n «-J «» O IN O H o m o xi A m O A A A O T
0166Λ XI A A + A A A — w A A + + — u υ
0167CN <img file="WO8804805A1_D0009.tif" />
0168+ + ιH <n <-ι + IN O <- ~i U u y + .H _»
0169A c W-T, - + + r-« y ■*<sup>■</sup> IN •*<sup>■</sup> <n l +T Λ<sup>*</sup>H + o U Λ N + ^ o IN u + + χι U U O o.+ <* + υ u V Λ n. u y <sup>•</sup> w M n + w w ( ( O ^H w w J^ mm- mm. O w w IN .Ω X) o n o v (N J3 H y <sup>■</sup>*<sup>■</sup> en «-<sup>(</sup> IN o O H m Λ CN O XI
0170A A A A "-* Xϊ "— J3 A o υ Λ J3 XJ J3 + y U w
0171+ • +
0172o
0173<sup>•</sup>Ό <img file="WO8804805A1_D0010.tif" />
0174CO : u u J
01753 u u u <img file="WO8804805A1_D0011.tif" />
0176m
0177T3 <img file="WO8804805A1_D0012.tif" />
0178<img file="WO8804805A1_D0013.tif" />
0179<img file="WO8804805A1_D0014.tif" /> TAβi. £ U
0180ra m ra ■m
2 - TYPE 1 3 TYPE 2 4 TYPE 1
6 TYPE 2 5 - TYPE
01839 2
TYPE 2 10 - TYPE 1
12 - TYPE 1 11 TYPE
018614 2
0187TYPE 2 ia - TYPE 1
018826 - 23 -
TYPE 2 TYPE
01902a 2
TYPE 1 29 -
33 - TYPE 2
TYPE 2 30 -
35 - TYPE 2
TYPE 2 36 -
41 - TYPE 1
TYPE 2 39 -
50 - TYPE 2
TYPE 2 51 TYPE 2
020053 - TYPE 2 52 - TYPE 5β - 1
TYPE J 60 -
66 - TYPE 1
TYPE 1 65 - TYPE 69 - 2
TYPE 2 74
82 - TYPE 2
0206TYPE 1 βl 63 TYPE 2
TYPE 2 66
90 - TYPE 2 09
TYPE 2 TYPE
021095 - 2
0211TYPE 2 9a - 00 - TYPE 2 99 -
TYPE 1 TYPE 105 - 2
TYPE 2 106 - 19 - TYPE 1
TYPE 2 113 - TYPE 130 - 2
TYPE 1 131 - 35 - TYPE 2 134 -
TYPE 2 YPE 138 - .2
0217TYPE 1 146 - TYPE 2 55 - 14β -
TYPE 2 TYPE 158 - 1
TYPE 2 162 - TYPE 1 73 - 172 -
TYPE 2 TYPE 174 - 1
TYPE 2 178 - SO - TYPE 1 179
TYPE 1 TYPE 2
183 - TYPE 2 186 91 - TYPE 2 169 -
TYPE 2 TYPE 194 - 2 TYPE 2 196 10 - TYPE 1 209 -
TYPE 1 TYPE 2 221 - TYPE 2 226 - 31 - TYPE 1 230 -
TYPE 2 TYPE 2 233 - TYPE 2 239 - 45 - TYPE 2 243 -
0227TYPE 2 TYPE 2 251 TYPE 2 254 - 6β - TYPE 2 261 -
0228TrPE 1 TYPE 2
0229270 - TYPE 2 273 - aι - TYPE 2 278 -
TYPE 2 TYPE 2 292 - TYPE 1 293 - 03 - TYPE 2 299 -
0231TYPE 2 306 - TYPE 2 TYPE 2 309 - 23 - TYPE 2 TYPE 2 316 - 326 TYPE 1 TYPE 2 32V - 3a - TYPE 2
TYPE 2 330 - TYPE
346 - 2 TYPE 1 54 - TYPE 1 350 -
TTPE 2 TYPE 2 359 - TYPE 2 371 - 5 - TYPE 2
0235TYPE 2 372 - TYPE 1 37β - TYPE 1 386 3 - TYPE 2
TYPE 2 388 - TYPE 1 396 - TYPE 2 410 - 13 - TYPE 2 411 - TYPE
TYPE 2 2 414 - TYPE 2 418 - 0 - TYPE 1 419 -
0238TYPE 1 TYPE 2 426 - TYPE 2 429 - a - TYPE 2 431 - TYPE
TYPE 2 2
441 - TYPE 2 442 - TYPE 1 3 - 443 - TYPE 2 TYPE 2
460 - TYPE 1 466 - 3 - TYPE 1 470 - TYPE 2
TYPE 2 483 - TYPE 2 490 - TYPE 1 491 - 5 TYPE 2
TYPE 2 508 - TYPE 1 5C9 - 9 - TYPE 2 515 - TYPE 2
0244TYPE 2 522 - TYPE 1 Q - 530 - TYPE 2 531 - TYPE TYPE 1 2 543 - TYPE 2 4 - S45 - TYPE 2 TYPE 2 546 - TYPE 1 556 - TYPE 1 *5β - 2 - TYPE 2 561 - TYPE 2 TYPE 1 575 - TYPE 2 585 - 3 - TYPE 2 586 - TYPE 2 TYPE 1
0245606 - TYPE 2 611 4 TYPE 2 TYPE 2 612 - TYPE 1 615 - TYPE 2 618 - TYPE 1 TYPE 2 629 - TYPE 2
0246639 - TYPE 2 641 0 - TYPE 2 TYPE 2 645 - TYPE 2 651 TYPE 2 a - 652 - TYPE 1 TYPE 1 653 - TYPE
0247659 2 TYPE 2 660 TYPE 1 676 TYPE 1 m m
02486& 1 TYPE 2 <sup>•</sup>m-
0249686 ΓYPE 2 690 TYPE 2 70S TYPE 1 700 TYPE 1 713 TYPE 2 719 TYPE 2
0250725 - TYPE 2 723 TYPE 2 726 TYPE 2 741 TYPE 2 746 - 743 TYPE 2 TYPE 2 Ϊi9 T PE 2 755 TYPE 2 761 - 756 TYPE TYPE 2 1 ?65 TYPE 2 771 TYPE 774 - 2 TYPE 2. 772 779 TYPE
0251- 1 TYPE 2 783 TYPE 2 786 785 TYPE 1 TYPE 791 2 TYPE 2 796 - TYPE _ 809 1 803 TYPE 2 TYPE 810 2 TYPE 2 818 TYPE 2 826 620 TYPE 1 TYPE 1 828 TYPE 1 831 TYPE 2 834 - 833 TYPE 2 TYPE 646 2 TYPE 2 852 TYPE 1 856
866 TYPE
TYPE 2 1
0254870 - TYPE 2 873 - TYPE 2 876 <sub>β</sub> TYPE 1
879 TYPE 2 882 - TYPE 1 891 - TYPE 2 893
906 TYPE 2
0257TYPE 1 911 - TYPE 2 923 - TYPE 2 930 _
TYPE 2 TYPE 2
933 935 - TYPE 2 938 - TYPE
026094Q 2 939 <sub>—</sub>
TYPE 1 TYPE 2
0262946 - TYPE 1 950 — TYPE 2 953 <sub>β</sub>
965 E 2 TYPE 2
TYP 974 - TYPE 2 975 — TYPE 2 986 69 TYPE 2 TYPE 2
9 993 - TYPE 2 998 - TYPE
02661014 2 1013 <sub>β</sub> TYPE 2
TYPE 2 1018 - TYPE 1 1019 — TYPE 2
02681031 1026
TYPE 2 TYPE 2
1034. - TYPE 2 1041 — TYPE 2
02711049 1043 <sub>mΛ</sub>
TYPE 2 TYPE 2
1055 ; TYPE 2 1060 - TYPE 1
02741070 — 1065 <sub>β</sub>
TYPE 2 TYPE 2
02761090 - TYPE 1 1103 - Trpε 2 1106 <sub>β</sub>
1108 TYPE 2
0278TYPE 1 1110 - TYPE 2 1116 — TYPE 1 1116 <sub>m</sub>
1119 - TYPE 2
0280TYPE 2 1121 TYPE 2 1122 - TYPE 1134 - 1 1133 - TYPE 2 — TYPE 2 1146 TYPE 2 1154 TYPE 2
1166 - 1155 TYPE 2
0282TYPE 2 1169 - TYPE 2 1170 — TYPE 1 1176 <sub>—</sub>
1185 TYPE 2
0284TYPE 2 1186 - TYPE 1 1194 — TYPE 2 1199 <sub>—</sub>
1211 TYPE 2
0286TYPE 2 1212 TYPE 1 1218 TYPE 2 1223 "" 1228 - TYPE TYPE 1 2 1229 - TYPE 2 1233 - TYPE 1238 - 2 1236 TYPE 2 TYPE 1 1251 TYPE 2 1258 TYPE 1
1269 1265 TYPE 2
0288TYPE 2 1271 .- TYPE 2 1274 - TYPE 2 1275 <sub>—</sub>
1276 E 1 TYPE 2
0290TYP 1278 - TYPE 2 1282 - 1290 - TYPE 1 1289 <sub>β</sub>
TYPE 1 TYPE 2
02921295 - TYPE 2 1300 - TYPE 1 1306 _ - TYPE 1
02931210 TYPE 2 1323 TYPE 2 1329 - TYPE 1338 2 1331 - TYPE TYPE 2 1341 <sup>•</sup> - 2 TYPE 2 1346 TYPE 2 1353 - 1349 TYPE 2
0294TYPE 2 1355 TYPE 2 1359 — TYPE 1372 - 2 1370 - TYPE 1 TYPE 2 1380 : TYPE 1 1394 TYPE
1401 2 1398 TYPE 2
0296TYPE 2 1409 - TYPE. 2 1418 - TYPE 2 1421 <sub>w</sub> TYPE 2
02971425 TYPE 2 1426 - TYPE 1 1430 - TYPE 2 1439 _
1443 - TYPE 2
0299TYPE 2 1450 - TYPE 1 t451 - TYPE 2 1452 <sub>—</sub>
03001 <sup>,</sup>54. TYPE 1
0301TYPE 2 1463 - TYPE 2 1469 - TYPE 2 1478 _
030214.& T TYPE 2
TYPE 2 1482 - TYPE 1 1492 - TYPE 1
030414.99 - 1498 <sub>—</sub> TYPE 1
0305TYPE 2 1505 - TYPE 2 1509 - TYPE 2 1511 <sub>w</sub>
1518 TYPE 2
0307TYPE 2 1522 - TYPE 1 1530 - TYPE 1 1533 <sub>—</sub>
1539 TYPE 2
0309TYPE 2 1541 TYPE 2 154S — TYPE 1570 1 1559 - TYPE 1 TYPE 2 1583 - TYPE 2 1593 TYPE 2 1601 TYPE 2 m <sup>■</sup> ra ~. m i ia TYPE 1 1620 TYPE 1 1626 TYPE 2 1636 TYPE
03101649 X P i 2 1653 TYPE 2 16.59 TYPE 2 1661 _ TYPE 2
03111666 TYPE 1 166β TypE 1 1 73 - TYPE 2 1679 _ TYPE 2
03121685 τ r p ε 2 1692 TY E I 1703 TYPE 2 1706 _ ΓY £
1 0 - YPE 2 1732 - TYPE 1 1733 - TYPE 2 1734 .. TYPE
03141740 TYPE 1. 1745 - TYPE 2 1746 - TYPE 1 1749 _ TYPE 2
03151 55 TYPE 2 1753 - TYPE 2 1763 - TYPE 2 1766 _ TYPE 2
03161769 TYPE 2 1773 - TYPE <sup>'</sup>2 1778 - TYPE 2 1779 _ TYPE 2
03171785 ΓYPE 2 17β6 TYPE 1 1790 - TYPE 2 1791 _ ιao TYPE 2
0318TYPE 2 1611 TYPE 2 ιaιa - TYPE 2 1621 TYPE 2
03191829 TYPE 2 1835 - TYPE 2 1838 - TYPE 2 1845 _. TYPE 2
03201850 TYPE 2 1854 TYPE 2 1859 - TYPE 2 1360 _ TYPE 1
03211863 TYPE 2 1866 TYPE 1 1876 -- TYPE 1 1663 _ TYPE 2 ιaa9 TYPE 2 1690 TYPE 2 1900 - TYPE 1 1901 _
1906 TYPE 2
0323TYPE 1 1923 TYPE 2 1925 - TYPE 2 1926 ..
1930 TYPE 2
0325TYPE 1 1931 TYPE 2 1938 - TYPE 2 1946 _ TYPE 1
03261 53 TYPE 2 1955 - TYPE 2 1958 - TYPE 2 1959 _ TYPE 2
03271 61 TYPE 2 1965 TYPE 2 1972 - TYPE 1 1973 _ TYPE 2
03281978 TYPE 1 1933. - TYPE 2 1986 - TYPE 1 1994 _ TYPE 2
03291996 TYPE 1 2001 , - TYPE 2 2003 - TYPE 2 2006 _ TYPE 2
03302009 TYPE 2 2010 TYPE 2 2026 - TYPE 1 202a _ TYPE 1
03312039 TYPE 2 2045 TYPE 2 2046 TYPE 2 2049 _ TYPE 2
03322052 TYPE 1 2055 - TYPE 2 2063 TYPE 2 2066 _ TYPE 2
2068 TYPE 1 2069 - TYPE 2 2078 - TYPE 2 2079 — TYPE 2
03342082 TYPE 1 2098 - TYPE 1 2109 - TYPE 2 2114 _ TYPE 2
2115 TYPE 2 2121 - TYPE 2 2126 - TYPE 2 2129 TYPE 2
03362130 TYPE 1 2140 - TYPE 1 2141 - TYPE 2 2163 „.
2174 TYPE 2
0338TYPE 2 2178 - TYPE 2 2161 TYPE 2 2166 _ 95 TYPE 2
033921 TYPE 2 2198 - TYPE 2 2212 - TYPE 1 2220 _
2223 TYPE 1
0341TYPE 2 2225 - TYPE 2 2231 - TYPE 2 2236 _ TYPE 1
03422241 TYPE 2 2242 - T YP E 1 2246 - TYPE 2 2253 <sub>β</sub> 25a TYPE 2
03432 TYPE 2 2266 TYPE 1 2268 - TYPE 1 2273 _ TYPE 2
03442291 TYPE 2 2292 - TYPE 1 2295 - TYPE 2 2301 _ TYPE 2
03452308 TYPE 1 2310 - TYPE 2 2318 - TYPE 2 2319 _ TYPE 2
03462332 TYPE 1 2338 - TYPE 1 2339 - TYPE 2 2345 _ TYPE 2
2351 TYPE 2 2356 - TYPE 1 2361 - TYPE 2 2370 .. TYPE 1
034823aa TYPE 1 2391 - TYPE 2 2393 - TYPE 2 2394 _ TYPE 2
03492399 TYPE 2 2406 - TYPE 2 2415 - TYPE 2 2436 _ TYPE V
03502438 TYPE 2 2451 TYPE 2 2458 - TYPE 1 2459 _ TYPE 2
03512466 TYPE 1 2471 - TYPE 2 2475 - TYPE 2 2476 _ TYPE 1
2478 TYPE 2 2483 - TYPE 2 2486 - TYPE 2 2493 - TYPE 2
0353<sup>■</sup>32- APPENDIX I
0354^include Cstdio.r
03558de f i ne HA>N 2560 maximum ield deare- * / 8de f i ne MAXN32 <sup>β</sup>O array width */
03569de f i ne UORO 32 word size in bits «/ βde f i ne HEX6 <sup>(</sup> unsi gned <sup>)</sup> 0X80000000 /<sub>*</sub> most sig bi t in a word * / in βde f ine HEX4 QX4QQQQQQ0 /* second most sig i t a word */ βde f ine ONE 01 /* least sig bit (oc ta L ) */ βdefine ALl-ONE QXFFFFFF FF / * al L one. vector
0357int ; int N32; unsigned po lyCMAXN3 3;
0358<img file="WO8804805A1_D0015.tif" />
0359in argc; char *argvC ];
0360/<sup>«</sup>
0361Program to compute the coefficients b and c of an optimaL rauLtiply equa ion for digit dO of product vector D = B * C where Q t C , and D are the normal basis represen a ions of- eLements in the Galois Field GF(2**m ).
0362Source Language : C under UNIX 0/S Author : Ivan M. Onyszchu
0363Date Last Modified : hay 24, 19S5 2:04 am Modification : uocumen tat ion added
0364Execution : <sup>(</sup>program name) n type
0365Result : dO eultiply equation, 2»-1 p.i rs of coefficients b and c. IF an invalid value of m or type i. en tered/ an error message printed. /* variable declarations */ unsigned 'BPCMAXN]; unsigned «DPCMAXN3; unsigned *BICf1AXN3; unsigned m<*sK/ i t erms ut/ o t 1/ b/<sup>*</sup> int type/ unsigned * suap/' register int i /" register int j -
0366register int k register int i; <img file="WO8804805A1_D0016.tif" /> register unsigned *bp/ <sub>**</sub>b1/ <sub>* *</sub>b2; register unsigned * dp/ *b3 »b4; register unsigned temp/ temp2; unsigned betd1CMAXN323; unsigned be ta2C( AXN32]/' unsigned one MAXN32 ]; unsigned twoC MA N323;
0367/* Read in value of m and type */
0368N = atoi C argvl 1 ]); type = atoi CargvC23); N32 = (N - 1 ) / WORD + 1; f or ( i = 0; i <= N32; i + + ) polyCi D = oneCi l = tuoCi ] = beta1Ci 3 = 0;
0369/* Compute generating polynomial <sub>*</sub>/ i f < <sup>(</sup> type ! = 1 ) 4& C type ! = 2 ) ) goto next; if C type == 2 ) <
0370«tuo = HEXS;
0371"one = HEX8 ! HEX4; f or( i = 1 ; i ; i ++ ) <
0372"poly = *tuo <sup>Λ</sup> C*one >> 1 ); or ( j =0; j < N32; j ++ ) polyCj D = twoCj D <sup>Λ</sup> ((one[ j-1 ] & ONE ) ?
0373<sup>(</sup> oneC j D > 1 : Hfc" Xti > ; ( oneC j 3 >> i ; <img file="WO8804805A1_D0017.tif" /> twoCj ] = oneCJ]; <img file="WO8804805A1_D0018.tif" />
0374>
0375i f C t pe 1 ) < for ( j = 1 ; j N32; j + *<sup>•</sup> ) poiyc j -1 : = A LONE; polyCN32- 13 = 0X80000000 7? C N X WORD ),
0376for-( i = o; i < N; i + ) <:
0377BPCi D = (unsi ed <sub>*</sub> ) calloc (N32/ si zeof( unsigned ))-<sup>'</sup>
0378DPC i J = (unsigned calloc (N32/ sizeof( unsigned));
0379BIC i 3 = (unsigned * ) calLoc C N32 si z.eof( unsigned)); > for ( i = 0; i < N32; i++ ) i
0380*(beta1 -r i ) = 0;
0381*( be t<*2 + i ) = 0; > xbetal = HEX4;
0382Construct matrices for norm l basis */ for <sup>(</sup> i = 0/ bp = *Bp; i < N32/' i+*-- bp + τ )
0383*bp = *Cbeta1 + i ); ιnult2 <sup>(</sup>betal/ betal/ * D P ) ; for <sup>(</sup> i = 1 ; i < N; !+<sup>■</sup>«- ? mult2 <sup>(</sup>BPC i-13^ BPC i-l },- BPCΪ 3); ιαult2 (BPC03/ BP£ i D - DPCi }); > for <sup>(</sup> i = 0; i < N i + + ) < for (j = o; j C N32,~ j++ )
0384BΓC i 3C j i = o;
0385BIC i 3C-i/U0RD D = HEX8 >> C i 7. WORD >; > /« Gaussian elimination section . */ ior ( i = 0; ! < N; i + + <sup>)</sup> < if C(<sub>*</sub>(8PC i 3 + i / WOR0 ) << i WORD & HEXS <sup>)</sup>
0386== 0 ) for ( j = i + 1 ; j < ; j ++ <sup>)</sup> if ( *(BPCj 3 -r i / WORD ) << i % WORD S HEXδ) < <img file="WO8804805A1_D0019.tif" /> 8PC j 3 ~ swap; swap = BIC i -i; BIC i 3 = BIC j 3; <img file="WO8804805A1_D0020.tif" /> reak;
0387if (( *(BP i 3 + i / WORD ) << i '/. WORD & HEX8) == 0 <sup>)</sup> < ρrintf(" Error - Matrix is not invertible! \n" <sup>)</sup>; goto next;
0388for ( j = i T 1 ; j < N; j + + ) i f ( *(BP j + i / UORD J << i '/. WORD & HEX8 ) < for (K = i / WϋKP; k -T N32; ktt)
0389*( BPC j 3 + k ) <sup>Λ</sup>= *( BPC i 3 + ; for ( k - O; k < N32; k ++ )
0390<sup>•</sup>*C βXC j 3 t k) <sup>Λ~</sup><sub>*</sub>(0lC i 3 t k);
0391for ( i = 0; i < N; i + 1 ) for (j = i - 1 ; j >= α; j-- ) i f <sup>( «(</sup> BPC j 3 + i / WORD ) << i / '.
0392WORD & HEX5) < for <sup>(</sup>k = i / WORD; k < N32; k++ )
0393*<sup>(</sup>BP j + k) <sup>Λ</sup>= <sub>*</sub>(BPCi + k ); for ( k = O; k < N32; k++ )
0394*<sup>(</sup> B1C j 3 + k ) <sup>Λ</sup>= <sub>*</sub>( B IC i 3 + k ); > * Perform matrix transpose x<sub>/</sub> for <sup>(</sup> i = 0/ bi = Bi; i < ; i+t, b11+ ) for <sup>(</sup> j = 0, b2 = Bi; j < i; j++, b2++ ) { temp = <sup>( (</sup> *b 1 <sup>)</sup>C j /WORD 3 << ( j % WORD )) & HEXβ; <img file="WO8804805A1_D0021.tif" /> teβp2 = <sup>( (</sup> *b2 )C i /WORD 3 << ( i % UORD )) & HEXβ te*p2 >>- j V. ORD;
0395<sup>(</sup> *bl <sup>)</sup>C j /WOR03 = ( ( *b1 )C j/WORD 3 S. "(HEXS >> j XWORO ) ) ! temp2; ( «b2 )C i /WORD 3 = ( ( *b2 )C i /WORD 3 & ~<sup>(</sup>HEXfi >>
0396> txwoRon : temp; printf("\n Product digi t dO mult iply \n" >; pr.ntfC" equation coeff icients \π\n" <sup>)</sup>; print (" b c \nW ; priπtf ("\n Y. ύ ,7.Ad \n" r N-1/ N-1 <sup>)</sup>; Compute..and print out / c coeff icients */ for ( i = 0/ b1 = OP; i < N; 1++ b1++ <sup>)</sup> < for ( j = 0/ b2 = Bi; j < I; j++/ b2r+ <sup>) {</sup> out = O<sub>f</sub><sup>*</sup> for, ( k = 0- b3 = »b1/> b = *b2; k <
0397<img file="WO8804805A1_D0022.tif" /> ou t 1 = 0; op (k = u; ■ WORD; k-H-/ out >>= 1 ) out 1 <sup>Λ</sup>= out & i; i f ( out 1 ) t 1 = ( N - j ) 7. N; 12 = ( N + i - . j ) 7. N; printf ( " 7. ά 7. d \n" , r t2 ; printf <sup>(</sup>" . mK V.^ά \n" , t2, t 1 );
0398> > > next: ; >
0399/<sup>■</sup> Element mult iply subrout ine */ <img file="WO8804805A1_D0023.tif" /> uns igned *&r *b/ *c; i register int I ; register Int J ; register uns igned « e; uns igned ECMAXN323; uns i gned FCf1AXN323; unsiαned feed; for ( i = 0, e = E i < N32; 1++/ e++, «<-+, b++, c++ ) <
0400*e = * b;
0401*( F + i ) = *a;
0402«c = o; > for ( i = o; i < N; i ++ ) < i f (*(F + i/WORD ) 1C I 7. WOR0 & HEX8) for ( J - Q, c -= N32, e = E j < N32; j+t, c++/ e ++ ) * c <sup>Λ</sup>= *e; feed = *<sup>(</sup>e = E + (N-1 )/ WORD ) << (CN - 1 ) 7. WORD )
0403& HEXβ; for <sup>(</sup> j = N32 - 1; j > 0; J --, β-- )
0404*e = <sup>(</sup>C*e >> 1 <sup>)</sup>!(C«(e-1 ) & ONE) <C W0RD-1 ))<sup>Λ</sup>( feed ? polyC j 3:0 ); *e = <*<sub>β</sub> >> 1 ) ( <sub>feed ?</sub> *<sub>pol</sub> . <sub>Q );</sub>
Contents87
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| EP0080528A1 | Cites | European Patent Office (EPO) | Search report |
| EP0096109A2 | Cites | European Patent Office (EPO) | Search report |
13 members in 7 offices
Priority claims3
| Document | Office | Kind | Date |
|---|---|---|---|
| 8602751 | United States of America | W | |
| WO1986US02751 | – | – | – |
| US02751 | – | – | – |
Members13
| Document | Office | Kind | |
|---|---|---|---|
| GB8613182D0 | United Kingdom | D0 | |
| GB2176325A | United Kingdom | A | |
| US4745568A | United States of America | A | |
| WO8804805A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU6939487A | Australia | A | |
| CA1242030A | Canada | A | |
| GB2176325B | United Kingdom | B | |
| EP0337985A1This record | European Patent Office (EPO) | A1 | |
| EP0337985A4 | European Patent Office (EPO) | A4 | |
| AU625552B2 | Australia | B2 | |
| EP0337985B1 | European Patent Office (EPO) | B1 | |
| DE3650335D1 | Germany | D1 | |
| DE3650335T2 | Germany | T2 |
24 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Nl: ceased due to reaching the maximum lifetime of a patentCeasedNLV7 | NLV7 | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | |
| Nl: modifications of names registered in virtue of documents presented to the patent office pursuant to art. 16 a, paragraph 1NLT1 | NLT1 | |
| No opposition filedOpposition26N | 26N | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | |
| Fr: translation filed ** revision of the translation of the patent or the claimsET1 | ET1 | |
| Fr: translation filedET | ET | |
| It: translation for a ep patent filedITF | ITF | |
| It: translation for a ep patent filedITF | ITF | |
| Corresponds to:REF | REF | |
| Designated contracting statesAK | AK | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | |
| Party data changed (applicant data changed or rights of an application transferred)RAP1 | RAP1 | |
| First examination report despatched17Q | 17Q | |
| Supplementary search report drawn up and despatchedA4 | A4 | |
| Designated contracting statesAK | AK | |
| Request for examination filed17P | 17P | |
| Designated contracting statesAK | AK | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI |
Numbers
- Publication
- 0337985
- Publication, DOCDB
- 0337985
- Publication, EPODOC
- EP0337985
- Application
- 87900755
- Application, DOCDB
- 87900755
- Application, EPODOC
- EP19870900755
Titles6
- German
- RECHENVERFAHREN UND -GERÄT FÜR ENDLICHFELDMULTIPLIKATION.
- English
- COMPUTATIONAL METHOD AND APPARATUS FOR FINITE FIELD MULTIPLICATION.
- French
- PROCEDE DE CALCUL ET APPAREIL POUR LA MULTIPLICATION EN CHAMP FINI.
- English
- COMPUTATIONAL METHOD AND APPARATUS FOR FINITE FIELD MULTIPLICATION
- French
- PROCEDE DE CALCUL ET APPAREIL POUR LA MULTIPLICATION EN CHAMP FINI
- German
- RECHENVERFAHREN UND -GERÄT FÜR ENDLICHFELDMULTIPLIKATION
Classification
- CPC, 2
- H03M13/15
- G06F7/724
- IPC, 3
- G06F7 52
- G06F7 72
- H03M13 15
Designated states4
- Contracting states, 4
- Germany
- France
- Italy
- Netherlands (Kingdom of the)