Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed

Information

  • Patent Grant
  • 6202076
  • Patent Number
    6,202,076
  • Date Filed
    Tuesday, January 18, 2000
    24 years ago
  • Date Issued
    Tuesday, March 13, 2001
    23 years ago
Abstract
A scheme for arithmetic operations in finite field and group operations over elliptic curves capable of realizing a very fast implementation. According to this scheme, by using a normal basis [α α+1], the multiplicative inverse calculation and the multiplication in the finite field GF(22n) can be realized as combinations of multiplications, additions and a multiplicative inverse calculation in the subfield GF(2n). Also, by using a standard basis [1 α], the multiplication, the square calculation, and the multiplicative inverse calculation in the finite field GF(22n) can be realized as combinations of multiplications, additions and a multiplicative inverse calculation in the subfield GF(2n). These arithmetic operations can be utilized for calculating rational expressions expressing group operations over elliptic curves that are used in information security techniques such as elliptic curve cryptosystems.
Description




BACKGROUND OF THE INVENTION




1. Field of the Invention




The present invention relates to a scheme for arithmetic operations in finite field and group operations over elliptic curves, and more particularly, to a computational scheme for arithmetic operations in finite fields such as GF(2


m


) which is to be utilized in realizing error correction coding (such as algebraic geometric coding) and information security technique (such as elliptic curve cryptosystem) including key distribution and authentication using group operations over elliptic curves.




2. Description of the Background Art




As a fast implementation of multiplicative inverse calculation in GF(2


m


), a scheme based on multiplication using a normal basis has been proposed by J. L. Massey and J. K. Omura (see U.S. Pat. No. 4,587,627). This scheme is based on the principle that, when the Fermat's little theorem over finite fields holds in a form of:








x




2m−1


=1 for an element


x


(≠0) of


GF


(2


m


)






it is possible to calculate multiplicative inverse in a form of:








x




1




=x




2n−2








Other schemes based on this same principle are also disclosed, for example, in Agnew et al.: “Arithmetic operations in GF(2


m


)”, Journal of Cryptology, Vol. 6, pp. 3-13, 1993, and P. C. van Oorschot, S. A. Vanstone: “A Geometric Approach to Root Finding in GF(q


m


), IEEE Transactions of Information Theory, Vol. 35, No. 2, pp. 444-453, March 1989.




Either scheme utilizes the fact that multiplication in GF(2


m


) can be efficiently realized by hardware by using a normal basis, and realizes multiplicative inverse calculation in GF(2


m


) as a combination of multiplication and shift (including rotate) operations in GF(2


m


). In the presently known algorithm, it is known that multiplications in GF(2


m


) are required for [log


2


m]+{the number of 1 in the binary representation of (m−1)}−1 times, bit shift operations are required for (m−1) times, and when GF(2


m


) is a quadratic extension of GF(2


m/2


), by the use of subfield in multiplicative inverse calculation in GF(2


m


), two multiplications in GF(2


m


) and one shift operation in GF(2


m/2


) constitute one multiplicative inverse calculation in GF(2


m/2


).




However, when this multiplication algorithm is straightforwardly implemented by software, there arises a problem of lowering of efficiency because of tedious bit unit handling.




For this reason, there is a known scheme for calculating multiplication in GF(2


m


) by using subfield (see A. Pincin: “A New Algorithm for Multiplication in Finite Fields”, IEEE Transactions on Computers, Vol. 38, No. 7, pp. 1045-1049, July 1989, for example).




In the case of realizing finite field arithmetic by software, because of the looser constraint on memory size compared with the case of hardware implementation, the fast implementation becomes possible by providing a table of calculation results obtained by preliminary calculations and reading out necessary information from the table subsequently. A very fast algorithm utilizing this fact is disclosed in E. De Win et al.: “A Fast Software Implementation for Arithmetic Operations in GF(2


n


)”, Advances in Cryptology—ASIACRYPT'96, Lecture Notes in Computer Science 1163, pp. 65-76, Springer-Verlag, 1996, for example.




Now, many secret key cryptosystems improve their security by iterating F functions several times. It is known that the security can be guaranteed by utilizing exponential calculations in F function (see K. Nyberg: “Differentially Uniform Mappings for Cryptography”, Advances in Cryptology—EUROCRYPT'93, Lecture Notes in Computer Science 765, pp. 55-64, Springer-Verlag, 1994, and K. Nyberg, L. R. Knudsen: “Provable Security Against a Differential Attack”, Journal of Cryptology, Vol. 8, pp. 27-37, 1995). In these references, it is recommended to construct F function by using cube calculations or multiplicative inverse calculations.




However, when conventionally used input data are represented by using a normal basis on prime field GF(2) and multiplicative inverse calculation in GF(2


2n


) is straightforwardly implemented by software using the algorithm of van Oorschot et al., there arises a problem of lowering of efficiency because of tedious bit unit handling.




Now, elements of a group E(K) of elliptic curves over a field K can be expressed in terms of either homogeneous coordinates formed by a set of three elements of K or affine coordinates formed by a set of two elements of K. Addition of E(K) can be calculated by arithmetic operations over field K in ether expression using homogeneous coordinates or affine coordinates.




In constructing a device for realizing group operations over elliptic curves, a field K can be chosen to be a finite field GF(q), and in particular, a finite field GF(2


n


) with characteristic


2


is often employed because it is possible to realize a fast implementation.




Among arithmetic operations over finite field, the very fast implementation is possible for addition and additive inverse by the conventional implementation scheme, but considerable time is required for calculating multiplication and multiplicative inverse (hereafter inverse refers to multiplicative inverse unless otherwise indicated). Consequently, a time required for addition of groups over elliptic curves can be evaluated by the required number of multiplication and inverse calculations over field K.




On the other hand, conventionally, inverse calculation over finite field with characteristic


2


requires an enormous amount of calculations compared with multiplication. For this reason, the conventional schemes for implementing group operations over elliptic curves are mainly the implementation using homogeneous coordinates which does not require inverse calculations, even though the required number of multiplication calculations becomes rather large (see A. J. Menczes, S. A. Vanstone: “Elliptic Curve Cryptosystems and Their Implementation”, Journal of Cryptology, Vol. 6, pp. 209-289, 1993, for example).




However, in recent years, a scheme for implementing inverse calculation in finite field with characteristic


2


has been developed, and schemes using affine coordinates for expressing elements of group over elliptic curves have been proposed, for example, in E. De Win et al.: “A Fast Software Implementation for Arithmetic Operations in GF(2


n


)”, Advances in Cryptology—ASIACRYPT'96, Lecture Notes in Computer Science 1163, pp. 65-76, Springer-Verlag, 1996. In the following, this scheme will be referred to as De Win's scheme.




Outline of the implementation of finite field according to the De Win's scheme is as follows. When a number of bits for basic operations of a processor is w (8 or 16, for example), all the operations over ground field are calculated in advance by using GF(2


w


) as ground field. Also, using an odd degree three term irreducible polynomial over GF(2) in a form of:








x




d




+x




t


+1(


d>t


),






operations in GF(2


wd


) are represented as:








GF


(2


wd


)≅


GF


(2


w


)[


x


]/(


x




d




+x




t


+1)






where a symbol ≅ denotes isomorphism of fields (see S. MacLane, G. Birkhoff: “Algebra”, Chelsea Publishing, 1967, for detail), and then using this representation, E(GF(2


wd


) is implemented. In the De Win's scheme, inverse calculation in finite field utilizes the extended Euclidean algorithm over GF(2


w


) which is the general inverse calculation method, and many multiplications and divisions are required in executing the extended Euclidean algorithm.




Note that finite fields with characteristic


2


are important because they have data structures suitable for computers, and they can be utilized in error correction coding and cryptography. Individual element of a finite field GF(2


n


) can be represented by using n-th degree irreducible polynomial f(X) over GF(2) as:








GF


(2


n


)≅


GF


(2)[


x


]/(


f


(


x


))






so that it can be represented by polynomial of (n−1)-th degree or less. In other words, by regarding coefficients GF(2) of polynomial as bits, GF(2


n


) can be represented In terms of n bits.




When such a representation is used, addition can be represented by exclusive OR of n bits (note that subtraction is the same as addition in the case of field with characteristic 2) so that it can be implemented easily and efficiently. As for the implementation of multiplication and division, there are known schemes which are more efficient than the straightforward scheme for calculating a product of n−1)-th degree polynomials and then calculating a residue of f(X).




SUMMARY OF THE INVENTION




It is therefore an object of the present invention to provide a scheme for calculating multiplicative inverse and multiplication which realizes efficient multiplicative inverse calculation in GF(2


2n


), by storing preliminary calculation results in a table in view of the fact that more memory capacities are available for software implementation compared with hardware implementation.




It is another object of the present invention to provide a scheme for arithmetic operations in finite field and group operations over elliptic curves capable of realizing a very fast implementation by using an optimal normal basis.




According to one aspect of the present invention there is provided a method for calculating a multiplicative inverse in finite field GF(2


2n


), comprising the steps of: expressing an element mεGF(2


2n


) as








m=xα+y


(α+1)(


x, yεGF


(2


n


))






where αεGF(2


2n


)\(2


n


), α


2


α+a=0, and aεGF(2


2


) so that a multiplicative inverse m


−1


of the element m in the finite field GF(2


2n


) is expressed as a combination of multiplications, additions and a multiplicative inverse calculation in subfield GF(2


n


) given by








m




−1


=(


a


(


x+y


)


2




+xy


)


−1




y


α+(


a


(


x+y


)


2




+xy


)


−1




x


(α+1)






by combining a normal basis [α α+1] with extended Euclidean algorithm; and calculating the multiplicative inverse m


−1


of the element m in the finite field GF(2


2n


) by executing said combination of multiplications, additions and a multiplicative inverse calculation in the subfield GF(2


n


).




According to another aspect of the present invention there is provided a method for calculating a multiplication in finite field GF(2


2n


), comprising the steps of: reducing a multiplication of two elements m


1


and m


2


in GF(2


2n


) into multiplications and additions in subfield GF(2


n


) by expressing m


1


, m


2


εGF(2


2n


) as








m




1




=x




1




α+y




1


(α+1),


m




2




=x




2




α+y




2


(α+1)






where x


i


, y


i


εGF(2


n


), i=1, 2, αεGF(2


2n


)\GF(2


n


), α


2


+α+a =0, and aεGF(2


n


) so that a multiplication m


0


of m


1


, m


2


εGF(2


2n


) is given by








m




0




=m




1




m




2


=(


x




1




x




2




+a


(


x




1




+y




2


)(


x




2




+y




2


))α+(


y




1




y




2




+a


(


x




1




+y




1


)(


x




2




+y




2


))(α+1);






and calculating the multiplication me by executing said multiplications and additions in the subfield GF(2


n


).




According to another aspect of the present invention there is provided a method for calculating a rational expression in finite field GF(2


2n


) in a form of:







