Galois field multiplier
First Claim
1. A Galois field multiplier for multiplying two polynomials a(x) and b(x) over GF(2n), with n=2m the Galois field multiplier including:
- A. four m-bit polynomial multipliers to produce products aH (x)bH (x), bL (x)aL (x), aH (x)bL (x), and bH (x)aL (x) where
space="preserve" listing-type="equation">a.sub.H (x)x.sup.m =[a.sub.n-1 x.sup.(n-1)-m +a.sub.n-2 x.sup.(n-2)-m + . . . +a.sub.m+1 x+a.sub.m ]x.sup.m
space="preserve" listing-type="equation">a.sub.L (x)=a.sub.m-1 x.sup.m-1 +a.sub.m-2 x.sup.m-2 + . . . +a.sub.1 x+a.sub.0
space="preserve" listing-type="equation">b.sub.H (x)x.sup.m =[b.sub.n-1 x.sup.(n-1)-m +b.sub.n-2 x.sup.(n-2)-m + . . . +b.sub.m+1 x+b.sub.m ]x.sup.mand
space="preserve" listing-type="equation">b.sub.L (x)=b.sub.m-1 x.sup.m-1 b.sub.m-2 x.sup.m-2 + . . . +b.sub.1 x+b.sub.0 ;
B. means for determining [aH (x)bH (x)]xm mod g(x);
C. a plurality of Galois field adders for adding the products and [aH (x)bH (x)]xm mod g(x) to produce the sum (aH (x)bH (x))xm mod g(x)+(bH (x)aL (x)+aH (x)bL (x));
D. means for determining [[aH (x)bH (x)]xm mod g(x)+(bH (x)aL (x)+aH (x)bL (x))]xm mod g(x); and
E. an additional Galois field adder for producing the sum [[(aH (x)bH (x))xm mod g(x)+(bH (x)aL (x)+aH (x)bL (x))]xm mod g(x)]+bL (x)aL (x).
6 Assignments
0 Petitions
Accused Products
Abstract
A Galois field multiplier for GF(2n), with n=2m, multiplies two n-bit polynomials to produce a(x)*b(x)=a(x)b(x) mod g(x), where g(x) is a generator polynomial for the Galois field and "*" represents multiplication over the Galois field, by treating each polynomial as the sum of two m-bit polynomials:
a(x)=a.sub.H (x)x.sup.m +a.sub.L (x) and b(x)=b.sub.H (x)x.sup.m +b.sub.L
(x),
with
a.sub.H (x)x.sup.m =[a.sub.n-1 x.sup.(n-1)-m +a.sub.n-2 x.sup.(n-2)-m + . .
. +am+1 x.sup.(m+1)-m +am ]xm
a.sub.L (x)=a.sub.m-1 x.sup.m-1 +a.sub.m-2 x.sup.m-2 + . . . +a.sub.2
x2 +a1 x+a0
and bH and bL having corresponding terms. Multiplying the two polynomials then becomes:
a(x)*b(x)=(a.sub.H (x)x.sup.m +a.sub.L (x))*(b.sub.H (x)x.sup.m +b.sub.L
(x))=[(aH (x)b(x)H)xm mod g(x)
+(b.sub.H (x)a.sub.L (x)+a.sub.L (x)b.sub.L (x))]x.sup.m mod g(x)+a.sub.L
(x)bL (x).
The Galois field multiplier produces four degree-(n-2) polynomial products, namely, aH (x)bH (x)=V3 ; bH (x)aL (x)=V2 ; aH (x)bL (x)=V1 ; and aL (x)bL (x)=V0, in parallel in four m-bit polynomial multipliers. Next, a modulo subsystem multiplies V3 by xm and performs a modulo g(x) operation on the product V3 xm by treating V3 as V3H xm +V3L, with V3H including as a leading term 0xn-1. The modulo operation is performed by appropriately cyclically shifting (m-(k-2)) versions of an n-bit symbol that consists of the coefficients of V3H followed by m zeros, summing the results and adding the sum to an n-bit symbol that consists of the coefficients of V3L, V3H. The Galois field multiplier for GF(2n) with n=2m+1 operates in essentially the same manner, with aL and bL each including m+1 terms.
88 Citations
6 Claims
-
1. A Galois field multiplier for multiplying two polynomials a(x) and b(x) over GF(2n), with n=2m the Galois field multiplier including:
-
A. four m-bit polynomial multipliers to produce products aH (x)bH (x), bL (x)aL (x), aH (x)bL (x), and bH (x)aL (x) where
space="preserve" listing-type="equation">a.sub.H (x)x.sup.m =[a.sub.n-1 x.sup.(n-1)-m +a.sub.n-2 x.sup.(n-2)-m + . . . +a.sub.m+1 x+a.sub.m ]x.sup.m
space="preserve" listing-type="equation">a.sub.L (x)=a.sub.m-1 x.sup.m-1 +a.sub.m-2 x.sup.m-2 + . . . +a.sub.1 x+a.sub.0
space="preserve" listing-type="equation">b.sub.H (x)x.sup.m =[b.sub.n-1 x.sup.(n-1)-m +b.sub.n-2 x.sup.(n-2)-m + . . . +b.sub.m+1 x+b.sub.m ]x.sup.mand
space="preserve" listing-type="equation">b.sub.L (x)=b.sub.m-1 x.sup.m-1 b.sub.m-2 x.sup.m-2 + . . . +b.sub.1 x+b.sub.0 ;B. means for determining [aH (x)bH (x)]xm mod g(x); C. a plurality of Galois field adders for adding the products and [aH (x)bH (x)]xm mod g(x) to produce the sum (aH (x)bH (x))xm mod g(x)+(bH (x)aL (x)+aH (x)bL (x)); D. means for determining [[aH (x)bH (x)]xm mod g(x)+(bH (x)aL (x)+aH (x)bL (x))]xm mod g(x); and E. an additional Galois field adder for producing the sum [[(aH (x)bH (x))xm mod g(x)+(bH (x)aL (x)+aH (x)bL (x))]xm mod g(x)]+bL (x)aL (x). - View Dependent Claims (2, 3)
-
-
4. A Galois field multiplier for multiplying two polynomials a(x) and b(x) over GF(2n), with n=2m+1, the Galois field multiplier including:
-
A. four (m+1)-bit polynomial multipliers to produce products aH (x)bH (x), bL (x)aL (x), aH (x)bL (x), and bH (x)aL (x) where
space="preserve" listing-type="equation">a.sub.H (x)x.sup.m+1 =[a.sub.n-1 x.sup.(n-1)-(m+1) +a.sub.n-2 x.sup.(n-2)-(m+1) + . . . +a.sub.m+1 ]x.sup.m+1
space="preserve" listing-type="equation">a.sub.L (x)=a.sub.m x.sup.m +a.sub.m- x.sup.m-1 + . . . +a.sub.1 x+a.sub.0
space="preserve" listing-type="equation">b.sub.H (x)x.sup.m+1 =[b.sub.n-1 x.sup.(n-1)-(m+1) + . . . +b.sub.m+1 ]x.sup.m+1 ;B. a plurality of shift registers for i. cyclically shifting aH (x)bH (x) by two bit positions to produce [aH (x)bH (x)]x2, ii. cyclically shifting aH (x)bL (x) one bit position to produce [aH (x)bL (x)]x, and iii. cyclically shifting bH (x)aL (x) one bit position to produce [bH (x)aL (x)]x, B. means for determining [x2 (aH (x)bH (x))]xm mod g(x); C. a plurality of Galois field adders for adding the products and [x2 (aH (x)bH (x))]xm mod g(x) to produce the sum [x2 (aH (x)bH (x))]xm mod g(x)+[x(bH (x)aL (x))+x(aH (x)bL (x))]; D. means for determining [x2 (aH (x)bH (x))xm mod g(x)+[x(bH (x)aL (x))+x(aH (x)bL (x))]xm mod g(x); and E. an additional Galois field adder for producing the sum [[x2 (aH (x)bH (x))xm mod g(x)+[x(bH (x)aL (x))+x(aH (x)bL (x))]xm mod g(x)]+bL (x)aL (x). - View Dependent Claims (5, 6)
-
Specification