Generic implementations of ellipitic curve cryptography using partial reduction
First Claim
1. A method for performing an arithmetic operation on two binary polynomials X(t) and Y(t) over GF(2), where an irreducible polynomial Mm(t)=tm+am−
- 1tm−
1+am−
2tm−
2+ . . . +a1t+a0, where the coefficients ai are equal to either 1 or 0, and m is a field degree, comprising;
partially reducing a result of the arithmetic operation on the two binary polynomials to produce a congruent polynomial of degree less than a chosen integer n, with m≦
n.
2 Assignments
0 Petitions
Accused Products
Abstract
A reduction operation is utilized in an arithmetic operation on two binary polynomials X(t) and Y(t) over GF(2), where an irreducible polynomial Mm(t)=tm+am−1tm−1+am−2tm−2+ . . . +a1t+a0, where the coefficients as are equal to either 1 or 0, and m is a field degree. The reduction operation includes partially reducing a result of the arithmetic operation on the two binary polynomials to produce a congruent polynomial of degree less than a chosen integer n, with m≦n. The partial reduction includes using a polynomial M′=(Mm(t)−tm)*tn−m, or a polynomial M″=Mm(t)*tn−m as part of reducing the result to the degree less than n and greater than or equal to m. The integer n can be the data path width of an arithmetic unit performing the arithmetic operation, a multiple of a digit size of a multiplier performing the arithmetic operation, a word size of a storage location, such as a register, or a maximum operand size of a functional unit in which the arithmetic operation is performed.
49 Citations
28 Claims
-
1. A method for performing an arithmetic operation on two binary polynomials X(t) and Y(t) over GF(2), where an irreducible polynomial Mm(t)=tm+am−
- 1tm−
1+am−
2tm−
2+ . . . +a1t+a0, where the coefficients ai are equal to either 1 or 0, and m is a field degree, comprising;
partially reducing a result of the arithmetic operation on the two binary polynomials to produce a congruent polynomial of degree less than a chosen integer n, with m≦
n. - View Dependent Claims (2, 3, 4, 5, 6, 7)
- 1tm−
-
8. A method for performing a multiplication on two binary polynomials X(t) and Y(t) over GF(2), where an irreducible polynomial Mm(t)=tm+am−
- 1tm−
1+am−
2tm−
2+ . . . +a1t+a0, where the coefficients ai are equal to either 1 or 0, and m is a field degree, comprising;
splitting a result co from the multiplication of X(t) and Y(t) into a low portion c0,1 and a high portion c0,h such that c0=c0,h* tn+c0,1, where n is greater than or equal to the field degree m; and
partially reducing the result co of the multiplication by executing a series of polynomial multiplications and additions to produce a polynomial of degree less than n and congruent to co modulo Mm(t). - View Dependent Claims (9, 10, 11, 12, 13, 14)
- 1tm−
-
15. An elliptic curve processing apparatus for performing a multiplication of two elements X(t) and Y(t), over GF(2), where m is a field degree, and Mm(t) is an irreducible polynomial for GF(2m), Mm(t)=tm+am−
- 1tm−
1+am−
2tm−
2+ . . . +a1t+a0, where the coefficients ai are equal to either 1 or 0, and m is a field degree, comprising;
means for multiplying a first register (X) storing an initial value of X(t) and a second register Y storing an initial value of Y(t) and generating a result c0=X(t)*Y(t);
means for providing c0 as a low portion c0,l and a high portion c0,h such that c0=c0,h*tn+c0,l, where n is greater than or equal to the field degree m; and
means for partially reducing the result co of the multiplication by executing a series of polynomial multiplications and additions to produce a polynomial of degree less than n and congruent to c0 modulo Mm(t). - View Dependent Claims (16, 17, 18)
- 1tm−
-
19. An elliptic curve processing apparatus for performing a squaring operation of an element X(t), over GF(2), where m is a field degree, and Mm(t) is an irreducible polynomial for GF(2m), comprising:
-
means for squaring X(t) to generate a result c0=X(t)*X(t);
means for providing c0 as a low portion c0,l and a high portion c0,h such that c0=c0,h*tn+c0,l, where n is greater than or equal to the field degree m; and
means for partially reducing the result c0 of the multiplication by executing a series of polynomial multiplications and additions to produce a polynomial of degree less than n and congruent to c0 modulo Mm(t).
-
-
20. A computer program product encoded on computer readable media comprising:
-
a first instruction sequence for multiplying a first polynomial X(t) and a second polynomial Y(t), both over GF(2), to generate a result c0;
a second instruction sequence for partially reducing the result c0 of the multiplication by executing a series of polynomial multiplications and additions to produce a polynomial of degree less than n, the polynomial of degree less than n, being congruent to c0 modulo Mm(t), Mm(t)=tm+am−
1tm−
1+am−
2tm−
2+ . . . +a1t+a0, where the coefficients ai are equal to either 1 or 0, and m is a field degree, andwhere n is at least one of a maximum operand size, a data path width, a multiple of a digit size, and a multiple of a word size of memory, and a multiple of a register size available in a processor in which the computer program product is executed. - View Dependent Claims (21)
-
-
22. A computer program product encoded on computer readable media comprising:
-
a first instruction sequence for performing an arithmetic operation on two binary polynomials X(t) and Y(t) over GF(2) to generate a result c0, where an irreducible polynomial Mm(t)=tm+am−
1tm−
1+am−
2tm−
2+ . . . +a1t+a0, and where the coefficients as are equal to either 1 or 0, and m is a field degree, the result co being of a degree greater than or equal to n;
a second instruction sequence for partially reducing the result of the arithmetic operation on the two binary polynomials to produce a congruent polynomial of degree less than an integer n, with m being less than or equal to n, the second instruction sequence using one of a first and second polynomial M′ and
M″
, as part of partially reducing the result c0, M′
=(Mm(t)−
tm)*tn−
m and M″
=(Mm(t)*tn−
m).
-
-
23. A method for performing an arithmetic operation on a first and second binary polynomial X(t) and Y(t) over GF(2), where an irreducible polynomial Mm(t)=tm+am−
- 1tm−
1+am−
2tm−
2+ . . . +a1t+a0, and where the coefficients ai are equal to either 1 or 0, and m is a field degree, the first and second binary polynomials being of degree less than m, the method comprising;
multiplying one of the polynomials and tn−
m to left align the first binary polynomial in an n bit register;
multiplying the left-aligned first binary polynomial and the second binary polynomial to generate a result of 2n bits with a high order portion of the result being n most significant bits and a low portion of the result being n least significant bits; and
reducing the result until the high order portion is zero, thereby providing a reduced result in the low order portion. - View Dependent Claims (24, 25, 26)
- 1tm−
-
27. An apparatus for performing an arithmetic operation on a first and second binary polynomial X(t) and Y(t) over GF(2), where an irreducible polynomial Mm(t)=tm+am−
- 1tm−
1+am−
2tm−
2+ . . . +a1t+a0, and where the coefficients ai are equal to either 1 or 0, and m is a field degree, the first and second binary polynomials being of degree less than m, the apparatus comprising;
means for multiplying one of the polynomials and tn−
m to left align the first binary polynomial in an n bit register;
means for multiplying the left-aligned first binary polynomial and the second binary polynomial to generate a result of 2n bits with a high order portion of the result being n most significant bits and a low portion of the result being n least significant bits; and
means for reducing the result until the high order portion is zero, thereby providing a reduced result in the low order portion. - View Dependent Claims (28)
- 1tm−
Specification