p


(


X
1

,

X
2

,

,

X
r


)



q


(


X
1

,

X
2

,

,

X
r


)












where p, qεGF(2


2n


)[X


1


, X


2


, . . . , X


r


], comprising the steps of: calculating a multiplication in GF(2


2n


) that arises in calculations using polynomials p, qεGF(2


2n


)[X


1


, X


2


, . . . , X


r


] according to a multiplication formula:








(



x
1


α

+


y
1



(

α
+
1

)



)

×

(



x
2


α

+


y
2



(

α
+
1

)



)


=



(



x
1



x
2


+


a


(


x
1

+

y
1


)




(


x
2

+

y
2


)



)


α

+


(



y
1



y
2


+


a


(


x
1

+

y
1


)




(


x
2

+

y
2


)



)



(

α
+
1

)













where x


1


, x


2


, y


1


, y


2


aεGF(2


n


), αεGF(2


n


), α


2


+α+a=0 and GF(2


2n


)=GF(2


n


)(α)); calculating an inverse q


−1


of q in GF(2


2n


) according to an inverse calculation formula:






(


xα+y


(α+1)


−1


=(


a


(


x+y


)


2




+xy


)


−1


(


yα+x


(α+1))






where x, y, aεGF(2


n


), α ∉GF(2


n


), α


2


+α+a=0 and GF(2


2n


)=GF(2


n


)(α)); and calculating p×q


−1


by using said multiplication formula.




According to another aspect of the present invention there is provided a method for calculating a multiplication in finite field GF(2


2n


), comprising the steps of: expressing elements m


1


, m


2


εGF(2


2n


)≅GF(2


n


)[x]/(x


2


+x+a) as








m




1




=x




1




+y




1


α










m




2




=x




2




+y




2


α(


x




1




, x




2




, y




1




, y




2




εGF


(2


n


))






where α∉GF(2


n


), α


2


+α+a=0, and aεGF(2


n


) so that a multiplication m


1


m


2


of the elements m


1


and m


2


in the finite field GF(2


2n


) is expressed as a combination of multiplications and additions in subfield GF(2


n


) given by








m




1


m


2


