CA2310588A1 - Transformation methods for optimizing elliptic curve cryptographic computations - Google Patents

Transformation methods for optimizing elliptic curve cryptographic computations Download PDF

Info

Publication number
CA2310588A1
CA2310588A1 CA002310588A CA2310588A CA2310588A1 CA 2310588 A1 CA2310588 A1 CA 2310588A1 CA 002310588 A CA002310588 A CA 002310588A CA 2310588 A CA2310588 A CA 2310588A CA 2310588 A1 CA2310588 A1 CA 2310588A1
Authority
CA
Canada
Prior art keywords
point
expression
field
mapping
elliptic curve
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002310588A
Other languages
French (fr)
Inventor
Behzad Sadeghi
John J. Beahan, Jr.
Cetin Kaya Koc
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
RT TECHNOLOGIES Inc
Oregon State University
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CA2310588A1 publication Critical patent/CA2310588A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/728Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using Montgomery reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

The present invention provides a transformation method for obtaining optimized hardware and software implementations of elliptic curve cryptographic systems, including elliptic curve encryption, decryption, and signature functions. The method is applicable to any elliptic curve group G defined over any field F. More specifically, the present invention is characterized by speeding up the elliptic curve point multiplication operation, which consists of the calculation Q = eP, where P is a member of G and e is an integer. This is achieved by transforming P = (x, y) to a point P' = (x', y') in order to compute Q' = (u, v = eP'). The point P' is not necessarily on the elliptic curve, but by performing calculation on P' and transforming the resulting Q' back into G, it may be possible to calculate Q more efficiently than utilizing a direct method. The present invention also includes a method for optimizing the calculation of cryptographic operations involving arbitrary expressions in finite field arithmetic through a transformation method that permits the use of any field F in an efficient manner. The invention includes a method for optimizing arbitrary finite calculation in any finite field. The present invention teaches a set of transformations of cryptographic calculations that allows the use of other known techniques that have only been applicable to certain limited special cases prior to this invention.

Description

TRANSFORMATION METHODS FOR OPTIMIZING
ELLIPTIC CURVE CRYPTOGRAPHIC COMPUTATIONS
TECHNICAL FIELD OF INVENTION
The present invention relates to software and hardware implementation of elliptic curve cryptographic systems, in particular, and systems that require computation of calculations involving a finite number of arbitrary field operations within a finite field, in general.
BACKGROUND OF THE INVENTION
l0 In the modern information-based society, the need for global computer and network security is becoming increasingly urgent. Cryptographic systems are fundamental tools used to build systems that ensure privacy, trust, and access control in such diverse areas as electronic commerce, corporate security, digital distribution of intellectual property, and national security, among others.
"Public-key" cryptographic systems, in turn, provide essential capabilities needed in systems requiring secure exchange of information between entities (people or computer systems) that may have never exchanged data with one another before. Most modern information systems, including the Internet, fit this description. As an example, while a consumer may have never had any contacts with a particular on-line vendor, he or she should be able to purchase an item from 2 0 that vendor in a secure manner. Public-key cryptosystems enable such purchases through providing capabilities such as encryption, decryption, digital signatures, and signature verification.
In public-key cryptography, an entity interested in receiving secure messages from others publishes his or her "public key." Others use this public-key to encrypt messages they send to the entity. These messages can be decrypted only through the use of a "private key" which is known 2 5 only to the entity. The entity can also use this private key to digitally "sign" a piece of data.

Others, in tum, can use the public key to verify the signature and ascertain that the data was indeed signed by the signing entity. .
The security of a public-key cryptosystem depends on how difficult it is to derive a private key from its associated, known public key. The more complex it is to mathematically derive the private key, the more time it takes a computer to "break" a public key by "guessing" its corresponding private key. Today, the most commonly used public-key cryptography system is the RSA public-key cryptosystem. The relationship between RSA's public and private keys is governed by the mathematics of factorization of large composite integers. RSA
public and private keys are large integers represented as a binary bit pattern. The longer a key, the harder it is and 1 o the longer it takes a computer to break it by deriving its private key.
For example, modern advances in factorization algorithms and distributed computing have made breaking 400-bit RSA
keys possible. Breaking an RSA key of length 1024 or 2048 bits, however, is thought to be virtually impossible given the computing resources available today. To retain an acceptable level of security, modern systems have been using longer RSA keys. Since performing public-key cryptography using longer keys requires more computing resources, it is economically ideal to use an alternative public-key cryptosystem that provides the same level of security with shorter keys.
Over the last decade, Elliptic Curve Cryptography ("ECC") has emerged as one possible alternative for an effective cryptosystem. ECC offers the same level of security as RSA with keys that are one-sixth the length of RSA keys. Until now, however, existing software implementations 2 0 of ECC have been too inefficient to be commercially viable. In order to be commercially viable, ECC needs to allow the same functionality as RSA at comparable speeds; as well as lower costs of implementation in hardware and software. Efficient ECC will enable implementation of many envisioned modern systems that would otherwise be economically infeasible. As such, much research has been focused on achieving efftcient ECC in the academia and industry: The most 2 5 common approach to achieving efficient ECC is briefly described below.

To perform public-key cryptography, ECC methods take advantage of specific features of mathematical "groups" called "elliptic curves." An elliptic curve is related to and "constructed over" a mathematical "field." Any finite field can be chosen to construct an elliptic curve, but the exact choice of the field significantly affects the properties of the elliptic curve and the efficiency of computer implementations that represent the "operations" defined within that elliptic curve.
One of the most computationally intense operations used in all ECC
implementations is known as "elliptic curve point multiplication." Point multiplication requires the computation of eP, where P
is a "point" in the elliptic curve and a is a positive integer. This operation is central to many elliptic curve cryptography functions, including encryption, decryption, random number 1 o generation, key-exchange, digital signing, and signature verification.
Over the last decade, a debate has been carried on in the cryptography community over which categories of fields provide the best choices for use with ECC. Two broad categories of fields, called GF(p) and GF(2"') have been chosen by the Institute of Electrical and Electronics Engineers (IEEE) as international standards for Elliptic Curve Cryptography.
While most academic and commercial research today is concentrated on implementing ECC
over either GF(p) or GF(2"'), the exact advantages or disadvantages of each choice with respect to cryptography is not clearly understood at this point. Furthermore, both GF(p) and GF(2x) encompass countless particular individual member fields within them. Each individual member field has its own properties that affect the computational characteristics of an ECC
implementation. Furthermore, 2 o given a particular individual member field within GF(p) or GF(2''), numerous elliptic "curves" can be constructed over such field. The choice of the curve, too, affects the computational characteristics of the resulting ECC implementation.
Prior attempts for creating effcient ECC implementations have usually been based on finding either specific individual member fields in GF(2''') or GF(p) or specific curves defined over 2 5 such individual member fields which possess "special" mathematical or computational properties.

These special properties would then be exploited to optimize ECC computations.
This approach does not attempt to achieve efficient ECC across all mathematical fields.
Rather, it concentrates on carefully choosing a particular field so that a specific mathematical or computational technique can be deployed to achieve efficient ECC computations.
An example of this is the proposal by Agnew, et al to utilize a method called "Normal Basis" to achieve fast ECC in particular fields in GF(2k). While, most academic and industry research has focused on using an alternate method known as "Polynomial Basis"
for fields in GF(2"'), the use of Normal Basis in six particular fields within GF(2"') has allowed commercialization of a particular implementation of ECC. One disadvantage of this approach is 1 o that key lengths are limited to the six values allowed by those particular fields.
MATHEMATICAL BACKGROUND OF THE INVENTION
This Section presents a list of some of the mathematical terms that are used in this document. Some key concepts that can be useful in following the methodology of the invention are also briefly described in this Section. The descriptions in this Section are not meant to be mathematically precise or rigorous.
Sets A "set" is any collection of objects, including mathematical and physical objects. Often, a 2 o set is represented in print by enclosing a comma-separated list of the objects that make up the set within the curly brackets, "{" and "}". For example, let F represent the set of all non-negative integers smaller than 7. That set can be written as F= {0, I, 2, 3, 4, 5, 6}.
An object that belongs to a set is a "member" or "element" of the set. In another example, F denotes the set of all polynomials of order 4, and p(x) represents the specific polynomial x' + xa -x + l . Since p(x) is a 2 5 polynomial of order 4, then plr~ is an element of F'. In mathematical shorthand, p(x) E F', where the symbol "E" is commonly read as "belongs to" or "is a member of." A
particular set S is a "subset" of another set F if every element of the set S is also an element of the set F. This is denoted by the shorthand notation S c F. For instance { 5, 1, 3 } c {0, 1, 2, 3, 4, 5, 6}. The "c"
symbol is read as "is a subset of." Every set is a subset of itself Given any set S, then ,S c S.
Mappings A "mapping" is a relationship that associates each member of a set with a particular member of another set. For instance, T can be defined as the relationship that "maps" each member of the set of all human beings to the integer that represents that person's age. If Tom is 1o 32 years old, then T( Tom ) = 32 is written to denote the relationship that T' establishes between the integer 32 and the human being Tom. 32 is said to be the "image" of Tom "under" the mapping T.
In another example, let p be a prime number, » denote any non-negative integer, and r denote the integer remainder which results when n is divided by p. A
mathematical shorthand for this is r = n mod p. For instance, if p = 7 and n = I5, then r = 15 mod 7 = l, which is the remainder of 15 divided by 7, since I S = 2 ~ 7 - 1. A mapping T may be constructed between the set of all non-negative integers N= {0, 1, 2, 3, ... } and the set R = {0, 1, 2, 3, 4, 5, 6, 7, 8} in the following manner: given that p = 7 and given any non-negative integer n E
N, let T(n) = r = n mod p. Thus, T(37) = r = 37 mod 7 = 2. Note that regardless of what value n takes, T(n) is an 2 0 integer less than 7. In other words, given any n E N, then T(n) E R. By convention, T is said to map the set N "into" the set R. This is denoted in shorthand as T.' N -~~ R, which is read, "T is a mapping from the set N into the set R." N is referred to as the "domain" of the mapping T, while R is said to be the "range" of the mapping T'.
The "image" of the set N under the mapping T is the unique subset of R where every element i s an image of at least one element of N. In other words, if F
denotes the image of N
under 'f, then, given any element y E F, there exists at least one element x E
N, such that T(x) _ y. Since the remainder of the division of any positive integer by 7 is one of the numbers from 0 to 6, the image of N under T in the above example is the set F = { 0, l, 2, 3, 4, 5, 6 } . Since F c R
(recall that R = {0, 1, 2, 3, 4, 5, 6, 7, 8 } ), and no element of N is mapped to any element of R
outside of F, then T is also a mapping from N into F. In other words, T.' N -~
F. Since every member of F is an image of some element of N under T, then T is said to map N
"onto" F.
Sometimes, the word "transformation" is used to refer to a mapping.
Set Operations An "ordered pair" is a mathematical notion that references pairs of objects under circumstances where one needs to keep track of which abject is the "first"
element of the pair and which object is the "second" element of the pair. For instance, the set of all pairs of husbands and wives is a set of ordered pairs, whose members can be represented by the notation (x, y), where x is an element of the set of all husbands, and y is an element of the set of all wives. Let X and Y be any arbitrary sets. The "cross product" of X and Y is the set of all ordered pairs whose first elements come from X and whose second elements come from Y. In mathematical parlance, the cross product of X and Y is written as X x Y and is defined by the set of all ordered pairs (x, y), where X E X, and y E Y. As an example, let X = { 0,1 } and Y = { 0,1,2 }, then X x Y = { (0, 0), (0, 1), {0, 2), (1, 0), (l, 1), {1, 2)}
Given any set S, then a mapping from S x S into S can be referred to as a "binary set operation" defined within S (the word binary underscores the fact that each element of the domain ofthe mapping is an ordered pair.) For instance, let F= {0, 1, 2, 3, 4, 5, 6}. Next, construct a mapping T.~ F x I ' -~ F as follows: given any ordered pair (x, y) E F x F, where x E F' and y E f', let the image of (x, y) under T be the integer that is the result of calculating the expression (x + y) mod 7. In other words, let T( (x, y) ) _ (x + y) mod 7. It is relatively straightforward to verify that the range of T is in fact the set F. For example, T( (4, 6) ) _ (4 +
b) mod 7 = 10 mod 7 = 3. Regardless of the value of x + y, the integer which is the result of the expression (x + y) mod 7 is the remainder of a division by 7 and therefore an integer between 0 and 6, and a member of F. Hence, T is a binary set operation defined within F.
For the sake of convenience, when working with a given binary operation T, the construct T((x, y)) is often written as x ~ y. The symbol "~" is called the "binary operator" and is used to represent the binary operation T. For instance, given the above definition for T, instead of writing T((4, 6)) = 3, one writes 4 ~ 6 = (4 T 6) mod 7 = 3. Other symbols may also be used as binary operator symbols. Two other commonly used such symbols are + and ~. The two members of the set S that make up the ordered pair that a binary operation maps into another member of the set S
are the "operands" in the operation, which, in turn, is said to "operate on"
the operands. For example, in the equation, 4 ~ 6 = 3, the operands are 4 and 6.
Groups A "group" is a set G together with a binary operation "~" defined within the set G such that the following three conditions are satisfied:
(i) Given x, y, z E G, then x ~ (y ~ z) = (x ~ y) ~ z. This is known as the associative 2 o property of the group.
(ii) There exists a unique element I E G, such that x ~ I = I ~ x = x, for all x E G. The element I is referred to as the "identity" element in G.
(iii) Given any x E G, there exists an element x"' E Ci, such that x ~ X ' = L
The element X ~ is referred to as the "inverse' of r under the ~ operation.

The ~ operation is referred to as the "group operation." It is the existence of the group operation defined within the set G that allows G to be a group. In fact, G is said to be group under the operation. An "Abelian" group is a group G such that given any x, y E G, then x ~ y = y ~ x.
As an example of an Abelian group, consider the set F= { 1, 2, 3, 4, 5, 6}
together with the operation ~ given by or defined as x ~ y = (x ~ y) mod 7 for all elements x, y E F (the second "~"
represents the common operation of integer multiplication.) It is known that F
is a group under this "multiplication operation." To demonstrate this, Table I, which contains the values of x ~y =
(x ~ y) mod 7 for all possible combinations of elements x, y E F, is constructed below. To look up the vaiue of x ~ y using the table, locate the cell that is at the intersection of the row whose label is 1 o the value of x with the column whose label is the value of y.
Table 2. The Multiplication Operation in F = (l, 2, 3, 4, S, 6J
Given by x ~ y = (x ~ y) mod 7 4 4 1 5 2 b 3 6 6 5 4 3 2 l As an example, note that if x = 5 and y = 6, the table gives x ~ y = 2. To verify the accuracy of this, note that x ~ y =S ~ 6 = (S ~ 6) mod 7 = 30 mod 7 = 2.
Given the above definitions for ~ and F, the task of verifying that F is a group is tantamount to verifying that conditions (i), (ii), and (iii) above are satisfied:
(i) Condition (i) provides that x ~ (y ~ z) _ (x ~ y) ~ z. Using x=3, y=5 and z=2, consider that 3~(5~2)-3~((5~2)mod7) ~3~(lOmod7)=3~3=(3~3) 2 o mod 7 9 mnd 7 = 2: and that t3 ~ ~) ~ ? -- ~~3 ~ ~) mod 7) ~ 2 = (l.i mod 7) ~ 2 1 . 2 = (l . 2) mod 7 -- 2 mod 7 - 2. Therefore, (3 . 3) . 2 = 3 . (5 . 2).
(ii) Table 1 demonstrates that the identity element of F under the group operation . is 1. For, as the table shows, x . ! = I . x = I for all x E F.
(iii) Using Table 1, the following values for the inverse, x ', of each element x of F
{where x . x l = 1) can be derived: I-' = I, 2-' = ~t, 3-' = 5, 4-' = 3, S-' _ ~ 3, and 6-'=1.
(iv) Examining Table 1 also establishes that for all x, y E F, x . y = y . x.
Hence, F is an Abelian group under the multiplication operation.
Sometimes, the symbol + is used to denote the group operation in F. In such cases, the inverse of any element x E F under + is denoted by -x rather than x~'. As another example of an Abelian group, consider the set F= {0, 1, 2, 3, 4, 5, 6} together with the operation + given by or defined as x -~ y = (x + y) mod 7 for all elements x, y E F (the second "+"
represents the common operation of integer addition.) It is known that F is a group under this "addition operation." To demonstrate this, Table 2, which contains the values of x + y = (x + y) mod 7 for all possible combinations of elements x, y E F, is constructed below.
Table 2. The Addition Operation in F = (0, 1, 2, 3, 4, S, b~
Given by x + y = (x + y) mod 7 0 l 2 3 4 S 6 As an example, note that if x = .i and y = 6, the table gives x + y = ~. To verify the 2 0 accuracy of this, note that x - y .5 - < (.S - GI mvd ? I I mcx! 7 ~ -1.

Given the above definitions for + and F, the task of verifying that F is a group is tantamount to verifying that conditions (i), (ii), and (iii) above are satisfied.
(i) As an example of condition (i) holding, consider that (3 + 5) + 2 = ((3 T
5) mod 7) +2=(Smod7)+2=1 +2=(I +2)mod7=3mod7=3; andthat3+(S+2) =3+((S+2)mod7)=3+(7mod7)=3+0=(3+D)mod7=3mod7=3.
Therefore, (3 + 5) + 2 = 3 + (5 + 2).
(ii) Table 2 demonstrates that the identity element of F under the group operation + is 0. For, as the table shows, x + 0 = 0 + x = 0 for all x E F.
(iii) Using Table 2, the following values for the inverse, -x, of each element x of F
(where x ~ (-x) = 0) can be derived: -0 = D, -I = 6, -2 = 5, -3 = 4, -~ = 3, -5 =
2, and -6 = !.
(iv) Examining Table 2 also establishes that for all x, y E F, x + y = y + x.
Hence, F is an Abelian group under the addition operation.
Feelds A "field" is a set F together with two binary set operations + and ~ defined within F such that the following conditions are met:
(i) F is an Abelian group under the + operation. The + operation is referred to as the "addition operation" of the field. The identity element of the field under the 2 o addition operation is denoted as 0. Given any element x E F, the inverse of x under the addition operation of the field is denoted by -x, which is referred to as the "additive inverse" of x.
{ii) If 0 were to be removed from the set F, the resulting set would be an Abelian group under the ~ operation. The ~ operation is referred to as the "multiplication 1o operation" of the field. The identity element of the field under the multiplication operation is denoted as l, which is an element of F distinct from 0. Given any element x E F, the inverse of x under the multiplication operation of the field is denoted by x ', which is referred to as the "multiplicative inverse" of x.
(iii) Given any x E F, then x ~ 0 = 0 ~ x = 0.
(iv) Given any x, y, z E F, then x ~ (y + z) _ (x ~ y) + (x ~ z). This is known as the "distributive property" of the field.
An example of a field is the set F= {0, 1, 2, 3, 4, 5, 6} together with the +
operation defined as x + y = (x + y) mod 7 and the ~ operation defined as x ~ y = (x ~
y) mod 7 for all x, y E
F. It is known that F forms a field under these addition and multiplication operations. To demonstrate this fact, it is necessary to show that the four conditions described above are satisfied. Conditions (i) and (ii) where shown to be satisfied in the previous Section. Condition {iii) is evident from the Table 3, below.
Tabte 3. The Multiplication Operation in F = ~0, 1, 2, 3, 4, S, 6f As an example of condition (iv) holding, we will show that 3 ~ (5 + 6) _ (3 ~
5) + (3 ~ 6).
Indeed,3~(S+6)=(3~((5~6)mod7))mod7=(3~(Ilmod7))mod7=(3~4)mod7=12 mod7=S,while,(3~5)+(3~6)=(((3~5)mod7)-((3~6)mod7))mod7=((ISmod7)-(l8mod7))mod7=(I +~)mod7=Smod7---S, too.
2 0 A field F is a "finite field" if it has a finite number of elements. The field F' above is a specific- example of a family of ftnite fields known as GF(p), where p is any prime number. Given a particular prime number p, GF(p) is defined as the set (0, 1, ..., p-l~ of non-negative integers less than p, together with the addition operation + given by integer addition mod p, and the multiplication operation ~ given by integer multiplication mod p. The field F
used in the above example is the field GF(7).
Field Arithmetic The mathematical concept of fields is an abstraction of the familiar "rational" number system. The nationals are the set of all integers together with all numbers that can be represented 1 o as a fraction whose nominator and denominator are both non-zero integers.
The set of all rational numbers can in fact be shown to be a field under the common operations of addition and multiplication of fractions. As such, common mathematical techniques of arithmetic have also been carried over to the more abstract domain of fields. Given a particular field F, mathematical field theory allows the writing and evaluation of "valid" arithmetic expressions and equations whose constants and variables "come from the field, " i. e. are members of F.
For instance, consider the equation y = (2 ~ x) + 1. The set of all ordered pairs (x, y) of rational numbers that satisfy this equation includes such elements as (0, I), (2, S), (4, 9), and (3.45, 7:9). However, since the constants in this equation, 2 and 1, are also members of the field GF(7), the "expression" (2 ~ x) + 1 is a valid expression in GF(7), meaning that as long as the 2 0 value that is substituted for x in the expression is a member of GF(7), it is guaranteed that the expression will "evaluate" to a valid member of GF(7). As such, the equation itself is a valid equation in GF(7), too. In fact, the set of all "solutions" to this equation, i.e. the set of all ordered pairs that satisfy the equation in GF(7), is equal to ((0, I), (1, 3), (2, 5), (3, 0), (:l, 2), (~, a), (6, f)).

To facilitate working with more complicated expressions, a few mathematical shorthands are utilized in field arithmetic. Given any field F, any element x E F, and any positive integer k, the expression x"' represents that unique element of F which results when x is multiplied by itself k times using the multiplication operation in F. In other words xk = x ~ x ~ ...
~ x, where there are k-l many ~ operators in the expression. By convention, x° is defined to be equal to I .
Given any integer k and any element x in F, the expression kx represents that unique element of F which results when x is added to itself k many times using the addition operation in F. In other words, kx = x + x + ... + x, where there are k-I many + operators in the expression.
Given c a constant in F and x a variable defined over F, the expression c ~ x is commonly 1 o written as cx. Furthermore, given x and y, any two elements of F, the expression x -~ (-y) is commonly written as x -y.
Given a field F and any element x in F, the task of computing x's additive inverse, -x, or x's multiplicative inverse, x ~, may be computationally intense. It is possible to view the task of computing the inverse of x as a set operation. A "unary set operation" T
defined within a set S is a mapping from S onto S. The word unary underscores the fact that unlike binary set operations, the domain of T is made up of single, individual members of S. Given any element x of S, let T
map x to x ~ . In other words, let T(x) = X ' . Then T is a unary set operation.
Given a particular field F and an integer k, a polynomial p(x) of order k defined over F is an expression of the formp(x) = a,~a~' + ak ,xk j + ..~ ~ a,x + ao. In this definition, x is a variable in 2 0 F, meaning that before the expression is evaluated, some particular element of F must be substituted for x in the expression. The particular member of F which is substituted for x is the value that x is "bound" to. The a;'s (0 Si Sk) are known as the "polynomial coefficients" of p(x) and are constants in F, meaning that they are chosen before a value for x is selected, and that regardless of the value that r takes on. the values of the polynomial coefFcients remain the same.

WO 99/30458 PCTIUS98/25$24 When F = GF(2), the set of alI polynomials of degree k defined over GF(2) is referred to as GF(2''). It is known that given any k greater than l, specific addition and multiplication operations can be defined within GF(2k) in such a way so that GF(2k) forms a field under such operations. The set GF(2'Y) is the set of all polynomials of order k whose polynomial coefficients are either 0 or 1. For instance, p(x) = xs + x-' + 1 is a member of GF(2S) whose polynomial coefficients are given by as = 1, a4 = 0, a3 = D, a2 = l, a, = D, and ao = 1.
Optimizing Field Arithmetic Calculations In addition to the fields of information security and cryptography, there are numerous other problems in business and science, which are either based on or utilize the mathematics of finite fields. Computer applications dealing with such problems often need to carry out calculations involving finite field arithmetic. This often takes the form of evaluating a mathematical expression f involving a finite number of constants, variables, coefficients and operations defined within a finite field F. Note that variables and constants must be members of the field F, but coefficients may take any integer value. Coefficients, such as the 5 in the expression x - 5 y, are not elements of the field F, and merely represent a shorthand notation for repeated addition, in this case 5 y = 2 y + 2 y + y, where 2 y = y -~- y.
Since computational efficiency is of concern, we will assume that if the same quantity occurs in more than one part of an expression, such as (x1-x,) -j does above, each such quantity is only computed once. Also, 2 o without loss of generality, the expression f can and will be assumed to be in fully reduced form, in which all calculations in the expression that involve only constants have already been performed, and the resulting constants substituted into the expression.
As an example of such an expression, let F E GF(p), let x, , x2 , y, , y~ be variables defined in F, let a be a constant that is some element from F, and define, f=((Ya-Yr) ~(xa-xr) ') ~((Ya-a) ~(xa-xr) '~-xr-~xa Since the only variables and constants in the expression f are x, , xa, y, , ya and a, the expression f involves a finite number of field elements. Furthermore, the expression f involves four unary additive inversion operations to calculate x, , xa, y~ , and -a, a single unary multipiicative inversion operation to calculate (xa -x,) -', three binary multiplication operations, three binary addition operations to calculate 5 xa, four binary addition operations to calculate the expressions in parentheses, and two binary addition operations to calculate (...) - x, - 5 xa . Hence, the expression f involves a finite number of field operations, too. Consequently, when the expression f is evaluated, that is, when the calculations specified in the expression f are carried out, the result of the calculation is going to be a single element in the field F.
Any given expression f defined within a finite field F is usually composed of "subexpressions." Any part of the expression f which by itself is a valid expression in F is a subexpression of f. For instance, the expression s = (xa - x,) -' is a valid expression in F, if both xa and x, are members of F. Therefore s = (xa - x,) -' is a subexpression of the expression f = ( (yz -yl) ~ (xa - x,) -' ) ~ ( (ya - yr) ~ (xa - x~) -' ) - x, - xa. Some of the other subexpressions of f are s =
x, , s = -y,, and s = (ya -y,) ~ (xa -x,) -'. Note, however, that and s = xa -x,) -' ) -x, is not a subexpression of f because s is not a valid expression in F. Every expression f is a subexpression of itself.
Given an expression f defined within a finite field F, the task of evaluating the expression f 2 0 can be computationally intense. Techniques that allow eff=icient calculation of such expressions in computer software and/or hardware may have significant business and scientific value. Given the exact nature of the applications such calculations occur in, different criteria may be used to determine what exactly constitutes an "efficient" calculation. In certain applications, it may be desirable to optimize calculations so that higher computation speeds are achieved. In other applications, it may be important to optimize for minimal use of silicon area in hardware implementations. Still other applications may benefit from optimization that allow parallel computation of the calculations. In particular, the inversion operation, which in the fields GF(p) and GF(2k) uses the Fermat method, is computationally very intensive. To avoid this, methods of formulating problems in "projective coordinates" have been developed, by Menezes and others, which allow calculations to be reformulated in a manner that removes the need to perform any inversion operations, usually at the expense of increasing the number of other operations.
The Montgomery Algorithm In 1985, P. L. Montgomery published an algorithm which can be used to optimize the task of computing an expression of the form f = a ~ b ~ r -~, where a, b, and r are elements of a field F
E GF(p) and ~ is the multiplication operation in F. Since 1985, some work in industry and academia has been focused on extending the use of the Montgomery algorithm to expressions of a more general form than f = a ~ b ~ r-'. To facilitate discussion of such efforts, this patent defines the term "Montgomery Canonical Form." Given a particular element r of a field F, an expression f in F is recursively defined to be in the Montgomery Canonical Form with respect to r as such, (i) An expression f is in the Montgomery Canonical Form with respect to r, if it does not contain any field multiplication operations and also does not contain r. That is, if no subexpression s exists of the form s = s, ~ s?, where s~ and s2 are subexpressions of f. For 2 o example, the expression f = (xr - x, - a) and the expression f = x~ are both in the Montgomery Canonical Form with respect to r.
(ii) An expression f is in the Montgomery Canonical Form with respect to r, if it can be written in the form of f -. f, ~ f~ ~ r -', where f, and fi are both subexpressions of f which are themselves in the Montgomery Canonical Form with respect to r. Note that to determine whether or not an expression is in Montgomery Canonical Form with respect to r, the expression is to be considered in isolation. For example, the expression f = (x, +
x, + x,) - x, - r ' is in the Montgomery Canonical Form with respect to r.
However, f = x, (x2 ~ x2 ) - r j is not in the Montgomery Canonical Form with respect to r, since although (xz - x2 ) - r ~ is in the Montgomery Canonical Form with respect to r, the single factor of r ~ cannot simultaneously be considered to be part of the subexpression (x2 ~
x1 ) - r l and also of the whole expression, so (x1 - x1 ) is not in the Montgomery Canonical Form with respect to r.
(iii) An expression f is in the Montgomery Canonical Form with respect to r, if it can be 1 o written in the form of f = (s) -~ ~ r ' where s is a subexpression of f which is itself in the Montgomery Canonical Form with respect to r. For example, the expression f =
(x~ -x,) -~ - rz is in the Montgomery Canonical Form with respect to r. And finally, (iv) The expression f is in the Montgomery Canonical Form with respect to r, if whenever there exists a subexpression s off which can be written as s = s, - s2, where s, and sz are subexpressions of f which are both in the Montgomery Canonical Form with respect to r, then there exists a unique subexpression s3 of f such that s3 = s, ~ s2 - r -l. For example, the expression f (((xr-x~+x,)-x, ~rl +a)-z-r') ~(((xr ~'x~+xr)~x~-r'+a) ~Z-r~) ~r~-xr-xr is in the Montgomery Canonical Form with respect to r.
2 o Given a field F E GF(p) and an element r E F, the Montgomery algorithm can be applied effectively to optimize computation of any expression f in F which is in the Montgomery Canonical Form with respect to r- Given an arbitrary expression f, then, there may be efficiencies gained by "transforming" the expression f into some other expression('(read as "f prime") which is in Montgomery Canonical Form. During the past decade.and a half, an innumerable number of WU 99130458 PCT/US9$125824 expressions involving a finite number of operations within finite fields in GF(p) have been encountered within the confines of specific applications in business and academia. In some instances, researchers and engineers have transformed certain such expressions into other expressions which are in the Montgomery Canonical Form, and which are therefore faster to compute. Until the present invention, however, no general method for transforming any arbitrary expression involving a finite number of field operations in GF(p) into an expression that is in Montgomery Canonical Form with respect to some r in GF(p) has been known.
A particular expression that is commonly encountered in business and academic applications involving fields in GF(p) is one of the form f = x'~, where k is some positive integer and x is an element in F E GF(p). Calculating f = xk is known as the exponentiation of x. It is well known that a particular "substitution technique" described in the next section in this document can be applied to the expression f = ~ to transform it into another expression, f ; which is in Montgomery Canonical Form with respect to some particular element r in F. The Montgomery algorithm is commonly applied to the resulting expression f'to provide an efficient method for exponentiation of x.
Although the Montgomery algorithm has been used for over a decade for fast exponentiation in GF(p), no method for extending its speed improvements to general finite field calculations has been available until the present invention.
In 1998, C. K. Koc and T. Acar published an algorithm which can be used to optimize the 2 o task of computing an expression of the form, f = a ~ b ~ r -1, where a, b, and r are elements of a field F E GF(2"') and ~ is the multiplication operation in F. This algorithm is referred to as the Montgomery Algorithm in GF(2"'). The Montgomery Algorithm in GF(2k) has been applied in the past to speed up exponentiation in GF(2"') in a manner analogous to the method used for speeding up exponentiation in GF~pJ. Until the present invention, however, no method for extending the WO 99/30458 PG"f/US98I25824 speed improvements of this algorithm to general finite field calculations has been available.
Substitution Technique This section describes a particular substitution technique that is often used to manipulate expressions involving elements and operations defined within a field F. The technique involves replacing all instances of a specific pattern of operations and/or operands in f with another specific pattern. As an example, let x and y represent any member of F and let a, b, c, and r be specific elements in F. Then, if all occurrences of the pattern x ~ y in f = (a ~ b) +
(c ~ b) are replaced by the pattern x ~y ~ r, the resulting expression f'is given by f' = (a ~ b ~ r) -~- (c ~ b ~ r). To facilitate discussion of the technique, let s be an expression that represents the pattern that is to be replaced. The expression s is called the "source" expression. Let t be an expression that represents the pattern that s is replaced with. The expression t is called the "target"
expression. The rest of this section describes how the current substitution technique is applied to three simple types of source expressions.
Case 1 The source expression s involves no operators In this case, the source expression s is given by s -= x, where x stands for any single variable within the expression f The substitution technique simply replaces all occurrences of the variable represented by the source expression s by the pattern given by the target expression t.
Case 2 The source expression involves a sin lg e~ canary operator In this case, the source expression is given either by s = -x or s = x ~, where x stands for any subexpression of the expression f Here, the substitution technique calls for constructing the set S of all subexpressions of f that "match" the source expression s. In other words, the set ,S is given by the set of all subexpressions s of the expression f which are of the form s = --x or s = x~', where x is itself a subexpression of f. Note that given any two subexpressions of f in the set S, one may be a subexpression of the other. The substitution technique works by replacing each member of the set S by the corresponding pattern given by the target expression t, except that before the substitution technique is applied to any member s of the set S, it is first applied to any other members of S that s is a subexpression of.
Case 3 The source expression involves a sin le binary operator In this case, the source expression is given either by s = x + y or s = x ~ y, where x and y 1 o stand for any subexpressions of the expression f. Here, the substitution technique calls for constructing the set S of all subexpressions of f that "match" the source expression s. In other words, the set S is given by the set of all subexpressions s of the expression f which are of the form s = x ~ y or s = x ~ y, where x and y are themselves subexpressions of f.
Note that given any two subexpressions of f in the set S, one may be a subexpression of the other.
The substitution technique works by replacing each member of the set S by the corresponding pattern given by the target expression t, except that before the substitution technique is applied to any member s of the set S, it is first applied to any other members of S that s is a subexpression of.
A substitution technique similar to this has been used in business and industry in the past in 2 o a two-step process to transform instances of simple expressions, of the form f = ~' , into another expression f'which is in Montgomery Canonical Form. To illustrate an example, this will be demonstrated for the case when k = 9, which means that the expression f is given by f = x' = x ~ x ~x ~x = ((x-x) ~x) ~x.
(i) Let the source expression s be given by s x ~ y. Let the target expression t be given by t x ~ y ~ r ', where r is a constant in the field F. Applying the substitution technique to the expression f _ ((x - x) - x ) ~ x yields the expression f ' _ ((x ~ x - r ') ~
x - r ') - x ~ r ' Note that the expression f' is in the Montgomery Canonical Form, since every subexpression of f' enclosed in parenthesis is in the Montgomery Canonical Form with respect to r. Because of this, the following step can allow the Montgomery algorithm to be applied to efficiently calculate f'.
(ii) Let the source expression s be given by s = x, where x stands for a variable or constant in f Let the target expression t be given by t = x ~ r. Applying the substitution technique to replace every occurrence of x with x ~ r in the expression f, _ ((x - x - r~') - x - r ') - x - r ' 1 o yields the expression f' _ (((x - r) . (x . r) - r ') ~ (x - r) - r ') -(x - r) ~ r '. .
This substitution technique allows efficient computation of f = ~, because it can be shown that the expression f is equivalent to f = f' ~ r '. To see this in the case k =
:l, note that f' _ (((x ' r) - (x ~ r) ~ r j) ~ (x - r) ' r l) ~ (x ~ r) - r ' =((x.r-x.r-r,),x,r,rr).x. r,r~
=((r-x-x-r-r') ~x~r.r')-x- r-r' =((r-x-x~l)-x~I)~x- I=((r~x-x)~x)-x =r-(((x-x)-x)-x)=r-x' Therefore, f' - r ' = r ~ x' ~ r ' = x4 - r - r ' = x' ~ 1 = x' = f Since f' is in the Montgomery Canonical Form with respect to r, it is in general more efficient to compute f' - r ', which itself is in the Montgomery Canonical Forrn, than it is to compute f directly.
Elliptic Curve Groups An elliptic curve, G, is a mathematical group that is constructed over a specific field F, according to a specific set of rules that depend on the exact nature of F. In general, G is a subset of Iv x I-~, and the ~ operation in ( is defined in terms of the field operations ~ and ~ on the elements of F that constitute the ordered-pair elements of G. The two most commonly studied classes of elliptic curves are those constructed over fields belonging to GF(p) or GF(2"').
Elliptic Curves over GF(p) An elliptic curie over GF(p) is defined by selected parameters a and b (both members of GF(p)) as the set of the all ordered pairs (x, y) that are solutions to the equationy2 = x3 + ax + b, where x, y are members of GF(p) together with an extra point O, usually named as the point at infinity. It is assumed that p is a prime number greater than 3 and a, b in GF(p) are selected such that 4a' - 27b2 .~ 0 in GF(p). It has been well established that paints on the elliptic curve and O
form an Abelian group with respect to the following point addition rules:
Equations A
1. O+O=O
2. (x. Y) + O = (x, Y) 3. (x, y) - (x, y) -= O
4. Addition of two distinct points: (x,,y,) - (xa,y~J = (x3,y~
L=(Y?-YI) ~(x~-x~) ' x3=(L.L) _xi_x2 y3 ° L . (xr _ x.3) -Yr S. Doubling of a point: (x,.,y,) + (x,,y,) _ (x3,y~
L=(3x~~x~+a) ~(2yl)'~
x3=(L~L)-(2xl) y3=L~(x,-x~)-yr where the operations - , , ~ , and inverse (-') are performed in the field GF(p). The above rules define the method by which two points on the elliptic curve are "added"
to bet a third point.

These equations will be referred to in the future as Equation A.
Example The elliptic curve equation y' = xj + x = ! over the field GF(23) will be illustrated. It turns out there are 28 points on the curve including the special point D.
These points are Point O
(0, l) and (0, 22) (l, 7) and (l, l6) (3, I0) and (3, l3) (4, D) (5, 4) and (5,19) (6, 4) and (6, l9) (7,1l) and (7,12) (9, 7) and (9,16) (11,3) and (11,20) (12, 4) and (12, l9) (13, 7) and (13, l6) (! 7, 3) and (17, 20) (18, 3) and (18, 20) 2 0 (19, 5) and (l9, l8) For example, (l, 7) is on the elliptic curve because it satisfies the equation y1 = x' + x + !

in the field GF(23) (that is, modulo 23) because 72 = Ij + 1 + ! mod 23; 49 = 3 mod 23; and 3 =

3 mod 23.
The point addition of (3,10) and ~9, 7) is computed using arithmetic modulo 23, or the field arithmetic of (~l~'(23):

L - (7_I p) . (9_3)-' - ( 3) . 6-' - ( _3) . ~ - _l2 = l l x3=(ll ~ll)-3-9=121-12=l09=l7 y3=(11 ~(3-17))-IO=-164=20 Therefore, the addition of (3,10) and (9, 7) equals (17,20). This example illustrates that the addition of two points on the curve using the above rules gives a third point on the curve.
Etliptic Curves over GF(2'h) A non-supersingular elliptic curve over the field GF(2k) is defined by the parameters a and b in GF(2"'), with b $ 0, as the set of solutions (x, y) to the equation y2 +
xy = x3 + axz + b together with the extra point O. This set of points form a group with respect to the addition rules:
Equations B
1. O-~-O=O
2. (x. Y) + O = (x. Y) 3. (x, Y) + (x, x+Y) = O
~I. Addition of two distinct points: (x,,y,) - (xay~ _ (xj,y~
(Y~ - Y~ ~ (x~ v x~m x3=(L~L)=Ltx,+x~~-a ya=(L~(x,+x~)+x3+y 5. Doubling of a point: (x,,y~) + (x,,y,) _ (x3,y.~
xs = x~ ~ xr + b ~ (xr-') ~ (xl-') y _ _x +(x +y .x_,),x3+x3 Point Multiplication An elliptic curve cryptographic operation, whether it is an encryption, a decryption, a signature, or a key-pass operation, always involves the computation of eP
given a and P, where P
is a point on the curve and a is a positive integer. The reverse of this operation, i.e., the computation of a given P and eP is known to be very di~cult. This is called the elliptic curve discrete logarithm problem, for which no efficient algorithm is currently known.
Since the addition operation in the elliptic curve group, G, is defined using a series of field operations from the underlying field, F, given two points P and Q in G, computation of P + Q or P + P requires computation of a series of operations in the ,field. In particular, if F E GF(2~'), the equations 4 above show that computation of P ~ Q requires one field inversion, three field multiplications, and nine field additions. On the other hand, the computation of P + P requires one field inversion, three field multiplications and five field additions, as demonstrated by equations 5.
If a is about 500 bits in length, the number of elliptic curve operations (additions and doublings) necessary to calculate eP can be shown to be about ?50. Each elliptic curve operation involves several (about 15-20) finite field operations. If the value of k (from F E GF(2~')) is also high {> 100), these computations consume a significant amount of time, particularly in software.
Therefore, fast hardware and software implementations of elliptic curve point multiplications are highly desirable in cryptography.
The following example in GF(23) illustrates various approaches that can be taken towards optimizing the calculation of eP. Let a = l8 and P = (3,10). Then eP =
18(3,10) can be calculated 2 0 by successively adding (3,10) to itself 18 times using group addition as defined in equation A: P
+ P + ... - P ( 18 copies of P), which requires 17 elliptic curve point addition operations.
However, there are faster algorithms known as "exponentiation methods," one example of which is a "binary method," shown below, which allows 18P to be computed as Step 1: IP) ~ (P) - 2P

Step 2: (2P) + (2P) _ ~P
Step 3: (4P) + (dP) = 8P
Step 4: (8P) + (8P) _ !6P
Step S: (16P) + (2P) =18P
Thus, only 5 point additions, or group operations, are utilized. The partial results as well as the final results are points on the curve as illustrated below:
Step 1: P + P = 2P : (3, l0) + (3,10) _ (7,12) Step 2: 2P + 2P = 4P : (7,12) + (7,12) _ (! 7, 3) Step 3 : 4P + 4P = 8P : (17, 3) -~ (I 7, 3) _ (13,16) Step 4: 8P + 8P = 16P : (13,16) - (13,16)= (5,19) Step 5: 16P + 2P =!8P : (5,19) ~ (7,12) _ (6,19) Thus, 18(3,10) is (6,19). The elliptic curve discrete logarithm problem then becomes:
knowing (3,10) and (6,19) and that (6,19) is an integer multiple of (3, !O), what is this integer?
The integer used for this example is equal to 18.
Given the binary representation of a as ek_,ek_l...ele,eo, the computation of eP can be accomplished using the binary method or any other M-ary method. For example, in order to compute O ' eP, the binary method proceeds as follows:
Q O
for i = k - I downto 0 Q:=Q+Q
if e;=lthenQ:=O+P
return O.
Therefore, the computation of O is performed by a series of elliptic curve point doublings ~0 : O - ~ and point additions ~O : - O - P).

WO 99!30458 PCT/US98/25824 SUMMARY OF THE INVENTION
The present invention optimizes the calculation of Elliptic Curve Cryptography computations through a transformation method that permits the use of any elliptic curve defined over any field F in a secure and efficient manner. The invention includes a method and apparatus for producing an elliptic curve point multiplication product, Q = eP. The invention utilizes an arbitrary integer e, and a point P on an elliptic curve group G defined over a field F, where the group G is a subset of the field F crossed with the field F. The present invention constructs a set G', a mapping T from G into the set G ; a mapping T' from G'onto G, and an operation defined on G ; such that (a) given the point P, T''(T(P) ) = P, and (b) P-~P =
T-'(P'~ P j, where P' = T(P). An elliptic curve point multiplication product O is produced by transforming the point P to the point P' using the mapping T, performing the operation ~ on the point P' to determine the point O' = a P', and transforming the point Q' to the product O using the mapping T-'. The product Q is used in an elliptic curve cryptographic operation.
The present invention also includes a method for optimizing the calculation of cryptographic operations involving arbitrary expressions in finite field arithmetic through a transformation method that permits the use of any field F' in an efficient manner. The invention includes a method for transforming any arbitrary finite calculation in any finite field into a canonical form in which other previously known algorithms can be applied, thereby achieving 2 o increased calculation speed and efficiency. The present invention teaches a set of transformations of the cryptographic calculations that allows the use of other known techniques that have only been applicable to certain limited special cases prior to this invention.

WO 99/30458 PCT/US98n5824 DETAILED DESCRIPTION OF THE INVENTION
The present invention provides a method for optimizing ECC computations for any curve in any field through focusing on one of the most computationally intense operations used in all ECC implementations, known as "elliptic curve point multiplication." Point multiplication requires the computation of eP, where P is a point in the elliptic curve and a is a positive integer. This operation is central to many elliptic curve cryptography functions, including encryption, decryption, random number generation, key-exchange, digital signing, and signature verification.
The present invention achieves efficient ECC by providing a methodology for optimizing the t o implementation of the elliptic curve point multiplication operation. The present invention can be utilized to implement ECC over any curve in any field, including all individual member fields in GF(p) and GF(2"').
The present invention further provides a methodology for optimizing computation of calculations involving a finite number of arbitrary field operations within any finite field. These calculations play a key role in computer implementations of numerous systems, including elliptic curve cryptosystems.
The present invention provides a "transformation method" which can be used to enable optimized implementations of elliptic curve cryptographic systems in hardware and software.
The present invention, because it employs a reversible transformation applied to the 2 o elements of the elliptic group, does not in any way alter the fundamental security properties of the mathematical algorithm used to perform the elliptic curve cryptography. The security of the overall ECC algorithm is determined by the choice of elliptic curve equations, number representation, arithmetic algorithms and other implementation aspects. As long as these choices are made according to reliable standards, the security of the implementation is not affected by use 2 5 of the present invention.

The present invention can be used in any and all potential ECC applications, ranging from software for secure distribution of digital products such as movies and songs to hardware chips embedded in consumer electronic products such as cellular phones and smart cards. The cost-saving potential of the present invention can significantly enhance existing commercial applications and make previously infeasible business opportunities economically viable.
Section A
Given G cF xF, an elliptic curve defined over the field F, the present invention provides an improved method to optimize the computation of eP, where a is an integer and P is an element of G.
The present invention includes:
( 1 ) construction of a set G' and a method for representation of the members of G' in software and/or hardware;
(2) construction of and implementing an algorithm for a first mapping, T, from G into the set G' in software and/or hardware;
(3) construction of and implementing an algorithm for a second mapping, T'', which acts as the inverse of T, from G'onto G, in software and/or hardware; and (4) construction of and implementing an algorithm, in software andlor hardware, for a set operation ~ , defined in G'. For each invention, the following three conditions are satisfied:
2 0 (i) given any P a G, then T'~' ( T(P) ) = P;
(ii) given any two points P and S in G, then P + S = T'' (P' ~ S~, where P' =
T(P) and S' =- T(S); and (iii) G ; T; ~, and T~' and the corresponding algorithms are chosen such that given P,, P1, f',v E (~, where N is an integer, computation of T"'( T(P,) ~ 7(I'~ ~ ... ~
T(I',y~ is in general more optimized than computation of P, - P~ - ... - Pv.
In other words, the present invention computes Q = eP by first transforming the given point P to a transformed point Fusing the algorithm for the first mapping T, then calculating the multiple sum O' = eP'using a "transformed," more computationally optimized version of the elliptic curve addition operation ( ~ ) in the transformed domain, and finally transforming Q'back to Q using the algorithm for the second mapping, T-'. Note that satisfaction of the conditions (i) and (ii) above ensures that this method can be applied to any point P
belonging to G.
Under certain circumstances, when G ; T, T'', and ~ are chosen carefully, it is possible to optimize computation of the point multiplication operation. Depending on the number of point 1 o additions to be performed, the additional cost of transforming the elements of G may or may not outweigh the improvements due to more optimized calculations in the transformed domain G'.
Section B
The present invention further provides a particular method for construction of G ; T, and T'' that can be applied to any elliptic curve group G.
Since G is a subset of F x F, points in G can be written as ordered pairs (x, y), where x and y are elements of the field F. The present invention provides that a particular member r of F is first selected. The element r may be selected to be any member of the field F.
Let t be the mapping from G into F x F that maps any point P = (x, y) in G to some point P' = (x ; y~ in G'.
2 o The present invention provides that t(P) = t((x, yJ) _ (x ~ r, y ~ r) =
P'. Since x, y, and r are all members of F, so are x ~ r and y ~ r. The present invention provides that G'is the image of G
under t. In other words, G' is the set of all elements of F x F that have a point in G mapped to them by t. The present invention further provides that T is the transformation from G onto C~'such that given any point f' in (i, then 7(P) = t(P) = P'. While P' --= (x ; y j is necessarily a member F' x WO 99130458 PCTNS98125$24 h, it is not necessarily a point in the elliptic curve group, G. P'can be obtained by computing x' ----x ~randy'=y ~r.
Let Q'be any element of G'. Since G'c F xF, we can write O' _ (u ; v~, where wand v' are members of F. Since G'is the image of G under t, then there must exist a and v, two elements of F, such that (:~, v) E G and u' = a ~ r and v' = v . r. Since u, v, and r are all members of the field F, then a = u' ~ r ' and v = v' ~ r ~, where r ~ is the inverse of r under the multiplicative operation of F. Therefore, one can construct an inverse transformation T'': G' ~ G by letting T' map Q' _ (u ; v ~, any element of G ; to (u' ~ r ', v' ~ r ').
In formal terms, this more detailed embodiment of the present invention includes the steps of:
( 1 ) constructing G' as the subset of F x F which is the image of G under the mapping t: G
-~ F x F, where t is constructed by first selecting any element r of F, and then letting t( (x, y) ) _ (x ~ r, y ~ r), where ~ is the multiplicative operation in F;
(2) constructing the first mapping T.' G ~ G' by letting T(P) = t(P), where P
is any point in G; and (3) constructing the second mapping T'~: G' ~ G by letting T'' ( (u ; v~ ) _ (u' ~ r-', v' . r l), where (u ; v') is any element of G'.
Given the above choices for G ; T, and T'', it may be possible to optimize calculation of eP may through careful definition of a ~ operation in G'and careful selection of r. Certain values 2 0 of r, for instance, may provide faster software implementations, while others may enable more algorithmic parallelism.
Section C
Another detailed embodiment of the present invention applies the methods of Sections A

and B to the elliptic curves defined over the specific fields belonging to GF(p). In this embodiment, a new transformed operation ~ is constructed such that conditions (i), (ii), and (iii) in Section A are satisfied.
The present invention includes a method for optimizing calculations of eP when F is an individual member field of GF(p). In this embodiment, G is an elliptic curve group over F E
GF(p), and G ; T, T"' are constructed in accordance with the method of the invention described in Section B, above, through choosing an arbitrary element r of F. The present invention constructs a "transformed" operation ~ in G' as follows. Given any two elements of G ;
(x, ; y, ~ and (x1;
y? ~, then the present invention defines (x, ; y, ~ ~ (x2 ; y2 ~ to be given by (x3 ; y3 ~, where 1 o Equations A' _i z' _ (xa' - xr ~
L,= (y~,_y~' .~,,r r x3' = L' ~ L' ~ r ' - x,'-xz' y3,= L,. (xl,-x3) , ra -3'r.
Using the above definition of ~ for the operation of the "addition" of elements of G ; the present invention derives the following set of field equations for the operation of adding any "point" (xl ; y~ ~ in G'to itself (x~ ~ Yr 7 ~ (x~ ; Yr 7 = (x3 ; Yj ~, where Z' _ (y,'+ y, y' . r?
L'=((x,'+x,'+x,')~x,'~r'~'+a).z~.y x3.=L..L..r r _xr..x~.
y3,=L,.(x~,-x3' ;r r -yl.
It is now shown how the present invention ensures that C~ ; T, T'', and ~
together satisfy WO 99/30458 PCT/US98~25824 conditions (i), (ii), and (iii) set forth in Section A.
(i) Let P be any point in the elliptic curve group G. Then there exist some elements x and y of F such that P = (x, y). Then T"-' ( T(P) ) = T-' ( T( (x, y) ) ) = T-'' ( (x -r, y - r) ) _ (x ~ r -r', y ~ r ~ r ~) _ (x, y) = P. Therefore, Condition (i) in Section A is satisfied.
(ii) Given any two points P and S in G, then we need to show that P ~ S = T'' (P' ~ S~, where P' _ T(P) and S' = T(S). Let P = (x,, y,), P' _ (x~ : y, ), S = (xl, y~, S' _ (x1; y1 ), Q = P - S = (x~, y.~ and Q' = P' -~ S' _ (x3 ; y j ~. Then, applying the rules for point addition in the elliptic curve group given by Equations A, the coordinates of O are given byxj = L ~L-x, -x1 and y3=L ~ (x, -x~) --y,, whereL = (y2-y,) -z, andz = (x~-x,)-' Equations A' above, on the other hand, give the coordinates for O'. As such, it can be shown that, z, = (xa,- x~,)_i . ra _ (x~ ~r-xr -r)-' -r~
_ (xz-xr) l -r =z-r L, - (y,a,_Y>>.z,.r ~
=(Y~.r-y~-r)-(z.r).ri _ (y~-y,) .Z -r =L ~r xj' = L' . L' , ra - x~'- x2' _ (L -r) ~(L -r) ~r'-x, ~r-x~ -r _ (L -L-x~-x~ ~r = x~ ~ r Ys,=L,.(x~,_x37. rr_y~, _ (L .r) .(x~ .r-xs .r) .r l _y~.r _ (L -(x~-x~-y,) -r =y~ ~r Therefore, (x3 ; y3 ) _ (xj - r, y3 - r), which implies that P' ~ S' = T (P -S), as required.
Hence, Condition (ii) in Section A is satisfied.
(iii) The present invention has provided a method for the selection of C~ ; T;
~, and 7'' and their corresponding algorithms in a manner such that given P,, P~, ... , f',v E G, where N is an integer, computation of T"l ( T(P,) ~ T (P~ ~ ... ~ T(PN)) is in general more optimized than computation of P, + P~ + ... + PN. To verify this, note that calculation of T(P~ ~ T(P~ ~ ... ~ T(PN) involves repeated application of the expressions in Equations A'. Note, however, that these expressions are in the Montgomery Canonical Form with respect to r. As such, the Montgomery Algorithm in GF(p) can be readily applied to the calculation of T(P,) ~ T(P,~ ~ ... ~ T(Pv) to create an optimized hardware and/or software implementation. Therefore, Condition (ii) in Section A is satisfied.
Section D
Another detailed embodiment of the present invention applies the methods of Sections A
and B to the elliptic curves defined over the specific fields belonging to GF(2"'). In this embodiment, a new transformed operation ~ is constructed such that conditions (i), (ii), and {iii) in Section A are satisfied.
The present invention further includes a method for optimizing calculations of eP when F
is an individual member field of GF(2''). In this embodiment, G is an elliptic curve group over F E
GF(2''), and G ; T, T'l are constructed in accordance with the method of the invention described in Section B, above, through choosing an arbitrary element r of F. The present invention 2 0 constructs a "transformed" operation ~ in G' as follows. Given any two elements of G ; say (x, ;
y, ~ and (x~ ; y?~, then the present invention defines (x, ; y, ) ~ (xZ ; y2~
to be given by (x3 ; yj~, where Equations B' w, . .(y, . x~'_~ . r.

L, _ (YJ' . y,~ . ~.. r x3,= (L~.L~.r ~) + L~+ x,'+ x~~+ a~
y3' = (L' - (x, '+ x3 ~ ~ r l ) + x3'+ y, .
Using the above definition of ~ for the operation of the addition of points in G ; the present invention derives the following set of field equations for the operation of "doubling a point", i: e. adding a point (x, ; y, ~ in G'to itself:
(Xr ; Y~ ~ ~ (XJ ; YJ 7 = (x3 ; Ys ~ ~ where z,= (Xl,)-J -ri x '= x '-x '-r' (z'~z'-r') -b' -r' 3 J l '-1~ y9'=XI'-Xl''r l ' (XI'TYj''Z'~r i) -x3~-r~J -~ xj' It is now shown how the present invention ensures that G ; T, T'l, and ~
together satisfy conditions (i), (ii), and (iii) set forth in Section A.
(i) Let P be any point in the elliptic curve group G. Then there exist some elements x and y of F such that P = (x, y). Then T'' ( T(P) ) = T"' ( T( (x, y) ) ) = T '' ( (x -r, y - r) ) _ (x - r -r l, y . r - r l) _ (x, y) = P. Therefore, Condition (i) in Section A is satisfied.
(ii) Given any two points P and S in G, then we need to show that P + S = T'1 (P' ~ S~, where P' = T(P) and S' = T(S). Let P = (x,, y,), P' _ (x, ; y, ~, S = (xZ, y~, S' _ (x~ ; yl~, Q = P + S = (x3, y ~) and Q' = P' + S' _ (x3 ; y a ~. Then, applying the rules for point 2 o addition in the elliptic curve group given by Equations A, the coordinates of O are given by Xj = L . L ~- L + x, + x1 ~- a and y3 = L - (x, + x~ + x3 + y,, where L =
(Yr + Yz~ ' z, and z = (x, -~ x~~' . Equations A' above, on the other hand, give the coordinates for Q'. As such, it can be shown that, ~Y J , _ xz .~ -J . ~, _ 2 5 /rJ ~ ~' w r? ~ jl l ' ~' (xl , x~ -~ . ~.
=z ~r L, _ (yl,T y2~,Z,,r r =(Yr-r~'yz~r)~(z~r).y _(y~+YzJ~z~r = L -r x3'=L'.L'.r'+L'+x,'-x~'+a.
=(L-r)-(L~r) ~r'+L~r+xr-r~x1-r~a'-r =(L.L+L+x,+x1+a)~r =xj ~r Ys.=L,.(xr,+x37 .r r +xs,+Yr.
=(L-r)~(x,r+x3 r)-r'+x3-r+y,-r =(L~(x,+x3)+xj+yr)~r = Y3 . r Therefore, we have (xj ;yj ~ _ (x3 ~ r, y3 - r) which implies that P' ~ S' =
T(P + S), as required. Hence, Condition (ii) in Section A is satisfied.
(iii) The present invention has provided a method for the selection of G ; T, ~, and T'' and their corresponding algorithms in a manner such that given P,, P~, ... , PN E
G, where N is an integer, computation of T'-'( T(P,) ~ T(P~ ~ ... ~ T(P,,~) is in general more optimized than computation of P, + P~ + ... + PN. To verify this, note that calculation of 2 5 T(P~ ~ T(P~ ~ ... ~ T(P,v) involves repeated application of the expressions in EQuations B'. Note, however, that these expressions are in the Montgomery Canonical Form with respect to r. As such, the Montgomery Algorithm in GF(2'') can be readily applied to the calculation of T(P,) ~ T(P~ ~ ... ~ T(PN) to create an optimized hardware and/or software implementation. Therefore, Condition (ii) in Section A is 3 0 satisfted.
.Section E
The present invention further provides a method for achieving higher efficiencies when utilizing the methods of Sections C and D above by providing specific choices of r.
The present invention works with any element r in the field F over which the elliptic curve group G is defined. The exact choice of the element r, however, ai~ects the computational characteristics of the resulting calculations. The present invention teaches that the selection of r can optimize specific aspects of a software and/or hardware implementation within specific computer environments. For instance, choosing r to be a multiple of 32 can have beneficial effects on 32-bit computers. Given a particular selection of r, the calculation of a ~
b ~ r ' may be done in more than one way, some of which may be more computationally effscient. The following selections of r are preferred:
l0 1. Field GF(p): r is selected as the smallest power of 2 that is larger than p.
2. Field GF(p): r can be selected as the product of k prime numbers, which gives the resulting algorithm a high degree of parallelism.
3. Field GF(2''): r is selected as x"' mod n(x), where n(x) is the irreducible polynomial generating the field GF(2''').
Other selections of r for different fields are also possible. The transformation algorithms work independently of this selection.
.Section F
The present invention further provides a method for optimizing calculation of a finite 2 o number of arbitrary field operations over any finite field. Let f be a valid expression def ned within F involving a finite number of variables, and a finite number of the field operations -~~, ~ , ; and -' The present invention provides a method for optimizing computation of f, which includes carrying out the following steps in sequence:
( 1 ) Select r to be any single element of the field f'. The element r, a constant, will be used to transform the expression f into a new expression f'through applying a series of substitutions in accordance with the substitution technique described earlier in this document. If the expression f already contains a constant or variable denoted by the symbol r, then rename the symbol r in this step-by-step procedure to some unique value, and interpret the subsequent steps of this procedure as if r were renamed appropriately in them. Note that the expression f may coincidentally contain constants or variables that may have the same field value as the selected element r, without affecting this procedure.
Subsequent steps of this procedure will rely on the expression f being initially free of "primed" symbols such as d' or j ". If the expression f initially contains any variables or 1 o constants which are denoted by "primed" symbols, then replace each primed variable or constant symbol with a unique unprimed name. Subsequent substitution steps.of this procedure will employ source expressions containing primed symbols, which by convention in this patent are not allowed to match symbols that are not primed. Note that source expressions containing unprimed symbols, such as x, are allowed by convention in this patent to match variable symbols or constant symbols which may be either primed or unprimed.
(2) Transform the expression f into the expression f, by replacing all occurrences of the source expression x with the target expression x'. In this substitution, x denotes a variable or constant occurring in the expression f. This replaces all variables and constants with 2 0 primed symbols. Note that this occurs without affecting any coefficients that may exist in the expression f.
(3) Transform the expression f, into the expression fZ by replacing all occurrences of the source expression x ~ y with the target expression x ~ y. In this substitution, x and y denote subexpressions of fi, which should contain only primed symbols, and D
is used as an alternate symbol to represent the multiplication operation in the field F.
The purpose of this step is to label as ~ all of the original ~ operators occurring in the expression f; to distinguish them from the ~ operators that will be introduced into the transformed expression during the following steps of this method.
(4) Transform the expression f1 into the expression f3 by replacing all occurrences of the source expression x ' with the target expression x ' ~ r a. In this substitution, x denotes a subexpression of f1.
(5) Transform the expression f3 into the expression f, by replacing all occurrences of the source expression x ~y with the target expression x ~ y ~ r ~. In this substitution, x and y 1 o denote subexpressions of fs.
(6) Transform the expression fs into the expression f' by replacing all occurrences of the source expression x' with the target expression x~ r. In this substitution, x' denotes a primed variable or primed constant occurring in the expression f;, specifically excluding all instances of the unprimed constant r. The effect of this step is to replace every primed symbol with its unprimed form multiplied by r.
Upon completion of the above steps, the expression f is transformed into a new expression f'. The present invention has carefully specified the preceding steps in such a way as to ensure that f = f' ~ r-1. To prove this, the result is demonstrated for the four special cases when f = x - y, f =
x -y, f = x ~ y, and f -- x l, where x and y are elements in the field F. The general result follows 2 o from the commutative, associative and distributive properties of the field.
Case 1. Transformed Addition Let,f -- x -- y. Applying the substitution method of the present invention to the expression f results in the transformed expression, f' x ~ r - y ~ r'. To see that f ,f' ~ r ~, note that,f x ~ y (x_y),r,r-y(x,r~y,r),rl==f~.r~
Case 2 Transformed Subtraction Let f = x -y. Applying the substitution method of the present invention to the expression f results in the transformed expression f' = x ~ r -y ~ r. To see that f = f' ~
r ~, note that f = x -y =
(x-y).r,r,=(x,r-y.r).rr= f.,rr Case 3 Transformed Multiplication Let f - x ~ y. Applying the substitution method of the present invention to the expression f results in the transformed expression f' _ (x ~ r) ~ (y ~ r) ~ r ' . To see that f = f' ~ r ', note that f =
x.y=x.Y.rl.r~-x.3'.r.r.r-r.W -x.r.y.r.r'.rr=(x.r).(Y.r).rr.rr=f'.
r' Case 4 Transfgrmed Inversion Let f = x '. Applying the substitution method of the present invention to the expression f results in the transformed expression f' _ (x ~ r) -' ~ r~. To see that f = f' ~ r-', note that f = x ' ~ ><'' .r , -x, .r_, .~ .r y (x .r)-r .~ ,r r =. f..r J
Thus, the present invention provides a method to transform any expression f involving a 2 o finite number of field operations within a finite field F into the form f' ~ r ' . Furthermore, the expression f' ~ r ' constructed by the present invention is guaranteed to be in the Montgomery Canonical Form. To verify this, note that (i) the substitution steps of the method of the present invention ensure that if the original expression f includes any subexpressions that are of the form x y, such subexpressions are transformed into the Form lr ~ y ~ (y ~ r~ ~ r= ', which is in the Montgomery Canonical Form; and (ii) whenever the substitution steps of the method of the present invention introduce a new multiplication operation into the transformed expression, such operation brings with it a single additional operand which is always a power of r, thus preserving the Montgomery Canonical Form of the subexpression it is introduced into.
Depending on the exact nature of F, and the number of the multiplication operations in the expression f and the exact number and nature of the operations involved in the calculation of f ;
computation of the expression f' ~ r ~ may be more efficient than direct computation of the expression f This is particularly likely, when the field F is a member of either GF(p) or GF(2"').
For, in such instances, the Montgomery Algorithm can be applied to the expression f' ~ r I to 1 o ensure optimized computation of the value that the expression f evaluates to.
Section G
The present invention may also be used with "projective coordinates," which are used to eliminate the need for performing inversion.
For example, in projective coordinates, a point on the elliptic curve group G
has 3 coordinate values: (x,, y,, z,) while the affine coordinates requires only two values: (x,, y,).
For example, for elliptic curves defined over GF(2'''), given the distinct points P and D
expressed in projective coordinates:
P : = (x,, yl, zi) 2 0 Q : _ (xz~ ya. zz~
the projective coordinates of the sum of 2 points on the elliptic curve are:
P ~ 4 : _ (xs, y~, Z~
using the following addition rules:
A w r;~.:~ - xr WO 99/3045$ PCT/US98/25824 B=y~.z, -yr C=A+B
D=Az.(A*a.zr)+zr.B.C
x3 =A .D
y3=C.D+Az.(B.xr+A.yr) Z3 =A3.Zr This computation requires 13 field multiplications, and no inversions.
Similarly, the addition formulae for computing 2P is given as:
A = x, . z, B = b . zr~' * xl~
xs=A .B
Ys=xn.A+B.(xr2+Yr.zr+A) Z3 = A3 This computation requires 7 field multiplications, and no inversions.
Thus, the use of projective coordinates eliminate the inversions at the expense of storing 3 GF(2'') values to represent P and performing a few more multiplications.
The present invention can also be used in conjunction with projective coordinates. The addition rules would then be modified as follows:
A' = x1' . zr' . r-l + xr' 2 0 B' = yz' . zr' ~ r~' + y~' C' A' B' D~= (A~..A~.j~') .(A~-~ a'~Zr'~Y r ~r '+ (z,'~B'~r!r) 'C'~r l x3~:_ ,q~.D~.r' y;'-- (''.D'.r~~ - ~A'~A'w' ~~ '(B''r~~''' ~ - A~'Yu'r ~~ 'r J

z3'= ~~A''A''r I~ ~A''r ~ ~z, ~r Similarly the rules for computing 2P are modified as A.-XI..zI..r r I +~~XI''XI''r IJ 'XI''r I~ ~XI~~r 1 X3,=A,.B,,r I
Y3'= ~~~xr''X!''r I~ 'XI''r I~ 'XI''r IJ 'A''r' +
B,.~x ,.X ,~r I + yJ,.zl,~ra +A' .r I
IMPLEMENTATION
The present invention may be implemented on any conventional or general purpose PC
computer system. It may also be used in conjunction with any network system, including the Internet. A preferred embodiment of a computer system for implementing this invention is an Intel Pentium II PC 233 MHz, running Windows NT 4Ø
The present invention can be implemented in any programming language including C and Java. The following are examples of pseudo code suitable for implementing the present invention.
Setup: a, b . Parameters of the elliptic curve (EC) F . The field upon which the EC is based Either GF(p) or GF(2k) * . field multiplication + . field addition . field subtraction -1.. field inversion p=(p(x), P(y)) . A point on the EC
P (x) & P (y) are affine coordinates Algorithm Identifier: ExpPoint Input: a . k-bit integer P . Point on the EG, P = (P(x); P(y)) output: Q . Point on the EC, Q = (Q(x), Q(Y)) Q . ep = (P+P+...+P) (e times P) function ExpPoint begin .
/* Transform P to P' using r */
P' (x) - P (x) * r P' ty) = P (y) * r /* Start with O' point at infinity */
Q. _ O.

WO 99!30458 PCT/US98IZ58Z4 /* Binary method loop */
for i=k-1 downto 0 do Q' . DoubIePoint(Q') if a i=1 then Q' . AddPoint(Q', P') /* Transform Q' t~ Q using r */
Q (x) - Q' (x) * r Q (y) - Q' (y) * r-1 return Q
end ________________________________________________________________ Algorithm Identifier: AddPoint Input: P' . Transformed Point on the EC
Q' . Transformed Point on the EC
Output: T' . Transformed Point on the EC
T' . p' + Q' using the EC point addition rules function AddPoint begin /* If the underlying field is GF(p) */
lambda' - Multiply ( (Q' (Y) - P' (y) ) , Inverse (Q' (x) - P' (x) ) T' (x) - Multiply { lambda' , lambda' ) - P' (x) - Q' (x) T' (y) - Multiply(lambda' , (P' (x) - T' (x) ) ) - P' (y) return T
/* If the underlying field is GF(2k) */
lambda' - Multiply((P'(y) + Q'(y)), Inverse{P'(x) + Q'(x))) T'(x) = Multiply(lambda', lambda') + lambda' + P'(x) + Q'(x) +
a' T' (y) - Multiply (lambda' , (P' (x) + T' (x) ) ) + T' {x) + P' (y) return T
end Algorithm Identifier: DoublePoint Input: P' . Transformed Point on the EC
Output: T' . Transformed Point on the EC
T' . P' + P using the EC point doubling rules function DoublePoint begin /* If the underlying field is GF(p) */
lambda' - Multiply(Multiply(3P'(x),P'(x)) + a'), Inverse (2P' (y) ) ) T'(x) - Multiply(lambda', lambda') - 2P'(x) T' (y) - Multiply(lambda' , (P' (x) - T' (x) ) ) - P' (y) return T
/* Else if the underlying field is GF(2k) */
T' (x) - Multiply(P' (x) , P' (x) ) +
Multiply(b', Multiply(Inverse(P'(x), P'(x)))) T' (y) - Multiply (P' (x) , P' (x) ) +
Multiply(P' (x) + Multiply (P' (y) , Inverse (P' (x) ) ) , T' (x) ) + T' (x) return T
end Algorithm Identifier: Inverse Input . u: Field element Output: t: Field element function Inverse begin t _ u_1 * r2 return t end Algorithm Identifier: Multiply Input . u, v: Field elements Output: t: Field element function Multiply begin _ t = a * v * r return t to end A number of references describe the mathematical background for the present invention.
Those references include: P. L. Montgomery, Modular multiplication without trial division, "Mathematics of Computation," 44(170):519-521, April 1985; D. E. Knuth, "The Art of Computer Programming: Seminumerical Algorithms," volume 2, Second edition, Reading, MA:
Addison-Wesley, 1981; C. K. Koc and T. Acar, Montgomery multiplication in GF(2k), "Proceedings of Third Annual Workshop on Selected Aieas in Cryptography,"
pages 95-106, Queen's University, Kingston, Ontario, Canada, August 15-16, 1996; C. K. Koc and T. Acar., Fast software exponentiation in GF(2''), "Proceedings, 13th Symposium on Computer Arithmetic," pages 225-231, Asilomar, California, July 6-9, 1997, Los Alamitos, CA: IEEE
Computer Society Press; J. C. Bajard, L. S. Didier, and P. Kornerup, An RNS
Montgomery multiplication algorithm, "Proceedings, 13th Symposium on Computer Arithmetic," pages 234-239, Asilomar, California, July 6-9, 1997, Los Alamitos, CA: IEEE Computer Society Press; D. R. Stinson. "Cryptography Theory and Practice," CRC Press, 1995; V.
Miller, Uses of 2 5 elliptic curves in cryptography, "Advances in Cryptology - CRYPTO 85, Proceedings," pages 417-426, New York, NY: Springer-Verlag, 1985; N. Koblitz, Elliptic curve cryptosystems, "Mathematics of Computation," 48:203-209, 1987; N. Koblitz, "A Course in Number Theory and Cryptography," New York, NY: Springer-Verlag, 1987; A. J. Menezes, "Elliptic Curve Public Key Cryptosystems," Boston, MA: Kluwer Academic Publishers, 1993; R.L. Rivest, A. Shamir, 3 o and L. Adleman, A Method for Obtaining Digital Signatures and Public-key Cryptosystems,"

Communications of the ACM, 21(2):120-126, 1978; T. Beth, M. Frisch, and G.J.
Simmons, Public-key Cryptography: State of the Art and Future Directions. Springer-Verlag, NY, 1991;
IEEE Working Group P1363, Working Draft: IEEE 1363: Standard for RSA, Diffie-Hellman and Related Public-key Cryptography. In preparation, 1995; RSA Laboratories, Answers to Frequently Asked Questions about Today's Cryptography. Version 3.0, 1996; G.B.
Agnew, R.C.
Mullin, LM. Onyszchuk, and S.A. Vanstone, An implementation of a fast public-key cryptosystem. Journal of Cryptology, 3(2):63-79, 1991. All of these publications are herein incorporated by reference as if each individual publication were specifically and individually set forth herein.
Having described and illustrated.the principles of our invention with reference to a preferred embodiment, it will be apparent that the invention can be modified in arrangement and detail without departing from such principles. As such, it should be recognized that the detailed embodiment is illustrative only and should not be taken as limiting the scope of our invention.
Rather, we claim as our invention all such embodiments as may fall within the scope and spirit of the following claims and equivalents thereto.

Claims (23)

We claim:
1. A method for producing an elliptic curve point multiplication product, Q =
eP, using an arbitrary integer e, a point P on an elliptic curve group G defined over a field F, where G ~ F
x F, comprising the steps of:
constructing a set G';
constructing a mapping T from G into the set G', constructing a mapping T -1 from G' onto G, and constructing an operation ~ defined on G', such that (a) given P ~ G, T
-1 (T(P)) = P, and (b) P~P = T -1(P'~ P'), where P' = T(P);
producing an elliptic curve point multiplication product Q by transforming the point P to the point P' using the mapping T, performing the operation ~ on the point P' to determine the point Q' = e P', transforming the point Q' to the product Q using the mapping T -1; and using the product Q in a cryptographic operation.
2. The method of claim 1 wherein the set G, the set G', the mapping T, the operation ~, and the mapping T -1 are constructed such that given P1, P2, ..., P N ~ G, where N is an integer, the computation of T -1(T(P1) ~ T(P2) ~ ... ~ T(P N) is more efficient than the computation of P1 + P2 + ... + P N.
3. The method of claim 1 wherein:
the mapping T is constructed by selecting any element r of the field F, and defining T as T:
(x, y) ~ (x ~ r, y ~ r), where P = (x, y) .epsilon. G, and ~ is the multiplication operator in F; and the mapping T is constructed by defining T: (u, v) ~ (u ~ r -1, v ~ r -1), where P' = (u, v) .epsilon.
G'.
4. The method of claim 3 wherein the field F is a member of GF(p).
5. The method of claim 4 wherein the element r is selected as the smallest power of 2 that is larger than p.
6. The method of claim 4 wherein the element r is selected as the product of prime numbers.
7. The method of claim 4 wherein the operation ~ is constructed such that the addition of two points in the set G' is given by:

(x3',y3')=(x1',y1')~(x2',y2');
z'=(x2'-x1')-1 ~r2;
L'=(y2'-y1')~z' ~r-1;
x3'=L'~L' ~r-1 -x1'-x2', and y3'=L'~(x1'-x3')~r-1-y1'.
8. The method of claim 4 wherein the operation ~ is constructed such that the doubling of a point in the set G' is given by:
(x1',y1')~(x1',y1')=(x3',y3');
z'=(y1'+ y1')-1 ~r2;
L'=((x1'+ x1'+ x1')~ x1'~r-1 ~.alpha.) ~z'~r-1;
x3'=L'~L'~r-1 - x1'- x1', and y3'=L'~(x1'-x3')~r-1-y1'.
9. The method of claim 4 wherein the Montgomery Algorithm in GF(p) is utilized to perform the operation ~ on the point P' to determine the point Q' = e P'.
10. The method of claim 3 wherein the field F is a member of GF(2k).
11. The method of claim 10, wherein the operation ~ is constructed such that the addition of two points in the set G' is given by:
(x3'y3') = (x1',y1') ~ (x2',y2');
z'= (x1' + x2')-1 ~ r2;
L' = (y1' + y2') ~ z' ~ r-1;
x3' = (L'~L'~r-1)+L'+x1'+x2'+.alpha.~; and y3' = (L'~(x1'+x3')~r1)+x3'+y1'.
12. The method of claim 10, wherein the operation ~ is constructed such that the doubling of a point is given by:
(x1', y1') ~ (x1', y1') = (x3', y3') z' = (x1')-1 ~ r2;
x3' = x1'~x1'~r-1 + (z'~z'~r-1) ~b~r-1; and y3' = x1'~x1'~r-1 + (x1'+y1'~z'~r-1)~x3'~r-1 +x3'.
13. The method of claim 10 wherein the element r is selected as x k mod n(x), where n(x) is the irreducible polynomial generating the field GF(2k).
14. The method of claim 10 wherein the Montgomery Algorithm in GF(2k) is utilized to perform the operation ~ on the point P' to determine the point Q' = e P'
15. The method of claim 1 wherein the step of performing the operation ~ on the point P' utilizes a binary method.
16. The method of claim 1 wherein the step of performing the operation ~ on the point P' utilizes an M-ary method.
17. The method of claim 1 wherein the elements of sets G and G' are implemented using Projective Coordinates.
18. A method for optimizing the calculation of an expression f = f(x1, ..., x i , ..., x n, wherein the expression f is comprised of a finite number of arbitrary field operations over any finite field F, and x1, ..., x i, ..., x n are all elements of F, comprising the steps of:
selecting an element r, a constant, from the field F;
transforming the expression f = f(x1, .. , x i, ..., x n to the f' =
f'(x1'..., x i; ..., x n by replacing all occurrences of x in the expression f with x', giving f1, where x denotes a variable or constant of f ;
replacing all occurrences of x~y in the expression f1 with x ~ y, giving f2, where x and y denote subexpressions of f1;
replacing all occurrences of x-1 in the expression f2 with x-1 ~ r2, giving f3, where x denotes a subexpression of f2;
replacing all occurrences of x ~ y in the expression f3 with x ~ y ~ r-1, giving f4, where x and y denote subexpressions of f3; and replacing all occurrences of x' in the expression f4 with x ~ r; giving f', where x denotes a primed variable or primed constant in f4;
determining f = f' ~ m-1; and using f' ~ m-1 to calculate f in a cryptographic operation.
19. The method of claim 18 wherein each instance of x' ~ y' ~ m-1 is computed using the Montgomery Algorithm when the set F is a member of GF(p).
20. The method of claim 18 wherein each instance of x' ~ y' ~ m-1 is computed using the Montgomery Algorithm in GF(2k) when the set F is a member of GF(2k).
21. A method for producing an elliptic curve point addition product, Q = P +
P, using a point P on an elliptic curve group G defined over a field F, where G ~ F x F, comprising the steps of:
constructing a set G';
constructing a mapping T from G into the set G', constructing a mapping T-1 from G' onto G, and constructing an operation ~ defined on G~; such that (a) given P ~ G, T-1 (T(P)) = P, and (b) P+P = T-1 (P' ~ P'), where P' = T(P); and producing an elliptic curve point addition product Q by transforming the point P to the point P' using the mapping T, performing the operation ~ on the point P' and the point P' to determine the point Q', transforming the point Q' to the product Q using the mapping T-1; and using the product Q in a cryptographic operation.
22. A method for producing an elliptic curve point addition product, Q ~ P ~
S, using points P and S on an elliptic curve group G defined over a field F, where G ~F
x F, comprising the steps of:
constructing a set G';
constructing a mapping T from G into the set G; constructing a mapping T -1 from G' onto G, and constructing an operation ~ defined on G'; such that (a) given P ~ G, T
-1(T(P)) = P, and (b) P+S = T -1 (P' ~ S'), where P' = T(P) and S' = T(S); and producing an elliptic curve point addition product Q by transforming the point P to the point P' using the mapping T, by transforming the point S to the point S' using the mapping T, performing the operation ~ on the point P' and the point S' to determine the point Q', transforming the point Q' to the product Q using the mapping T -1; and using the product Q in a cryptographic operation.
23. Apparatus for producing an elliptic curve point multiplication product, Q
= eP, using an arbitrary integer e, a point P on an elliptic curve group G defined over a field F, where G
~F xF, comprising:
means for constructing a set G';
means for constructing a mapping T from G into the set G'; constructing a mapping T -1 from G' onto G, and constructing an operation ~ defined on G'; such that (a) given P .epsilon. G, T -1( T(P)) = P, and (b) P+P = T -1(P'~ P', where P'= T(P); and means for producing an elliptic curve point multiplication product Q by transforming the point P to the point P' using the mapping T, performing the operation ~ on the point P' to determine the point Q' = e P', transforming the point Q' to the product Q
using the mapping T -1; and means for using the product Q in a cryptographic operation.
CA002310588A 1997-12-05 1998-12-04 Transformation methods for optimizing elliptic curve cryptographic computations Abandoned CA2310588A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US6931497P 1997-12-05 1997-12-05
US60/069,314 1997-12-05
PCT/US1998/025824 WO1999030458A1 (en) 1997-12-05 1998-12-04 Transformation methods for optimizing elliptic curve cryptographic computations

Publications (1)

Publication Number Publication Date
CA2310588A1 true CA2310588A1 (en) 1999-06-17

Family

ID=22088145

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002310588A Abandoned CA2310588A1 (en) 1997-12-05 1998-12-04 Transformation methods for optimizing elliptic curve cryptographic computations

Country Status (7)

Country Link
EP (1) EP1038371A4 (en)
JP (1) JP2001526416A (en)
CN (1) CN1280726A (en)
AU (1) AU758621B2 (en)
BR (1) BR9815161A (en)
CA (1) CA2310588A1 (en)
WO (1) WO1999030458A1 (en)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307935B1 (en) * 1991-09-17 2001-10-23 Apple Computer, Inc. Method and apparatus for fast elliptic encryption with direct embedding
US6343305B1 (en) 1999-09-14 2002-01-29 The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University Methods and apparatus for multiplication in a galois field GF (2m), encoders and decoders using same
FR2821945B1 (en) * 2001-03-12 2003-05-30 Gemplus Card Int METHOD OF PROTECTION AGAINST ATTACKS BY MEASURING CURRENT OR ELECTROMAGNETIC RADIATION
FR2821944B1 (en) * 2001-03-12 2003-05-30 Gemplus Card Int METHOD OF PROTECTION AGAINST ATTACKS BY MEASURING CURRENT OR ELECTROMAGNETIC RADIATION
FR2824210B1 (en) * 2001-04-27 2003-05-30 Gemplus Card Int COUNTER-MEASUREMENT METHOD IN AN ELECTRONIC COMPONENT USING A PUBLIC KEY TYPE CRYPTOGRAPHIC ALGORITHM ON AN ELLIPTICAL CURVE
FR2824653B1 (en) * 2001-05-11 2003-08-08 Gemplus Card Int DEVICE FOR PERFORMING EXPONENTIATION CALCULATIONS APPLIED TO POINTS OF AN ELLIPTICAL CURVE
US7209555B2 (en) * 2001-10-25 2007-04-24 Matsushita Electric Industrial Co., Ltd. Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device
CN100440776C (en) * 2002-11-29 2008-12-03 北京华大信安科技有限公司 Elliptic Curve Signature and Verification Signature Method and Device
US7499544B2 (en) 2003-11-03 2009-03-03 Microsoft Corporation Use of isogenies for design of cryptosystems
US7664957B2 (en) 2004-05-20 2010-02-16 Ntt Docomo, Inc. Digital signatures including identity-based aggregate signatures
WO2006056234A1 (en) * 2004-11-24 2006-06-01 Hewlett-Packard Development Company, L.P. Smartcard with cryptographic functionality and method and system for using such cards
US7602907B2 (en) * 2005-07-01 2009-10-13 Microsoft Corporation Elliptic curve point multiplication
CN100414492C (en) * 2005-11-04 2008-08-27 北京浦奥得数码技术有限公司 Elliptic curve cipher system and implementing method
US8311214B2 (en) * 2006-04-24 2012-11-13 Motorola Mobility Llc Method for elliptic curve public key cryptographic validation
CN101079701B (en) * 2006-05-22 2011-02-02 北京华大信安科技有限公司 Highly secure ellipse curve encryption and decryption method and device
US8548160B2 (en) * 2010-01-13 2013-10-01 Microsoft Corporation Determination of pairings on a curve using aggregated inversions
CN103078732B (en) * 2013-01-08 2015-10-21 武汉大学 A kind of dot product accelerating circuit of prime field elliptic curve cryptography
CN104601322A (en) * 2013-10-31 2015-05-06 上海华虹集成电路有限责任公司 Montgomery step algorithm for ternary extension field in cryptographic chip
CN104267926B (en) * 2014-09-29 2018-03-09 北京宏思电子技术有限责任公司 The method and apparatus for obtaining elliptic curve cipher data
CN108337091A (en) * 2018-03-22 2018-07-27 北京中电华大电子设计有限责任公司 P times of point calculating method of specified point on a kind of SM9 elliptic curves line of torsion

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271061A (en) * 1991-09-17 1993-12-14 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
US5159632A (en) * 1991-09-17 1992-10-27 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
US5373560A (en) * 1991-12-06 1994-12-13 Schlafly; Roger Partial modular reduction method
US5442707A (en) * 1992-09-28 1995-08-15 Matsushita Electric Industrial Co., Ltd. Method for generating and verifying electronic signatures and privacy communication using elliptic curves
US5497423A (en) * 1993-06-18 1996-03-05 Matsushita Electric Industrial Co., Ltd. Method of implementing elliptic curve cryptosystems in digital signatures or verification and privacy communication
US5577124A (en) * 1995-03-09 1996-11-19 Arithmetica, Inc. Multi-purpose high speed cryptographically secure sequence generator based on zeta-one-way functions
US5854759A (en) * 1997-05-05 1998-12-29 Rsa Data Security, Inc. Methods and apparatus for efficient finite field basis conversion
ATE245875T1 (en) * 1998-02-18 2003-08-15 Infineon Technologies Ag METHOD AND DEVICE FOR CRYPTOGRAPHIC PROCESSING USING AN ELLIPTICAL CURVE ON A COMPUTER

Also Published As

Publication number Publication date
EP1038371A1 (en) 2000-09-27
WO1999030458A1 (en) 1999-06-17
BR9815161A (en) 2000-10-10
JP2001526416A (en) 2001-12-18
CN1280726A (en) 2001-01-17
EP1038371A4 (en) 2002-01-30
AU2198399A (en) 1999-06-28
AU758621B2 (en) 2003-03-27

Similar Documents

Publication Publication Date Title
Blake et al. Elliptic curves in cryptography
EP1993086B1 (en) Elliptical curve encryption parameter generation device, elliptical curve encryption calculation device, elliptical curve encryption parameter generation program, and elliptical curve encryption calculation program
Galbraith Elliptic curve Paillier schemes
CA2310588A1 (en) Transformation methods for optimizing elliptic curve cryptographic computations
Gordon A survey of fast exponentiation methods
Khalique et al. Implementation of elliptic curve digital signature algorithm
US6252959B1 (en) Method and system for point multiplication in elliptic curve cryptosystem
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
US6202076B1 (en) Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
US7379546B2 (en) Method for XZ-elliptic curve cryptography
US20030059042A1 (en) Elliptic scalar multiplication system
Robshaw et al. Elliptic curve cryptosystems
Kobayashi et al. Fast elliptic curve algorithm combining Frobenius map and table reference to adapt to higher characteristic
US7483533B2 (en) Elliptic polynomial cryptography with multi x-coordinates embedding
US7483534B2 (en) Elliptic polynomial cryptography with multi y-coordinates embedding
US20030059043A1 (en) Elliptic curve signature verification method and apparatus and a storage medium for implementing the same
Vanstone et al. Elliptic curve cryptosystems using curves of smooth order over the ring Z/sub n
Granger et al. On the discrete logarithm problem on algebraic tori
Shankar et al. Cryptography with elliptic curves
Galbraith et al. Algebraic curves and cryptography
Brumley Efficient three-term simultaneous elliptic scalar multiplication with applications
Takashima A new type of fast endomorphisms on Jacobians of hyperelliptic curves and their cryptographic application
US20070121935A1 (en) Method for countermeasuring in an electronic component
KR100341507B1 (en) Elliptic Curve Cryptography and Digital Signature Method using fast finite field operations
WO2004070681A2 (en) Elliptic curve scalar multiple calculation method and device

Legal Events

Date Code Title Description
EEER Examination request
FZDE Dead