=(


x




1




x




2




+ay




1




y




2


)+((


x+y




1


)(


x




1




+y




2


)+


x




1




x




2









by using a standard basis [1 α]; and calculating the multiplication m


1


m


2


of the elements m


1


and m


2


in the finite field GF(2


2n


) by executing said combination of multiplications and additions in the subfield GF(2


n


).




According to another aspect of the present invention there is provided a method for calculating a square in finite field GF(2


2n


), comprising the steps of: expressing an element mε GF(2


2n


)≅GF(2


n


)[x]/(x


2


+x+a) as






m=


x+yα


(


x, yεGF


(2


n


))






where α∉GF(2


n


), α


2


+α+a=0, and aεGF(2


n


) so that a square m


2


of the element m in the finite field GF(2


2n


) is expressed as a combination of multiplications and additions in subfield GF(2


n


) given by:








m




2


=(


x




2




+ay




2


)+


y




2


α






by using a standard basis [1 α]; and calculating the square m


2


of the element m in the finite field GF(2


2n


) by executing said combination of multiplications and additions in the subfield GF(2


n


).




According to another aspect of the present invention there is provided a method for calculating a multiplicative inverse in finite field GF(2


2n


), comprising the steps of: expressing an element mεGF(2


2n


)≅GF(2


n


)[x]/(x


2


+x+a) as








m=x+y


α(


x, yεGF(


2


n


))






where α∉GF(2


n


), a


2


+α+a=0, and aεGF(2


n


) so that a multiplicative inverse m


−1


of the element m in the finite field GF(2


2n


) is expressed as a combination of multiplications, additions and a multiplicative inverse calculation in subfield GF(2


n


) given by








m




−1


=(


x


(


x+y


)+


ay




2


)


−1


((


x+y


)+


y


α)






by using a standard basis [1 α]; and calculating the multiplicative inverse m


−1


of the element m in the finite field GF(2


2n


) by executing said combination of multiplications, additions and a multiplicative inverse calculation in the subfield GF(2


n


).




According to another aspect of the present invention there is provided a method for calculating a rational expression in finite field GF(2


2n


) in a form of:







p


(


X
1

,

X
2

,

,

X
r


)



q


(


X
1

,

X
2

,

,

X
r


)












where p, qεGF(2


2n


)[X


1


, X


2


, . . . X


r


], comprising the steps of: calculating a multiplication in GF(2


2n


) that arises in calculations using polynomials p, qεGF(2


2n


)[X


1


, X


2


, . . . , X


r


] according to a multiplication formula:






(


x




1




+y




1


α)×(


x




2




+y




2


α)==(


x




1




x




2




+ay




1




y




2


)+((


x




1




+y




1


)(


x




2




+y




2


)+x


1




x




2









and a square calculation formula






(


x




1




+y




1


α)


2


=(


x




1




2




+ay




1




2


)+


y




1




2


α






where x


1


, x


2


, y


1


, y


2


, aεGF(2


n


), α∉GF(2n ), α


2


+α+a=0 and GF(2


2n


)=GF(2


n


)(α); calculating an inverse q


−1


of q in GF(2


2n


) according to an inverse calculation formula:




 (


x




1




+y




1


α)


−1


=(


x




1


(


x




+y




1


)+


ay




1




2


)


−1


((


x




1




+y




1


)+


y




1


α)




where x


1


, y


1


, aεGF(2


n


), a∉GF(2


n


), α


2


+α+a=0 and GF(2


2n


)=GF(2


n


)(α); and calculating p×q


−1


by using said multiplication formula.




These methods can be implemented in forms of corresponding devices or articles of manufacture.




Other features and advantages of the present invention will become apparent from the following description taken in conjunction with the accompanying drawings.











BRIEF DESCRIPTION OF THE DRAWINGS





FIG. 1

is a block diagram of a 2n bit inverse calculation device according to the first embodiment of the present invention.





FIG. 2

is a block diagram of an n bit multiplication unit that can be used in the 2n bit inverse calculation device of FIG.


1


.





FIG. 3

is a block diagram of an n bit inverse calculation unit that can be used in the 2n bit inverse calculation device of FIG.


1


.





FIG. 4

is a block diagram of another n bit multiplication unit that can be used in the 2n bit inverse calculation device of FIG.


1


.





FIG. 5

is a block diagram of another n bit multiplication unit that can be used in the 2n bit inverse calculation device of FIG.


1


.





FIG. 6

is a block diagram of a 2n bit multiplication device according to the first embodiment of the present invention.





FIG. 7

is a block diagram of a GF(2


e


) addition device according to the second embodiment of the present invention.





FIG. 8

is a block diagram of a GF(2


e


) multiplication device according to the second embodiment of the present invention.





FIG. 9

is a block diagram of a GF(2


e


) inverse calculation device according to the second embodiment of the present invention.





FIG. 10

is a block diagram of a GF(2


2n


) addition device according to the second embodiment of the present invention.





FIG. 11

is a block diagram of a GF(2


2n


) multiplication device according to the second embodiment of the present invention.





FIG. 12

is a block diagram of a GF(2


2n


) square calculation device according to the second embodiment of the present invention.





FIG. 13

is a block diagram of a GF(2


2n


) inverse calculation device according to the second embodiment of the present invention.





FIG. 14

is a table showing comparison of performances by the first and second embodiments according to the present invention.





FIG. 15

is a block diagram of an elliptic curve group inverse calculation device according to the third embodiment of the present invention.





FIG. 16

is a block diagram of an elliptic curve group addition device according to the third embodiment of the present invention.





FIG. 17

is a block diagram of an elliptic curve group comparison device according to the third embodiment of the present invention.





FIG. 18

is a block diagram of an elliptic curve group special addition device according to the third embodiment of the present invention.





FIG. 19

is a block diagram of an elliptic curve group double calculation device according to the third embodiment of the present invention.





FIG. 20

is a block diagram of an elliptic curve group special double calculation device according to the third embodiment of the present invention.





FIG. 21

is a block diagram of an elliptic curve group natural number multiple calculation device according to the third embodiment of the present invention.











DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS




Referring now to

FIG. 1

to

FIG. 6

, the first embodiment of a scheme for calculating multiplicative inverse and multiplication in finite field according to the present invention will be described in detail. In the following description, inverse refers to multiplicative inverse unless otherwise indicated.




This first embodiment is directed to a scheme for calculating an inverse in finite field GF(2


2n


) by using arithmetic operations in GF(2


n


). This first embodiment is abased on the fact that GF(2


2n


) is a two-dimensional vector space in GF(2


n


) so that by using:






αε


GF


(2


2


)\


GF


(2


n


), α


2




+α+a


ε0


, aεGF


(2


n


)






where a symbol \ denotes a difference set, an element mεGF(2


2n


) can be expressed as:








m=xα+y


(α+1)(


x, yεGF


(2


n


))






Then, when an element mε GF(2


2n


) is expressed by:








m=xα+y


(α+1)(


x, yεGF


(2


n


))






an inverse of m in GF(2


2n


) can be calculated by utilizing the extended Euclidean algorithm as:






(


a


(


x+y


)


2




+xy


)


−1




y


α+(


a


(


x+y


)


2




+xy


)


−1




x


(α+1)






Therefore, the inverse calculation requires two addition calculations in GF(2


n


) (namely t


7


=x+y=t


3


+t


5


and t


15


=a(x+y)


2


+xy=t


11


+t


14


in a configuration of FIG.


1


)), five multiplication calculations (namely t


10


=(x+y)


2


=t


8


×t


9


, t


11


=a(x+y)


2


=at


10


, t


14


=xy=t


1


×t


12


, t


19


=t


17


×t


4


, and t


20


=t


13


×t


18


in a configuration of FIG.


1


), and one inverse calculation in GF(2


n


) (namely t


16


=t


15




−1


in a configuration of FIG.


1


).





FIG. 1

shows a configuration of a 2n bit inverse calculation device according to this first embodiment. This 2n bit inverse calculation device of

FIG. 1

comprises two n bit exclusive OR units (add)


106


and


112


, five n bit multiplication units (mul)


103


,


107


,


110


,


111


and


113


, and one n bit inverse calculation unit (inv)


114


, which are configured to carry out the following processing.




STEP


1


: A 2n bit input m is split into two n bit parts x and y.




STEP


2


: x is duplicated to yield t


1


and t


2


, and t


1


is set as an input to the n bit multiplication unit


103


.




STEP


3


: t


2


is duplicated to yield t


3


and t


4


, and t


3


is set as an input to the n bit exclusive OR unit


106


while t


4


is set as an input to the n bit multiplication unit


107


.




STEP


4


: y is duplicated to yield t


5


and t


6


, and t


5


is set as an input to the n bit exclusive OR unit


106


.




STEP


5


: An exclusive OR t


7


of the inputs t


3


and t


5


is calculated by the n bit exclusive OR unit


106


.




STEP


6


: t


7


is duplicated to yield t


8


and t


9


, and t


8


and t


9


are set as inputs to the n bit multiplication unit


110


.




STEP


7


: A product t


10


of the inputs t


8


and t


9


is calculated by the n bit multiplication unit


110


, and set as an input to the n bit multiplication unit


111


.




STEP


8


: A product t


11


of a constant a and the input to is calculated by the n bit multiplication unit


111


, and set as an input to the n bit exclusive OR unit


112


.




STEP


9


: t


6


is duplicated to yield t


12


and t


13


, and t


12


is set as an input to the n bit multiplication unit


103


while t


13


is set as an input to the n bit multiplication unit


113


.




STEP


10


: A product t


14


of the inputs t


1


and t


12


is calculated by the n bit multiplication unit


103


, and set as an input to the n bit exclusive OR unit


112


.




STEP


11


: An exclusive OR t


15


of the inputs t


1


and t


14


is calculated by the n bit exclusive OR unit


112


, and set as an input to the n bit inverse calculation unit


114


.




STEP


12


: An inverse t


16


of the input t


15


is calculated by the n bit inverse calculation unit


114


.




STEP


13


: t


16


is duplicated to yield t


17


and t


18


, and t


17


is set as an input to the n bit multiplication unit


107


while tie is set as an input to the n bit multiplication unit


113


.




STEP


14


: A product t


19


of the inputs t


4


and t


17


is calculated by the n bit multiplication unit


107


.




STEP


15


: A product t


20


of the inputs t


13


and t


18


is calculated by the n bit multiplication unit


113


.




STEP


16


: t


19


and t


20


are joined and outputted as an inverse m


−1


of the input m (where the output result is in 2n bits).




Note that the n bit inverse calculation unit


114


can be realized by recursively regarding t


15


as m in this configuration of

FIG. 1

, if it cannot be implemented in a form of

FIG. 3

described below because of the limitation on cache memory.




Note also that, in this configuration of

FIG. 1

, t


1


and t


4


are the same value (x), so that there is no need to look up logarithmic conversion table to be described below in the n bit multiplication units


103


and


107


twice. By using the value obtained by the n bit multiplication unit


103


directly in the n bit multiplication unit


107


, it is possible to reduce a number of times for looking up the logarithmic conversion table. The similar remarks also apply to t


8


and t


9


pair, t


12


and t


13


pair, and t


17


and t


18


pair.





FIG. 2

shows one exemplary configuration of the n bit multiplication unit that can be used in the configuration of FIG.


1


.




In this n bit multiplication unit


200


, in carrying out multiplication in GF(2


n


)


x


, where GF(2


n


)


x


denotes the multiplicative group of GF(2


n


), when a logarithmic conversion table and an exponential conversion table can be stored in a memory, a logarithmic conversion table


202


and an exponential conversion table


205


are provided as shown in FIG.


2


.




Then, for two elements x


1


and x


2


in GF(2


n


)


x


entered by a query unit


201


, corresponding two logarithms e


1


=log


g


x


1


and e


2


=log


g


x


2


are obtained by looking up the logarithmic conversion table


202


, and e=e


1


+e


2


mod(2


n


−1) is calculated by an addition unit


203


. Then, for this e entered by a query unit


204


, an exponential g


e


is obtained by looking up the exponential conversion table


205


, so as to obtain a product x=x


1


×x


2


. Here, an element g is set to be a primitive root GF(2


n


)


x


=GF(2


n


)\{0} in GF(2


n


)


x


.




More specifically, this n bit multiplication unit


200


of

FIG. 2

carries out the following processing.




STEP


1


: The query unit


201


enters two inputs x


1


and x


2


into the logarithmic conversion table


202


.




STEP


2


: Two logarithms e


1


=log


g


x


1


and e


2


=log


g


x


2


are obtained by using the logarithmic conversion table


202


, and returned to the query unit


201


.




STEP


3


: The query unit


201


enters e


1


and e


2


into the addition unit


203


.




STEP


4


: The addition unit


203


calculates e=e


1


+e


2


mod(2


n


−1), and enters it into the query unit


204


.




STEP


5


: The query unit


204


enters e into the exponential conversion table


205


.




STEP


6


: The exponential x=g


e


is obtained by using the exponential conversion table


205


, and returned to the query unit


204


.




STEP


7


: The query unit


204


outputs x as the product of x


1


and x


2


.





FIG. 3

shows an exemplary configuration of the n bit inverse calculation unit that can be used in the configuration of FIG.


1


.




In this n bit inverse calculation unit


300


, the inverse calculation in GF(2


n


)


x


is carried out as follows. Namely, for an element x in GF(2n)


x


entered by a query unit


301


, a logarithm e=log


g


x is obtained by looking up a logarithmic conversion table


302


, and f=−e mod(2


n


−1) is calculated by a complement calculation unit


303


. Then, for this f entered by a query unit


304


, an exponential g


f


is obtained by looking up an exponential conversion table


305


, so as to obtain an inverse x′=x


−1


. Note that the logarithmic conversion table


202


and the exponential conversion table


205


of

FIG. 2

can be directly utilized as the logarithmic conversion table


302


and the exponential conversion table


305


of FIG.


3


.




More specifically, this n bit inverse calculation unit


300


of

FIG. 3

carries out the following processing.




STEP


1


: The query unit


301


enters an input x into the logarithmic conversion table


302


.




STEP


2


: The logarithm e=log


g


x is obtained by using the logarithmic conversion table


302


, and returned to the query unit


301


.




STEP


3


: The query unit


301


enters e into the complement calculation unit


303


.




STEP


4


: The complement calculation unit


303


calculates f=−e mod (2


n


−1), and enters it into the query unit


304


.




STEP


5


: The query unit


304


enters f into the exponential conversion table


305


.




STEP


6


: The exponential x′=g


f


is obtained by using the exponential conversion table


305


, and returned to the query unit


304


.




STEP


7


: The query unit


304


outputs x′ as the inverse of x.





FIG. 4

shows another exemplary configuration of the n bit multiplication unit that can be used in the configuration of FIG.


1


.




In this n bit multiplication unit


400


, in carrying out multiplication in GF(2


n


), when a multiplication table can be stored in a memory, a multiplication table


402


is provided as shown in FIG.


4


.




Then, for two elements x


1


and x


2


in GF(2


n


) entered by a query unit


401


, a corresponding multiplication result x=x


1


×x


2


is obtained by looking up the multiplication table


402


.




More specifically, this n bit multiplication unit


400


of

FIG. 4

carries out the following processing.




STEP


1


: The query unit


401


enters two inputs x


1


and x


2


into the multiplication table


402


.




STEP


2


: The multiplication result x=x


1


×x


2


is obtained by using the multiplication table


402


, and returned to the query unit


401


.




STEP


3


: The query unit


401


outputs x as the product of x


1


and x


2


.





FIG. 5

shows another exemplary configuration of the n bit multiplication unit that can be used in the configuration of FIG.


1


.




This n bit multiplication unit


500


is for a case where one of multiplying number (x


1


=a) is constant, as in the n bit multiplication unit


111


of FIG.


1


. Consequently, a multiplication table


502


for x=a×x


2


(or a×x


2


×x


3


) is provided as shown in FIG.


5


.




Then, for another multiplying number x


2


entered by a query unit


501


, a corresponding multiplication result x=a×x


2


is obtained by looking up the multiplication table


502


. Note that this n bit multiplication unit


500


can be similarly used for a case where a number of multiplying numbers is increased, as in a case of obtaining ax


1


x


2


.




More specifically, this n bit multiplication unit


500


of

FIG. 5

carries out the following processing.




STEP


1


: The query unit


501


enters an input x into the multiplication table


502


.




STEP


2


: The multiplication result x′=a×x is obtained by using the multiplication table


502


, and returned to the query unit


501


.




STEP


3


: The query unit


501


outputs x′ as the product of a and x.




Now, when the n bit multiplication unit cannot be implemented in any of the configurations of

FIG. 2

, FIG.


4


and

FIG. 5

described above because of the limitation on cache memory, it is possible to implement the n bit multiplication unit from n/


2


bit multiplication units as follows. Note that this implementation can be used recursively.




Namely, the multiplication in arbitrary 2n bits can be reduced to multiplications in n bits and additions in n bits. When n is sufficiently small, the n bit multiplication can be realized by the fast implementation of any of

FIG. 2

, FIG.


4


and

FIG. 5

described above, so that the following description is given in terms of a parameter n.




For two elements m


1


, m


2


εGF(2


2n


) expressed by:







m




1




=x




1




α+y




1


(α+1),








m




2




=x




2




α+y




2


(α+1), (


x




i




, y




i




εGF


(2


n


),


i


=1, 2),






a product m


0


of m


1


and m


2


can be expressed as:








m




0




=m




1 m




2


=(


x




1


x


2




+a


(


x




1




+y




1


)(


x




2




+y




2


))α+(


y




1




y




2




+a


(


x




1




+y




1


)(


x




2




+y




2


))(α+1)






Thus the multiplication in GF(2


n


) can be reduced to the arithmetic operations in its subfield, and the multiplication table or the logarithmic conversion table and the exponential conversion table required for the arithmetic operations in the subfield can be realized in smaller size.





FIG. 6

shows an exemplary configuration of a 2n bit multiplication device according to this first embodiment. This 2n bit multiplication device of

FIG. 6

comprises four n bit exclusive OR units (add)


605


,


609


,


614


and


615


, and three n bit multiplication units (mul)


604


,


607


and


611


, which are configured to carry out the following processing.




STEP


1


: A 2n bit input m


1


is split into two n bit parts x


1


and y


1


.




STEP


2


: A 2n bit input m


2


is split into two n bit parts x


2


and y


2


.




STEP


3


: x


1


is duplicated to yield t


1


and t


2


, and t


1


is set as an input to the n bit multiplication unit


604


while t


2


is set as an input to the n bit exclusive OR unit


605


.




STEP


4


: y


1


is duplicated to yield t


3


and t


4


, and t


3


is set as an input to the n bit exclusive OR unit


605


while t


4


is set as an input to the n bit multiplication unit


607


.




STEP


5


: y


2


is duplicated to yield t


5


and t


6


, and t


5


is set as an input to the n bit exclusive OR unit


609


while t


6


is set as an input to the n bit multiplication unit


607


.




STEP


6


: x


2


is duplicated to yield t


7


and t


8


, and t


7


is set as an input to the n bit exclusive OR unit


609


while t


8


is set as an input to the n bit multiplication unit


604


.




STEP


7


: An exclusive OR t


9


of the inputs t


5


and t


7


is calculated by the n bit exclusive OR unit


609


, and set as an input to the n bit multiplication unit


611


.




STEP


8


: An exclusive OR tie of the inputs t


2


and t


3


is calculated by the n bit exclusive OR unit


605


, and set as an input to the n bit multiplication unit


611


.




STEP


9


: A product t


12


of two inputs t


5


and t


10


and a constant a is calculated by the n bit multiplication unit


611


. Here, the n bit multiplication unit


611


can be in a configuration of

FIG. 5

described above.




STEP


10


: A product t


13


of the inputs t


1


and t


8


is calculated by the n bit multiplication unit


604


, and set as an input to the n bit exclusive OR unit


614


.




STEP


11


: A product t


14


of the inputs t


4


and t


8


is calculated by the n bit multiplication unit


607


, and set as an input to the n bit exclusive OR unit


615


.




STEP


12


: t


12


is duplicated to yield t


15


and t


16


, and t


15


is set as an input to the n bit exclusive OR unit


614


while t


16


is set as an input to the n bit exclusive OR unit


615


.




STEP


13


: An exclusive OR t


17


of the inputs t


13


and t


15


is calculated by the n bit exclusive OR unit


614


.




STEP


14


: An exclusive OR t


18


of the inputs t


14


and t


16


is calculated by the n bit exclusive OR unit


615


.




STEP


15


: t


17


and tie are joined and outputted as a product me of the inputs m


1


and m


2


.




Thus it can be seen that the product of elements In GF(2


2n


) can be calculated by four multiplications and four additions in GF(2


n


).




Note that this reduction of 2n bit multiplication to n bit multiplications and additions can be applied to each


2


n bit multiplication appearing in the 2n bit inverse calculation of

FIG. 1

described above.




Note also that the above noted fact that, when an element mεGF(2


2n


) is expressed by:








m=xα+y


(α+1)(


x, yεGF


(2


n


))






an inverse m


−1


of m in GF(2


2n


) can be expressed by:








m




−1


=(


a


(


x+y


)


2




+xy


)


−1




y


α+(


a


(


x+y


)


2




+xy


)


−1




x


(α+1)






can be demonstrated as follows (assuming that m≠0).




Namely, for two elements m


1


, m


2


GF(2


2n


) expressed by:








m




1




=x




1




α+y




1


(α+1),










m




2




=x




2




α+y




2


(α+1), (


x




i




, y




i




εGF


(2


n


),


i


=1, 2),






a product m


0


of m


1


and m


2


can be expressed as:








m




0




=m




1




m




2


=(


x




1




x




2




+a


(


x




1




+y




1


)(


x




2




+y




2


))α+(


y




1




y




2




+a


(


x




1




+y


)(


x




2




+y




2


))(α+1)






and therefore it follows that:










m
×

m

-
1



=







{


xy



a


(

x
+
y

)


2

+
xy


+


a


(

x
+
y

)





x
+
y




a


(

x
+
y

)


2

+
xy




}


α

+













{


xy



a


(

x
+
y

)


2

+
xy


+


a


(

x
+
y

)





x
+
y




a


(

x
+
y

)


2

+
xy




}



(

α
+
1

)








=






α
+

(

α
+
1

)


=
1














Now, the algorithm of this first embodiment is compared with a combination of conventional algorithms. Namely, by using the algorithm of Agnew et al. mentioned above, the inverse calculation in GF(2


2n


) can be reduced to multiplications in GF(2


2n


) and inverse calculation and shift operation in GF(2


n


). That is,




Agnew:




one inverse calculation in GF(2


n


)




two multiplications in GF(2


2n


)




one shift operation in GF(2


n


)




Then, when the multiplication in GF(2


2n


) is realized by arithmetic operations in subfield GF(2


n


) by using the scheme of Pincin mentioned above, it requires four multiplications and four additions in GF(2


2


). Consequently,




Agnew+Pincin:




one inverse calculation in GF(2


n


)




eight multiplications in GF(2


n


)




eight additions in GF(2


n


)




one shift operation in GF(2


n


)




In contrast, the required arithmetic operations in the first embodiment are as follows.




First Embodiment:




one inverse calculation in GF(2


n


)




five multiplications in GF(2


n


)




two additions in GF(2


n


)




one shift operation in GF(2


n


)




Thus it can be seen that the first embodiment can save three multiplications in GF(2


n


) and six additions in GF(2


n


).




Next, an amount of calculations in an application to cryptographic processing will be described.




For F function used in the encryption processing of 64 bit block cipher, the use of cube calculation and inverse calculation is recommended. For an exemplary case of 64 bit cipher, a case of realizing the cube calculation by the scheme of Pincin and a case of realizing the inverse calculation by the first embodiment can be compared as follows.




Cube calculation:




seven multiplications in GF(2


16


)




(Pincin) three additions in GF(2


16


)




Inverse calculation:




one inverse calculation in GF(2


16


)




(First Embodiment) five multiplications in GF(2


16


)




two additions in GF(2


16


)




Consider a case of implementation on workstation. Most of the present-day CPUs have a cache memory in size of 256 KB or more, so that the logarithmic conversion table and the exponential conversion table for subfield GF(2


16


) can be realized as fast accessible tables.




When the required number of times for looking up table and calculation contents for e and f in the multiplication and the inverse calculation described above, it can be seen that the inverse calculation can be realized faster than the multiplication because the inverse calculation is a monomial operation. Thus it can be seen that, in comparison with the cube calculation, the first embodiment can save one multiplication or more in GF(2


16


) and one addition in GF(2


16


).




As described, according to this first embodiment, the normal basis and the extended Euclidean algorithm are combined to reduce the inverse calculation in GF(2


2n


) to multiplications, additions, and an inverse calculation in GF(2


n


), so as to reduce a required number of multiplications and additions in subfield GF(2


n


) compared with the conventional scheme.




Also, according to this first embodiment, binomial operation (multiplication) in subfield GF(2


n


)


x


is converted into binomial operation (addition) in Z/(2


n


−1)Z (additive cyclic group of order (2


n


−1)) where calculation using monomial operation (logarithmic conversion) is easier, and this calculation result is re-converted into monomial operation (exponential conversion) in subfield GF(2


n


). Here, in order to provide a multiplication table in GF(2


n


) for use in binomial operations, a memory of (2


n


)


2


×n bits will be required, but the logarithmic conversion table and the exponential conversion table storing preliminary calculation results for monomial operations of the logarithmic conversion and the exponential conversion will be required to have a size of about 2n×n bits each.




Also, according to this first embodiment, when a sufficient amount of fast read accessible memory is available, a multiplication table storing calculation results for binomial operations (multiplications) in GF(2


n


) can be provided, so as to reduce a processing load required for table look up and calculation in Z/(2


n


−1)Z.




Also, according to this first embodiment, when one of the numbers to be multiplied together in multiplication is fixed (x


1


=a), a multiplication table storing calculation results for multiplications (x=a×x


2


or x=a×x


2


×x


3


) in GF(2


n


) can be provided.




Also, according to this first embodiment, multiplication in GF(2


n


) is reduced to arithmetic operations in subfield GF(2


/2


). A table for storing multiplication result in GF(2


n


) requires about (2


n


)


2


×n bits, but a table for storing multiplication result in GF(2


n/2


) requires about (2


n/2


)


2


×(n/2)=(2


n


)×(n/2) bits. Consequently, by iterating the reduction of multiplication into multiplication in subfield, it becomes possible to utilize a subfield that has a parameter n for which a table size can be reduced to that of a fast read accessible memory (cache memory).




Also, according to this first embodiment, when the logarithmic conversion table and the exponential conversion table cannot be stored because of a limited size of cache memory, multiplication in GF(2


n


) is reduced to multiplication in GF(2


n/2


) and a calculation algorithm in that subfield is applied. Similarly, when an inverse calculation in GF(2


n


) cannot be executed, it is reduced to multiplications and an inverse calculation in GF(2


n/2


) and a calculation algorithm in that subfield is applied.




Also, according to this first embodiment, the number of table accesses is reduced by storing values read out from tables for one calculation operation and utilizing them in other calculation operations.




It is to be noted that, according to the above described scheme of the first embodiment, when a finite field GF(2


2 n


) is represented by:








GF(


2


2 n


)≈


GF


(2


n


)[


x


]/(


x




2




+x+a


) (


aεGF


(2


n


))






and a normal basis [a α+l] is taken as a basis when GF(2


2n


) is regarded as a two-dimensional vector space in GF(2


n


) where α is a root of x


2+x+a=


0, multiplication in GF(2


2n


) can be calculated by arithmetic operations in GF(2


n


) because of the following equation.








(



x
1


α

+


y
1



(

α
+
1

)



)

×

(



x
2


α

+


y
2



(

α
+
1

)



)


=



(



x
1



x
2


+


a


(


x
1

+

y
1


)




(


x
2

+

y
2


)



)


α

+


(



y
1



y
2


+


a


(


x
1

+

y
1


)




(


x
2

+

y
2


)



)



(

α
+
1

)













Similarly, the square can be calculated by the following equation:




 (


xα+y


(α+1))


2


=(


x




2




+a


(


x




2




+y




2


))α+(


y




2




+a


(x


2




+y




2


))(α+1)




while the inverse can be calculated by the following equation:






(


xα+y


(α+1)


−1


=(


a


(


x+y


)


2




+xy


)


−1


(


yα+x


(α+1))






According to this scheme of the first embodiment, when n is divisible by a large number (such as 16 or more), it becomes possible to obtain an inverse in finite field GF(2


n


) more efficiently than the De Win's scheme mentioned above. As a consequence, it becomes possible to realize a faster implementation of group operations over elliptic curves than the De Win's scheme by reducing a required number of multiplications and divisions.




Also, according to this first embodiment, when elements other than a point at infinity 0 of a group over elliptic curves E(GF(2


2N


)) in finite field GF(2


2n


) are expressed in terms of affine coordinates (x, y), group operations over elliptic curves can be expressed as rational expressions in x and y, and it is possible to calculate a rational expression in a form of:







p


(


X
1

,

X
2

,

,

X
r


)



q


(


X
1

,

X
2

,

,

X
r


)












where p, qεGF(2


2n


)[X


1


, X


2


, . . . , X


5


] by calculating a multiplication in GF(2


2n


) that arises in calculations using polynomials p, qεGF(2


2n


)[X


1


, X


2


, . . . , X


r


] according to:








(



x
1


α

+


y
1



(

α
+
1

)



)

×

(



x
2


α

+


y
2



(

α
+
1

)



)


=



(



x
1



x
2


+


a


(


x
1

+

y
1


)




(


x
2

+

y
2


)



)


α

+


(



y
1



y
2


+


a


(


x
1

+

y
1


)




(


x
2

+

y
2


)



)



(

α
+
1

)













where x


1


, x


2


, y


1


, y


2


, aεGF(2


n


), α∉GF(2


n


), α


2


+α+a=0 and GF(2


2n


)=GF(2


n


)(α);




and calculating an inverse q


−1


of q in GF(2


2n


) according to:






(


xα+y


(α+1))


−1


=(


a


(


x+y


)


2




+xy


)


−1


(


yα+x


(α+1))






where x, y, aεGF(2


n


), α∉GF(2


n


), αC


2


+α+a=0 and GF(2


2n


)=GF(2


n


)(α);




and then calculating p×q


−1


by repeating the same multiplication as described above for calculations using polynomials p and q.




Referring now to

FIG. 7

to

FIG. 14

, the second embodiment of a scheme for arithmetic operations in finite field according to the present invention will be described in detail.




The first embodiment described above is based on the fact that, when a finite field GF(2


2n


) is represented by:








GF


(2


2n


)≅


GF


(2


n


)[


x


]/(


x




2




+x+a


)(


aεGF


(2


n


))






and a normal basis [α α+1 ] is taken as a basis when GF(2


2


n) is regarded as a two-dimensional vector space in GF(2


n


) where α is a root of x


2


+x+a=0, multiplication in GF(2


2n


) can be calculated by arithmetic operations in GF(2


n


) because of the following equation.








(



x
1


α

+


y
1



(

α
+
1

)



)

×

(



x
2


α

+


y
2



(

α
+
1

)



)


=



(



x
1



x
2


+


a


(


x
1

+

y
1


)




(


x
2

+

y
2


)



)


α

+


(



y
1



y
2


+


a


(


x
1

+

y
1


)




(


x
2

+

y
2


)



)



(

α
+
1

)













Similarly, the square can be calculated by the following equation:






(


xα+y


(α+1))


2


=(


x




2




+a


(


x




2




+y




2


))α+(


y




2




a


(


x




2




+y




2


))(α+1)






while the inverse can be calculated by the following equation:






(


xα+y


(α+1))


−1


=(


a


(


x+y


)


2




+xy


)


−1


(


yα+x


(α+1))






so that operations in GF(2


2n


) can be calculated by using arithmetic operations in GF(2


n


).




This first embodiment realizes the fast implementation by utilizing successive quadratic extensions of finite field. However, there is no evidence that a basis taken in realizing quadratic extensions is an optimal one. In this second embodiment, the faster implementation is realized by taking a basis different from the normal basis used in the first embodiment. That is, this second embodiment realizes the faster implementation by using a standard basis instead of the normal basis of the first embodiment.




More specifically, in this second embodiment, when a finite field GF(2


2n


) is represented by:







GF


(2


2n


)≅


GF


(2


n


)[


x


]/(


x




2




+x+a


)(


aεGF


(2


n


))




and a standard basis [1 α] is taken as a basis when GF(2


2n


) is regarded as a two-dimensional vector space in GF(2


n


) where αm is a root of x


2


+x+a=0, arithmetic operations can be calculated as follows.




Addition:






(


x




1




+Y




1


α)+(


x




2




+y




2


α)=(


x




1




+x




2


)+(


y




1




+y




2


)α  (1)






Multiplication:






(


x




1




+y




1


α)×(


x




2




+y




2


α)=(


x




1




x




2




+ay




1




y




2


)+((


x




1




+y




1


)(


x




2




+y




2


)+


x




1




x




2


)α  (2)






Square:






(


x




1




+y




1


α)


2


=(


x




1




2




+ay




1




2


)α+


y




2


α  (3)






Inverse:






(


x




1




+y




1


α)


−1


=(


x




1


(


x




1




+y




1


)+


ay




1




2


)


−1


((


x




1




+y




1


)+y


1


α)  (4)






Now this second embodiment will be described in further detail with references to the drawings.




A finite field GF(22


e2






t




) has a subfield GF(2


e2






t−1




), and can be regarded as a vector space in GF(2


e2






t−1




). From this fact it follows that operations in GF(2


e2






t




) can be reduced to operations in GF(2


e2






t−1




), and similarly, they can be reduced to operations in GF(2


e2






t−2




), . . . , GF(2


e


) as explicitly noted above.




In further detail, in this second embodiment, operations in GF(2


e2






t




) are reduced to operations in GF(2


e2






t−1




), operations in GF(2


e2






t−1




) are reduced to operations in GF(2


e2






t−2




), and so on so forth sequentially, until operations are finally reduced to those in GF(2


e


). Then, arithmetic operations in GF(2


e


) are realized as follows.





FIG. 7

shows a configuration of a GF(2


e


) addition device to be used for arithmetic operations in finite field according to this second embodiment. This GF(2


e


) addition device comprises an e bit exclusive OR (XOR) unit


20




a


, and operates as follows.




STEP


101


: An exclusive OR value x+(XOR) y of inputs x and y are calculated by the e bit exclusive OR unit


20




a.






STEP


102


: An output x+(XOR) y of the e bit exclusive OR unit


20




a


is outputted as x+y.





FIG. 8

shows a configuration of a GF(2


e


) multiplication device


21


to be used for arithmetic operations in finite field according to this second embodiment. This GF(2


e


) multiplication device


21


comprises a query unit


21




a


and a multiplication table


21




b


, which are configured to operate as follows.




STEP


201


: The query unit


21




a


looks up the multiplication table


21




b


by using inputs x and y as retrieval key so as to retrieve a product x×y of the inputs x and y.




STEP


202


: The query unit


21




a


outputs a value x×y obtained from the multiplication table


21




b.






As for a GF(2


e


) square calculation to be used for arithmetic operations in finite field according to this second embodiment, it can be realized by entering identical inputs to the GF(2


e


) multiplication device


21


of FIG.


8


.





FIG. 9

shows a configuration of a GF(2


e


) inverse calculation device


22


to be used for arithmetic operations in finite field according to this second embodiment. This GF(2


e


) inverse calculation device


22


comprises a query unit


22




a


and a query unit


22




a


and an inverse table


22




b


, which are configured to operate as follows.




STEP


301


: The query unit


22




a


looks up the inverse table


22




b


by using an input x as retrieval key so as to retrieve an inverse x


−1


of the input x.




STEP


302


: The query unit


22




a


outputs a value x


−1


obtained from the inverse table


22




b.







FIG. 10

shows a configuration of a GF(2


2n


) addition device


23


according to this second embodiment which realizes calculation of the above described equation (1). This GF(2


2n


) addition device


23


comprises two GF(2


n


) addition devices


23




a


and


23




b


, which are configured to operate as follows.




STEP


401


: The GF(2


n


) addition device


23




a


calculates a sum x


3


of x


1


in one input m


1


=x


1


+y


1


α and y


2


in another input m


2


=x


2


+y


2


α.




STEP


402


: The GF(2


n


) addition device


23




b


calculates a sum y


3


of y


1


in the input m


1


=x


1


+y


1


α and y


2


in the input m


2


=x


2


+y


2


α.




STEP


403


: A set of x


3


and y


3


that gives a sum m


3=m




1


+m


2


=x


3+y




3


α is outputted.





FIG. 11

shows a configuration of a GF(2


2n


) multiplication device


24


according to this second embodiment which realizes calculation of the above described equation (2). This GF(2


2n


) multiplication device


24


comprises four GF(2


n


) addition devices (add)


24




a


,


24




c


,


24




f


and


24




h


and four GF(2


n


) multiplication devices (mul)


24




b


,


24




d


,


24




e


and


24




g


, which are configured to operate as follows.




STEP


501


: The add device


24




a


calculates a sum t


1


of inputs x


1


and y


1


, and outputs this t


1


to the mul device


24




e.






STEP


502


: The mul device


24




b


calculates a product t


2


of inputs x


1


and y


1


, and outputs this t


2


to the add device


24




f.






STEP


503


: The add device


24




c


calculates a sum t


3


of inputs x


2


and y


2


, and outputs this t


3


to the mul device


24




e.






STEP


504


: The mul device


24




d


calculates a product t


4


of inputs x


2


and y


2


, and outputs this t


4


to the add device


24




h.






STEP


505


: The mul device


24




e


calculates a product t


5


of inputs t


1


and t


3


, and outputs this t


5


to the add device


24




f


and the mul device


24




g.






STEP


506


: The add device


24




f


calculates a sum y


3


of inputs t


2


and t


5


, and outputs this y


3


as part of the output of the GF(2


2n


) multiplication device


24


.




STEP


507


: The mul device


24




g


calculates a product to of an input t


5


and a constant a, and outputs this t


7


to the add device


24




h.






STEP


508


: The add device


24




h


calculates a sum x


3


of inputs t


4


and t


7


, and outputs this x


3


as part of the output of the GF(2


2n


) multiplication device


24


.




Thus the GF(2


2n


) multiplication device


24


outputs a set x


3


and y


3


that gives a product m


3


=m


1


×m


2


=x


3


+y


2


α.





FIG. 12

shows a configuration of a GF(2


2n


) square calculation device according to this second embodiment which realizes calculation of the above described equation (3). This GF(2


2n


) square calculation device comprises one GF(2


n


) addition device (add)


25




d


, one GF(2


n


) multiplication device (mul)


25




c


, and two GF(2


n


) square calculation devices (sqr)


25




a


and


25




b


, which are configured to operate as follows.




STEP


601


: The sqr device


25




a


calculates a square t


1


of an input x


1


, and outputs this t


1


to the add device


25




d.






STEP


602


: The sqr device


25




b


calculates a square t


2


of an input y


1


, and outputs this t


2


to the mul device


25




c.






STEP


603


: The mul device


25




c


calculates a product y


3


of an input t


2


and a constant a, and outputs this y


3


to the add device


25




d


while also outputting this y


3


as part of the output of to the square calculation device


25


.




STEP


604


: The add device


25




d


calculates a sum x


3


of the inputs t


1


and y


3


, and outputs this x


3


as part of the output of the square calculation device


25


.




Thus the GF(2


2n


) square calculation device outputs a set x


3


and y


3


that gives a square m


1




2


=x


3


α.





FIG. 13

shows a configuration of a GF(2


2n


) inverse calculation device


26


according to this second embodiment which realizes calculation of the above described equation (4). This GF(2


2n


) inverse calculation device


26


comprises two GF(2


n


) addition devices (add)


26




a


and


26




e


, four GF(2


n


) multiplication devices (mul)


26




b


,


26




d


,


26




g


and


26




h


, oneGF(2


n


) square calculation device (sqr)


26




c


, and one GF(2


n


) inverse calculation device (Inv)


26




f


, which are configured to operate as follows.




STEP


701


: The add device


26




a


calculates a sum t


1


of inputs x


1


and y


1


, and outputs this t


1


to the mul device


26




b


and the mul device


26




g.






STEP


702


: The mul device


26




b


calculates a product t


2


of inputs x


1


and t


1


, and outputs this t


2


to the add device


26




e.






STEP


703


: The sqr device


26




c


calculates a square t


3


of an input y


1


, and outputs this t


3


to the mul device


26




d.






STEP


704


: The mul device


26




d


calculates a product t


4


of an input t


3


and a constant a, and outputs this t


4


to the add device


26




e.






STEP


705


: The add device


26




e


calculates a sum t


5


of inputs t


2


and t


4


, and outputs this t


5


to the inv device


26




f.






STEP


706


: The inv device


26




f


calculates an inverse t


6


of an input t


5


, and outputs this t


6


to the mul device


26




g


and the mul device


26




h.






STEP


707


: The mul device


26




g


calculates a product x


3


of inputs t


1


and t


6


, and outputs this x


3


as part of the output of the GF(2


2n


) inverse calculation device


26


.




STEP


708


: The mul device


26




h


calculates a product y


3


of inputs y


1


and t


6


, and outputs this y


3


as part of the output of the GF(2


2n


) multiplication device


24


.




Thus the GF(2


2n


) inverse calculation device


26


outputs a set x


3


and y


3


that gives an inverse m


1




−1


=x


3+y




3


α.





FIG. 14

shows a comparison of finite field arithmetic operation performances by this second embodiment and the first embodiment described above.




As can be seen in

FIG. 14

, this second embodiment is superior to the first embodiment in terms of depth, for all the cases except for the addition. In addition, this second embodiment is superior to the first embodiment in terms of a required number of additions for the square calculation.




Since the inverse calculation internally uses the square calculation, this second embodiment can be implemented to be faster than the first embodiment for the inverse calculation as well.




It is to be noted that, when operations in finite field are to be reduced to operations in its subfield successively in a sequence of:








GF


(2


e2






t




)→


GF(


2


e2






t−1




)→ . . . →


GF


(2


e


)






it is possible to use the scheme of the first embodiment in one reduction stage and the scheme of the second embodiment in another reduction stage. For instance, it is possible to use the scheme of the first embodiment for the reduction of operations in GF(2


e2






t




) to operations in GF(2


e2






t−1




), while using the scheme of the second embodiment for the reduction of operations in GF(2


e2






t−1




) to operations in GF(2


e2






t−1




), and so on so forth.




Referring now to

FIG. 15

to

FIG. 21

, the third embodiment of a scheme for group operations over elliptic curves according to the present invention will be described in detail. This third embodiment is an application of a scheme for arithmetic operations in finite field of the first or second embodiment described above to group operations over elliptic curves in finite field.




When appropriate field K is defined, group E(K) over elliptic curves can be expressed as:








E


(


K


)={(


x, y





K




2




|f


(


x, y


)=0


}U


{0}






where f(x, y)εK[x, y] (but f(x, y) cannot be chosen arbitrarily and is subjected to some constraints). For P


i


εE(K) (i=1, 2, 3), assuming that P


3


=P


1


+P


2


holds when P


i


≠0(i=1, 2, 3), group operations over elliptic curves can be expressed in terms of appropriate polynomials p(x


1


, x


2


, y


1


, y


2


), q(x


1


, x


2


, y


1


, y


2


), r(x


1


, x


2


, y


1


, y


2


), s(x


1


, x


2


, y


1


, y


2


)εK(x


1


, x


2


, y


1


, y


2


) as follows.






{





x
3

=


p


(


x
1

,

x
2

,

y
1

,

y
2


)



q


(


x
1

,

x
2

,

y
1

,

y
2


)










y
3

=


r


(


x
1

,

x
2

,

y
1

,

y
2


)



s


(


x
1

,

x
2

,

y
1

,

y
2


)







&AutoRightMatch;










Note here that polynomials p, q, r, s are determined and not dependent on P


i


when the elliptic curves E(K) are fixed, but polynomials p, q, r, s are different for a case of P


i


=P


2


and a case of P


1


≠P


2


. From the above it can be seen that group operations over elliptic curves can be constructed from arithmetic operations in field K.




Now this third embodiment will be described in further detail with references to the drawings.




Non-supersingular elliptic curves over GF(2


e2






t




) can be defined in terms of parameters:








a




2




, a




6




εGF


(2


e2






t




)(


a




6


≠0)






by using the affine coordinates as follows.








E


(


GF


(2


e2






t




))={(


x, y





GF


(2


e2






1




)


2




|y




2




+xy=x




3




+a




2




x




2




+a




6




}U


{1}






In this case, the addition over the elliptic curves is defined such that, when:








P




i


(


x




i




, y




i





E


(


GF


(2


e2






1




)) (


i


=1, 2)






assuming that −-P


1


≠P


2


, (x


3


, y


3


)=P


1


+P


2


can be given by:







λ
=



y
1

+

y
2




x
1

+

x
2




,
















{





x
3

=


λ
2

+
λ
+

(


x
1

+

x
2


)

+

a
2









y
3

=


λ


(


x
1

+

x
3


)


+

x
3

+

y
1






&AutoRightMatch;




(
5
)
















λ
=


x
1

+


y
1


x
1



















{





x
3

=


λ
2

+
λ
+

a
2









y
3

=



(

λ
+
1

)



x
3


+

x
1
2






&AutoRightMatch;




(
6
)













Also, the inverse over the elliptic curves can be expressed as follows.






−(


x




1




, y




1


)=(


x




1




, x




1




+y




1


)  (7)






(For details of group operations over elliptic curves in field with characteristic


2


, see A. J. Menezes: “Elliptic Curve Public Key Cryptosystems”, Kluwer Academic Publishers, pp. 21-23, 1993, for example.)




An element in finite field GF(2


e2






t




) can be expressed by a bit sequence in e2


t


digits, and a point on an elliptic curve can be expressed by two elements in finite field, so that a point on an elliptic curve can be expressed by a bit sequence in 2e2


t


bits. In the following, a point P


i


on an elliptic curve is assumed to be expressed in this way. Note however that 0εE(GF(2


e2






t




) can be expressed as 0=(0, 0) because:






(0, 0)∉


E


(


GF


(2


e2






t




))







FIG. 15

shows a configuration of an elliptic curve group inverse calculation device


1


for an element of a group over elliptic curves according to this third embodiment which realizes calculation of the above equation (7). This elliptic curve group inverse calculation device


1


comprises a query unit


1




a


and a finite field addition device


1




b


such as that shown in

FIG. 10

described above, which are configured to operate as follows.




STEP


801


: The query unit


1




a


gives input (x, y) to the finite field addition device


1




b.






STEP


802


: The finite field addition device


1




b


calculates a sum x+y in GF(2


e2






t




) of the input x and y, and returns it to the query unit


1




a.






STEP


803


: The query unit


1




a


outputs an inverse (x, x+y) of an element of a group over elliptic curves by using x+y obtained from the finite field addition device


1




b.







FIG. 16

shows an elliptic curve group addition device


3


for elements of a group over elliptic curves according to this third embodiment which realizes calculation of the above equation (5). This elliptic curve group addition device


3


comprises a query unit


3




a


, an elliptic curve group inverse calculation device


3




b


for an element of a group over elliptic curves such as that shown in

FIG. 15

described above, an elliptic curve group comparison device


3




c


for elements of a group over elliptic curves such as that of

FIG. 17

to be described below, and an elliptic curve group special addition device


3




d


for elements of a group over elliptic curves such as that of

FIG. 18

to be described below, which are configured to operate as follows.




STEP


901


: The query unit


3




a


checks whether P


1


=0 or not by using the elliptic curve group comparison device


3




c


, and if it is TRUE, the query unit


3




a


sets Q=P


2


and proceeds to the step


908


.




STEP


902


: The query unit


3




a


checks whether P


2


=0 or not by using the elliptic curve group comparison device


3




c


, and if it is TRUE, the query unit


3




a


sets Q=P


i


and proceeds to the step


908


.




STEP


903


: The query unit


3




a


gives an input P


1


to the elliptic curve group inverse calculation device


3




b.






STEP


904


: The elliptic curve group inverse calculation device


3




b


calculates an inverse −P


1


of the input P


1


, and returns it to the query unit


3




a.






STEP


905


: The query unit


3




a


gives the output −P


1


of the elliptic curve group inverse calculation device


3




b


and its own input P


2


to the elliptic curve group comparison device


3




c.






STEP


906


: The elliptic curve group comparison device


3




c


compares inputs −P


1


and P


2


, and returns T (TRUE) when they coincide or F (FALSE) otherwise.




STEP


907


: The query unit


3




a


sets Q=0 when the output of the elliptic curve group comparison device


3




c


at the step


906


is T (TRUE), or obtains Q=P


1


+P


2


by giving P


1


and P


2


to the elliptic curve group special addition device


3




d


otherwise.




STEP


908


: The query unit


3




a


outputs Q (=P


1


+P


2


).





FIG. 17

shows an elliptic curve group comparison device


4


for elements of a group over elliptic curves according to this third embodiment which can be used in the elliptic curve group addition device of

FIG. 16

described above. This elliptic curve group comparison device


4


comprises a query unit


4




a


and a 2e2


t


bit sequence comparison unit


4




b


, which are configured to operate as follows.




STEP


1001


: The query unit


4




a


gives bit sequences X


1


∥y


1


and x


2


∥y


2


obtained by joining bit sequences x


1


and y


1


of an input P


1


=(x


1


, y


1


) and bit sequences x


2


and y


2


of an input P


2


=(x


2


, y


2


), respectively, to 2e2


t


bit sequence comparison unit


4




b.






STEP


1002


: The 2e2


t


bit sequence comparison unit


4




b


compares x


1


∥y


1


and x


2


∥y


2


, and returns T (TRUE) when they coincide or F (FALSE) otherwise.




STEP


1003


: The query unit


4




a


outputs T/F value obtained by the 2e2


t


bit sequence comparison unit


4




b.







FIG. 18

shows an elliptic curve group special addition device


5


for elements of a group over elliptic curves according to this third embodiment which can be used in the elliptic curve group addition device of

FIG. 16

described above. This elliptic curve group special addition device


5


comprises eight finite field addition devices (add)


5




a


,


5




c


.


5




f


,


5




g


,


5




h


,


5




i


,


5




k


and


5




l


, one finite field inverse calculation device


5




b


, two finite field multiplication devices (mul)


5




d


and


5




j


, and one finite field square calculation device (sqr)


5




e


, which are configured to operate as follows.




STEP


1101


: The add device


5




a


calculates a sum t


1


(=x


1


+x


2


) of inputs x


1


and x


2


, and outputs this t


1


to the inv device


5




b


and the add device


5




g.






STEP


1102


: The inv device


5




b


calculates an inverse t


2


(=(x


1


+x


2


)


−1


) of an input t


1


, and outputs this t


2


to the mul device


5




d.






STEP


1103


: The add device


5




c


calculates a sum t


3


(=y


1


+y


2


) of inputs y


1


and y


2


, and outputs this t


3


to the mul device


5




d.






STEP


1104


: The mul device


5




d


calculates a product:






λ


(

=



y
1

+

y
2




x
1

+

x
2




)











of inputs t


2


and t


3


, and outputs this λ to the sqr device


5




e


, the add device


5




f


, and the mul device


5




j.






STEP


1105


: The sqr device


5




e


calculates a square to (=λ


2


) of an input λ, and outputs this t


5


to the add device


5




f.






STEP


1106


: The add device


5




f


calculates a sum t


5


(=λ


2


+λ) of inputs λ and t


4


, and outputs this t


5


to the add device


5




g.






STEP


1107


: The add device


5




g


calculates a sum t


6


(=λ


2


+λ+x


1


+x


2


) of inputs t


1


and t


5


, and outputs this t


6


to the add device


5




h.






STEP


1108


: The add device


5




h


calculates a sum x


3


(=λ


2


+λ+x


1


+x


2


+a


2


) of an input t


6


and a constant a


2


, and outputs this x


3


to the add device


5




i


and the add device


5




k


while also outputting this x


3


as part of the output of the elliptic curve group special addition device


5


.




STEP


1109


: The add device


5




i


calculates a sum t


7


(=x


1


+x


3


) of inputs x


1


and x


3


, and outputs this t


7


to the mu


1


device


5




j.






STEP


1110


: The mul device


5




J


calculates a product t


8


(=λ(x


1


+x


3


)) of inputs λ and t


7


, and outputs this t


8


to the add device


5




k.






STEP


1111


: The add device


5




k


calculates a sum t


9


(=π(x


1


+x


3


)+x


3


) of inputs to and x


3


, and outputs this t


9


to the add device


5




l.






STEP


1112


: The add device


5




l


calculates a sum y


3


(=λ(x


1


+x


3


)+x


3


+y


1


) of inputs y


1


and t


9


, and outputs this y


3


as part of the output of the elliptic curve group special addition device


5


.




Note that each finite field multiplication device (mul) used in this elliptic curve group special addition device


5


can have a configuration as shown in

FIG. 11

described above. The finite field square calculation device (sqr) used in this elliptic curve group special addition device


5


can be realized by a configuration of

FIG. 11

described above, but can be realized in faster implementation by a special configuration for square calculation such as that of

FIG. 12

described above. The finite field inverse calculation device (inv) used in this elliptic curve group special addition device


5


can have a configuration as shown in

FIG. 13

described above.





FIG. 19

shows an elliptic curve group double calculation device for an element of a group over elliptic curves according to this third embodiment which realizes calculation of the above equation (6). This elliptic curve group double calculation device comprises a query unit


10




a


and an elliptic curve group special double calculation device


10




b


for an element of a group over elliptic curves such as that of

FIG. 20

to be described below, which are configured to operate as follows.




STEP


1201


: The query unit


10




a


sets Q=0 when x=0 in an input P=(x, y), or obtains Q=2P by giving the input P to the elliptic curve group special double calculation device


10




b


otherwise.




STEP


1202


: The query unit


10




a


outputs Q (=2P).





FIG. 20

shows an elliptic curve group special double calculation device


11


for an element of a group over elliptic curves according to this third embodiment which can be used in the elliptic curve group double calculation device of

FIG. 19

described above. This elliptic curve group special double calculation device


11


comprises five finite field addition devices (add)


11




d


,


11




f


,


11




g


,


11




h


and


11




j


, one finite field inverse calculation device


11




b


, two finite field multiplication devices (mul)


11




c


and


11




i


, and two finite field square calculation devices (sqr)


11




a


and


11




e


, which are configured to operate as follows.




STEP


1301


: The sqr device


11




a


calculates a square t


1


(=x


2


) of an input x, and outputs this t


1


to the add device


11




j.






STEP


1302


: The inv device


11




b


calculates an inverse t


2


(=x


−1


) of the input x, and outputs this t


2


to the mul device


11




c.






STEP


1303


: The mul device


11




c


calculates a product t


3


(=x


−1


×y) of inputs y and t


2


, and outputs this t


3


to the add device


11




d.






STEP


1304


: The add device


11




d


calculates a sum:






λ


(

=

x
+

y
x



)











of inputs x and y


3


, and outputs this λ to the sqr device


11




e


, the add device


11




f


and the add device


11




h.






STEP


1305


: The sqr device


11




e


calculates a square t


4


(=λ


2


) of an input λ, and outputs this t


4


to the add device


11




f.






STEP


1306


: The add device


11




f


calculates a sum t


5


(=λ


2


+λ) of inputs λ and t


4


, and outputs this t


5


to the add device


11




g.






STEP


1307


: The add device


11




g


calculates a sum x


2


(=λ


2


+λ+a


2


) of an input t


5


and a constant a


2


, and outputs this x


3


as part of the output of the elliptic curve group special double calculation device


11


.




STEP


1308


: The add device


11




h


calculates a sum t


6


(=λ+1) of an input λ and a constant 1, and outputs this t


6


to the mul device


11




i.






STEP


1309


: The mul device


11




i


calculates a product t


7


(=(λ+1)x


3


) of inputs x


3


and t


6


, and outputs this t


7


to the add device


11




j.






STEP


1310


: The add device


11




j


calculates a sum y


3


(=(λ+1)x


3


+x


1




2


) of inputs t


1


and t


7


, and outputs this y


3


as part of the output of the elliptic curve group special double calculation device


11


.





FIG. 21

shows an elliptic curve group natural number multiple calculation device


12


for an element of a group over elliptic curves according to this third embodiment. A natural number multiple of an element of a group over elliptic curves can be realized in various ways, and

FIG. 21

shows an implementation using a binary calculation method (see B. Schneier, Applied Cryptography, 2nd Edition, pp. 242-244). This elliptic curve group natural number multiple calculation device


12


comprises a control unit


12




a


, an elliptic curve group comparison device


12




b


for elements of a group over elliptic curves such as that shown in

FIG. 17

described above, an elliptic curve group addition device


12




c


for elements of a group over elliptic curves such as that shown in

FIG. 16

described above, and an elliptic curve group double calculation device


12




d


for an element of a group over elliptic curves such as that shown in

FIG. 19

described above, which are configured to operate as follows.




STEP


1401


: The control unit


12




a


initializes internal variables Q and R as follows.







Q=O










R=P








STEP


1402


: The control unit


12




a


checks a value of n, and outputs Q as the output of the elliptic curve group natural number multiple calculation device


12


and then stops operating when n coincides with 0.




STEP


1403


: The control unit


12




a


checks a value of n, and sets:








n←n


−1






when n is odd. Then, control unit


12




a


compares values of Q and R by using the elliptic curve group comparison device


12




b


, and calculates:








Q←Q+R








by using the elliptic curve group double calculation device


12




d


when Q and R coincide, or by using the elliptic curve group addition device


12




c


when Q and R do not coincide.




STEP


1404


: The control unit


12




a


calculates:








n←n


/2






STEP


1405


: The control unit


12




a


calculates:








R


←2


R








by using the elliptic curve group double calculation device


12




d.






STEP


1406


: The control unit


12




a


returns the operation back to the step


1402


described above.




Now, this scheme for group operations over elliptic curves according to the third embodiment can be applied to various fields such as those of cipher communications and electronic money. Here, the key sharing, encryption, and digital signing in a case of applying this third embodiment to the fields of cipher communications and electronic money will be described.




First, the Diffie-Hellman key sharing scheme using elliptic curves will be described. Here, system parameters are assumed to be an elliptic curve E(GF(2


n


)) and an element PεE(GF(2


n


)) of large order.




In this case, at a time of key generation, a user U randomly generates a positive integer x


U


and calculates:








Y




U




=x




U




P








where x


U


is a secret key and Y


U


is a public key.




Next, the key sharing between users A and B can be realized as follows.




STEP


1501


: The user A acquires the public key Y


B


of the user B somehow.




STEP


1502


: The user A calculates:








K




A,B




=x




A




Y




B








STEP


1503


: The user B similarly calculates:








K




B




=x




B




Y




A








As a result, the key K


A,B


=K


B,A


is shared between the users A and B.




By applying the scheme for group operations over elliptic curves of the third embodiment to this procedure, it becomes possible to realize the faster processing speed




Next, the ElGamal encryption using elliptic curves will be described. Here, system parameters are assumed to be an elliptic curve E(GF(2


n


)) and an element PεE(GF(2


n


)) of large order.




In this case, at a time of key generation, a user U randomly generates a positive integer x


U


and calculates:








Y




U




=x




U




P








where x


U


is a secret key and Y


U


is a public key.




Next, a sender can encrypt a plaintext M and transmits a resulting ciphertext to a receiver user A as follows.




STEP


1601


: The sender acquires the public key Y


A


of the user A somehow.




STEP


1602


: The sender generates a positive integer random number r.




STEP


1603


: The sender calculates the ciphertext (C


1


, C


2


) as follows.








C




1




=rP












C




2




=M+rY




A








STEP


1604


: The user A can obtain the plaintext M by carrying out the decryption of the ciphertext (C


1


, C


2


) as follows.








M=C




2




−x




A




C




1








Next, the ElGamal digital signature using elliptic curves will be described. Here, system parameters are assumed to be an elliptic curve E(GF(2


n


)), an element PεE(GF(2


n


)) of large order, and an order


#


E(GF(2


n


)) of the elliptic curve, and a one-way hash function h is to be used.




In this case, at a time of key generation, a user U randomly generates a positive integer x


U


and calculates:






Y




U




=x




U




P






where x


U


is a secret key and Y


U


is a public key.




Next, a user A can digitally sign data m as follows.




STEP


1701


: The user A randomly selects a positive integer k which is relatively prime with respect to


#


E(GF(2


n


)).




STEP


1702


: The user A calculates the signature (R, s) as follows.








R=kP










s=(


m−x




A




h


(


r


))


k




−1


mod


190




E


(


GF


(2


n


))






Then, the authenticity of this signature (R, s) can be verified as follows.








mP=h


(


R


)


Y




A




+R








It is to be noted that, according to this scheme of the third embodiment, when elements other than a point at infinity 0 of a group over elliptic curves E(GF(2


2n


)) in finite field GF(2


2n


) are expressed in terms of affine coordinates (x, y), group operations over elliptic curves can be expressed as rational expressions in x and y, and it is possible to calculate a rational expression in a form of:







p


(


X
1

,

X
2

,

,

X
r


)



q


(


X
1

,

X
2

,

,

X
r


)












where p, qεGF(2


2n


)[X


1


, x


2


, . . . , X


r


] by calculating a multiplication in GF(2


2n


) that arises in calculations using polynomials p, qεGF(2


2n


)[X


1


, X


2


, X


r


] according to:






(x


1




+y




1


α)×(


x




2


+y


2


α)=(


x




1




x




2




+ay




1




y




2


)+((


x




1




+y




1


)(x


2




+y




2


)+x


1




x




2









and






(


x




1




+y




1


α)


2


=(


x




1




2+ay




1




2


)+


y




1




2


α






where x


1


, x


2


, y


1


, y


2


, aεGF(2


n


), α∉GF(2


n


), α


2


+α+a=0 and GF(2


2


)=GF(2


n


)(α); and calculating an inverse q


−1


of q in GF(2


2n


) according to:






(


x




1


+y


1


α)


−1


=(


x




1


(


x




1




y




1


)+


ay




1




2


)


−1


((


x




1




+y




1


)+


y




1


α)






where x


1


, y


1


, aεGF(2


n


), α∉GF(2


n


), α


2


+α+a=0 and GF(2


2n


)=GF(2


n


)(α); and then calculating p×q


−1


by repeating the multiplication as described above for calculations using polynomials p and q.




It is to be noted that the above described embodiments according to the present invention may be conveniently implemented using conventional general purpose digital computers programmed according to the teachings of the present specification, as will be apparent to those skilled in the computer art. Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art.




In particular, any of the devices shown in

FIG. 1

to FIG.


13


and

FIG. 15

to

FIG. 21

described above can be conveniently implemented in forms of software package.




Such a software package can be a computer program product which employs a storage medium including stored computer code which is used to program a computer to perform the disclosed function and process of the present invention. The storage medium may include, but is not limited to, any type of conventional floppy disks, optical disks, CD-ROMs, magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, or any other suitable media for storing electronic instructions.




It is also to be noted that, besides those already mentioned above, many modifications and variations of the above embodiments may be made without departing from the novel and advantageous features of the present invention. Accordingly, all such modifications and variations are intended to be included within the scope of the appended claims.



Claims
  • 1. A method for calculating a rational expression in finite field GF(22) in a form of: p⁢(X1,X2,⋯,Xr)q⁢(X1,X2,⋯,Xr)where p, qεGF(22n)[X1, X2, . . . , Xr], comprising the steps of:calculating a multiplication in GF(22n) that arises in calculations using polynomials p, qεGF(22n)[X1, X2, . . . , Xr] according to a multiplication formula: (x1⁢α+y1⁢(α+1))×(x2⁢α+y2⁢(α+1))=(x1⁢x2+a⁢(x1+y1)⁢(x2+y2))⁢α+(y1⁢y2+a⁢(x1+y1)⁢(x2+y2))⁢(α+1)where x1, x2, y1, y2, aεGF(2n), α∉GF(2n), α2+α+a=0 and GF(22n)=GF(2n)(α));calculating an inverse q−1 of q in GF(22n) according to an inverse calculation formula: (xα+y(α+1))−1=(a(x+y)2+xy)−1(yα+x(α+1)) where x, y, aεGF(2n), α∉GF(2n), α2+α+a=0 and GF(22n)=GF(2n)(α)); andcalculating p×q−1 by using said multiplication formula.
  • 2. The method of claim 1, further comprising the step of:expressing elements other than a point at infinity 0 of a group over elliptic curves E(GF(22n)) in the finite field GF(22n) in terms of affine coordinates (x, y) so as to express group operations over elliptic curves as rational expressions in x and y, so that the calculating steps calculate a group operation over elliptic curves by calculating said rational expression.
  • 3. A device for calculating a rational expression in finite field GF(22n) in a form of: p⁢(X1,X2,⋯,Xr)q⁢(X1,X2,⋯,Xr)where p, qεGF(22n)[X1, X2, . . . , Xr], comprising:a first unit for calculating a multiplication in GF(22n) that arises in calculations using polynomials p, qεGF(22n)[X1, X2, . . . , Xr] according to a multiplication formula: (x1⁢α+y1⁢(α+1))×(x2⁢α+y2⁢(α+1))=(x1⁢x2+a⁢(x1+y1)⁢(x2+y2))⁢α+(y1⁢y2+a⁢(x1+y1)⁢(x2+y2))⁢(α+1)where x1, x2, y1, y2, aεGF(2n), α∉GF(2n), α2+α+a=0 and GF(22n)=GF(2n)(α));a second unit for calculating an inverse q−1 of q in GF(22n) according to an inverse calculation formula: (xα+y(α+1))−1=(a(x+y)2+xy)−1(yα+x(α+1)) where x, y, aεGF(2n), αεGF(2n), α2+α+a=0 and GF(22n)=GF(2n)(α)); anda third unit for calculating p×q−1 by using said multiplication formula.
  • 4. An article of manufacture, comprising:a computer usable medium having computer readable program code means embodied therein for causing a computer to function as a system for calculating a rational expression in finite field GF(22n) in a form of: p⁢(X1,X2,⋯,Xr)q⁢(X1,X2,⋯,Xr)where p, qεGF(22n)[X1, X2, . . . , Xr], the computer readable program code means includes:first computer readable program code means for causing said computer to calculate a multiplication in GF(22n) that arises in calculations using polynomials p, qεGF(22n)[X1, X2, . . . , Xr] according to a multiplication formula: (x1⁢α+y1⁢(α+1))×(x2⁢α+y2⁢(α+1))=(x1⁢x2+a⁢(x1+y1)⁢(x2+y2))⁢α+(y1⁢y2+a⁡(x1+y1)⁢(x2+y2))⁢(α+1)where x1, x2, y1, y2, aεGF(2n), α∉GF(2n), α2+α+a=0 and GF(22n)=GF(2n)(α));second computer readable program code means for causing said computer to calculate an inverse q−1 of q in GF(22n) according to an inverse calculation formula: (xα+y(α+1))−1=(a(x+y)2+xy)−1(yα+x(α−1)) where x, y, αεGF(2n), α∉GF(2n), α2+α+a=0 and GF(22n)=GF(2n)(α)); andthird computer readable program code means for causing said computer to calculate p×q−1 by using said multiplication formula.
  • 5. A method for calculating a rational expression in finite field GF(22n) in a form of:p⁢(X1,X2,⋯,Xr)q⁢(X1,X2,⋯,Xr)where p, qεGF(22n)[X1, X2, . . . , Xr], comprising the steps of:calculating a multiplication in GF(22n) that arises in calculations using polynomials p, qεGF(22n)[X1, X2, . . . , Xr] according to a multiplication formula: (x1+y1 α)×(x2+y2 α)=(x1x2+ay1y2)+((x1+y1)(x2+y2)+x1x2)α and a square calculation formula(x1+y1 α)2=(x12+ay12)+y12αwhere x1, x2, y1, y2, aεGF(2n), α∉GF(22), α2+α+a=0 and GF(22n)=GF(2n)(α);calculating an inverse q−1 of q in GF(22n) according to an inverse calculation formula:  (x1+y1)−1=(x1(x1+y1)+ay12)−1((x1+y1)+y1 α)where x1, y1, aεGF(2n), α∉GF(2n), α2+α+a=0 and GF(22n)=GF(2n)(α); andcalculating p×q−1 by using said multiplication formula.
  • 6. The method of claim 5, further comprising the step of:expressing elements other than a point at infinity 0 of a group over elliptic curves E(GF(22n)) in finite field GF(22n) in terms of affine coordinates (x, y) so as to express group operations over elliptic curves as rational expressions in x and y, so that the calculating steps calculate a group operation over elliptic curves by calculating said rational expression.
  • 7. The method of claim 6, wherein the calculating steps calculate a multiplicative inverse (i, j) of an element (x1, y1) of a group over elliptic curves as a rational expression in x1 and y1.
  • 8. The method of claim 6, wherein the calculating steps calculate an addition (x3+y3)=(x1, y1)+(x2, y2) of elements (x1, y1) and (x2, y2) of a group over elliptic curves as a rational expression in x1, y1, x2 and y2, where (x1, y1)≠(x2, y2) and (x1, y1)≠−(x2, y2).
  • 9. The method of claim 6, wherein the calculating steps calculate a double (x3, y3)=2(x1, y1) of an element (x1, y1) of a group over elliptic curves as a rational expression in x1 and y1, where (x1, y1)≠(x1, y1).
  • 10. The method of claim 6, wherein the calculating steps calculate a natural number multiple (x3, y3)=n(x1, y1) of an element (x1, y1) of a group over elliptic curves, where n is a natural number, as a combination of multiplicative inverse calculations, additions, and double calculations in x1 and y1.
  • 11. A device for calculating a rational expression in finite field GF(22n) in a form of: p⁢(X1,X2,⋯,Xr)q⁢(X1,X2,⋯,Xr)where p, qεGF(22n)[X1, X2, . . . , Xr], comprising:a first unit for calculating a multiplication in GF(22n) that arises in calculations using polynomials p, qεGF(22n)[X2, X2, . . . , Xr] according to a multiplication formula: (x1+y1 α)×(x2+y2 α)=(x1x2+ay1y2)+((x1+y1)(x2+y2)+x1x2)αand a square calculation formula(x1+y1 α)2=(x12+ay12)+y12αwhere x1, x2, y1, y2, aεGF(2n), α∉GF(2n), α2+α+a=0 and GF(22n)=GF(2n)(α);a second unit for calculating an inverse q−1 of q in GF(22n) according to an inverse calculation formula: (x1+y1 α)−1=(x1(x1+y1)+ay12)−1((x1+y1)+y α) where x1, y1, aεGF(2n), α∉GF(2n), α2+α+a=0 and GF(22n)=GF(2n)(α); anda third unit for calculating p×q−1 by using said multiplication formula.
  • 12. An article of manufacture, comprising:a computer usable medium having computer readable program code means embodied therein for causing a computer to function as a system for calculating a rational expression in finite field GF(22n) in a form of: p⁢(X1,X2,⋯,Xr)q⁢(X1,X2,⋯,Xr)where p, qεGF(22n)[X1, X2, . . . , Xr], the computer readable program code means includes:first computer readable program code means for causing said computer to calculate a multiplication in GF(22n) that arises in calculations using polynomials p, qεGF(22n)[X1, X2, . . . , Xr] according to a multiplication formula: (x1+y1 α)×(x2+y2 α)=(x1x2+ay1y2)+((1+y1)(x2+y2)+x1x2)αand a square calculation formula(x1+y1 α)2=(x12+ay12)+y12αwhere x1, x2, y1, y2, aεGF(2n), α∉GF(2n), α2+α+a=0 and GF(2n2)=GF(2n)(α);second computer readable program code means for causing said computer to calculate an inverse q−1 of q in GF(22n) according to an inverse calculation formula: (x1+y1 α)−1=(x1(x1+y1)+ay12)−1((x1+y1)+y1 α) where x1, y1, aεGF(2n), α∉GF(2n), α2+α+a=0 and GF(22n)=GF(2n)(α); andthird computer readable program code means for causing said computer to calculate p×q−1 by using said multiplication formula.
Priority Claims (3)
Number Date Country Kind
P9-15739 Jan 1997 JP
P9-206992 Jul 1997 JP
P9-206995 Jul 1997 JP
CROSS REFERENCE TO RELATED APPLICATION

This is a divisional of U.S. application No. 09/014,891 filed Jan. 28, 1998 and now U.S. Pat. No. 6,038,581.

US Referenced Citations (5)
Number Name Date Kind
5414719 Iwaki et al. May 1995
5602767 Fettweis et al. Feb 1997
5689452 Cameron Nov 1997
5812438 Lan et al. Sep 1998
5964826 Wei Oct 1999