1. Field of the Invention
The present invention relates to computerized cryptographic systems and methods for encrypting communications in a computer network or electronic communications system, and particularly to a computerized method of performing RSA-analogous XZ-elliptic curve cryptography and cryptographic devices incorporating the method.
2. Description of the Related Art
In recent years, the Internet community has experienced explosive and exponential growth. Given the vast and increasing magnitude of this community, both in terms of the number of individual users and web sites, and the sharply reduced costs associated with electronically communicating information, such as e-mail messages and electronic files, between one user and another, as well as between any individual client computer and a web server, electronic communication, rather than more traditional postal mail, is rapidly becoming a medium of choice for communicating information. The Internet, however, is a publicly accessible network, and is thus not secure. The Internet has been, and increasingly continues to be, a target of a wide variety of attacks from various individuals and organizations intent on eavesdropping, intercepting and/or otherwise compromising or even corrupting message traffic flowing on the Internet, or further illicitly penetrating sites connected to the Internet.
Encryption by itself provides no guarantee that an enciphered message cannot or has not been compromised during transmission or storage by a third party. Encryption does not assure integrity due to the fact that an encrypted message could be intercepted and changed, even though it may be, in any instance, practically impossible, to cryptanalyze. In this regard, the third party could intercept or otherwise improperly access a ciphertext message, and then substitute a predefined illicit ciphertext block(s), which that party, or someone else acting in concert with that party, has specifically devised for a corresponding block(s) in the message. The intruding party could thereafter transmit the resulting message with the substituted ciphertext block(s) to the destination, all without the knowledge of the eventual recipient of the message.
The field of detecting altered communication is not confined to Internet messages. With the burgeoning use of stand-alone personal computers, individuals or businesses often store confidential information within the computer, with a desire to safeguard that information from illicit access and alteration by third parties. Password controlled access, which is commonly used to restrict access to a given computer and/or a specific file stored thereon, provides a certain, but rather rudimentary, form of file protection. Once password protection is circumvented, a third party can access a stored file and then change it, with the owner of the file then being completely oblivious to any such change.
Methods of adapting discrete logarithm based algorithms to the setting of elliptic polynomials are known. However, finding discrete logarithms in this kind of group is particularly difficult. Thus, elliptic polynomial-based cryptographic algorithms can be implemented using much smaller numbers than in a finite-field setting of comparable cryptographic strength. Therefore, the use of elliptic polynomial cryptography is an improvement over finite field-based public-key cryptography.
In practice, an elliptic curve group over a finite field F is formed by choosing a pair of a and b coefficients, which are elements within F. The group consists of a finite set of points P(x,y) that satisfy the elliptic curve equation:
F(x,y)=y2−x3−ax−b=0, (1)
together with a point at infinity, O. The coordinates of the point, x and y, are elements of F represented in N-bit strings. In the following, a point is either written as a capital letter (e.g., point P) or as a pair in terms of the affine coordinates; i.e. (x,y).
The elliptic curve cryptosystem relies upon the difficulty of the elliptic curve discrete logarithm problem (ECDLP) to provide its effectiveness as a cryptosystem. Using multiplicative notation, the problem can be described as: given points B and Q in the group, find a number k such that Bk=Q, where k is the discrete logarithm of Q to the base B. Using additive notation, the problem becomes: given two points B and Q in the group, find a number k such that kB=Q.
In an elliptic curve cryptosystem, the large integer k is kept private and is often referred to as the secret key. The point Q and the point B are made public, and are referred to as the public key. The security of the system, thus, relies upon the difficulty of deriving the secret k, knowing the public points B and Q. The main factor that determines the security strength of such a system is the size of its underlying finite field. In a real cryptographic application, the underlying field is made so large that it is computationally infeasible to determine k in a straightforward way by computing all the multiples of B until Q is found.
At the heart of elliptic curve geometric arithmetic is scalar multiplication, which computes kB by adding together k copies of the point B. Scalar multiplication is performed through a combination of point-doubling and point-addition operations. The point-addition operations add two distinct points together, and the point-doubling operations add two copies of a point together. To compute, for example, B=(2×(2×(2B)))+2B=Q, it would take three point-doublings and two point-additions.
Addition of two points on an elliptic curve is calculated as follows. When a straight line is drawn through the two points, the straight line intersects the elliptic curve at a third point. The point symmetric to this third intersecting point with respect to the x-axis is defined as a point resulting from the addition. Doubling a point on an elliptic curve is calculated as follows. When a tangent line is drawn at a point on an elliptic curve, the tangent line intersects the elliptic curve at another point. The point symmetric to this intersecting point with respect to the x-axis is defined as a point resulting from the doubling.
Table 1 illustrates the addition rules for adding two points (x1,y1) and (x2,y2), i.e., (x3,y3)=(x1,y1)+(x2,y2):
For elliptic curve encryption and decryption, given a message point (xm,ym), a base point (xB,yB), and a given key, k, the cipher point (xC,yC) is obtained using the equation (xC,yC)=(xm,ym)+k(xB,yB).
There are two basics steps in the computation of the above equations. The first step is to find the scalar multiplication of the base point with the key, k(xB,yB). The resulting point is then added to the message point, (xm,ym) to obtain the cipher point. At the receiver, the message point is recovered from the cipher point, which is usually transmitted along with the shared key and the base point (xm,ym)=(xC,yC)−k(xB,yB).
As noted above, the x-coordinate, xm, is represented as an N-bit string. However, not all of the N-bits are used to carry information about the data of the secret message. Assuming that the number of bits of the x-coordinate, xm, that do not carry data is L, then the extra bits L are used to ensure that message data, when embedded into the x-coordinate, will lead to an xm value that satisfies the elliptic curve equation (1). Typically, if the first guess of xm is not on a curve, then the second or third try will be.
Thus, the number of bits used to carry the bits of the message data is (N−L). If the secret data is a K-bit string, then the number of elliptic curve points needed to encrypt the K-bit data is
It is important to note that the y-coordinate, ym, of the message point carries no data bits.
An attack method, referred to as power analysis, exists in which the secret information is decrypted on the basis of leaked information. An attack method in which change in voltage is measured in cryptographic processing using secret information, such as DES (Data Encryption Standard) or the like, such that the process of the cryptographic processing is obtained and the secret information is inferred on the basis of the obtained process, is known.
As one of the measures against power analysis attack on elliptic curve cryptosystems, a method using randomized projective coordinates, is known. This is a measure against an attack method of observing whether a specific value appears or not in scalar multiplication calculations, and inferring a scalar value from the observed result. By multiplication with a random value, the appearance of such a specific value is prevented from being inferred.
In the above-described elliptic curve cryptosystem, attack by power analysis, such as DPA or the like, was not taken into consideration. Therefore, in order to relieve an attack by power analysis, extra calculation has to be carried out using secret information in order to weaken the dependence of the process of the cryptographic processing and the secret information on each other. Thus, time required for the cryptographic processing increases so that cryptographic processing efficiency is lowered.
With the development of information communication networks, cryptographic techniques have been indispensable elements for the concealment or authentication of electronic information. Efficiency in terms of computation time is a necessary consideration, along with the security of the cryptographic techniques. The elliptic curve discrete logarithm problem is so difficult that elliptic curve cryptosystems can make key lengths shorter than that in Rivest-Shamir-Adleman (RSA) cryptosystems, basing their security on the difficulty of factorization into prime factors. Thus, elliptic curve cryptosystems offer comparatively high-speed cryptographic processing with optimal security. However, the processing speed is not always high enough to satisfy smart cards, for example, which have restricted throughput or servers that have to carry out large volumes of cryptographic processing.
The pair of equations for m in Table 1 are referred to as “slope equations”. Computation of a slope equation in finite fields requires one finite field division. Alternatively, the slope computation can be computed using one finite field inversion and one finite field multiplication. Finite field division and finite field inversion are costly in terms of computational time because they require extensive CPU cycles for the manipulation of two elements of a finite field with a large order. Presently, it is commonly accepted that a point-doubling and a point-addition operation each require one inversion, two multiplications, a square, and several additions. At present, there are techniques to compute finite field division and finite field inversion and techniques to trade time-intensive inversions for multiplications through performance of the operations in projective coordinates.
In cases where field inversions are significantly more time intensive than multiplication, it is efficient to utilize projective coordinates. An elliptic curve projective point (X,Y,Z) in conventional projective (or homogeneous) coordinates satisfies the homogeneous Weierstrass equation:
{tilde over (F)}(X,Y,Z)=Y2Z−X3−aXZ2−bZ3=0, (2)
and, when Z≠0, it corresponds to the affine point
Other projective representations lead to more efficient implementations of the group operation, such as the Jacobian representations, where the triplets (X,Y,Z) correspond to the affine coordinates
whenever Z≠0. This is equivalent to using a Jacobian elliptic curve equation that is of the form:
{tilde over (F)}
J(X,Y,Z)=Y2−X3−aXZ4−bZ6=0. (3)
Another commonly used projection is the Chudnovsky-Jacobian coordinate projection. In general terms, the relationship between the affine coordinates and the projection coordinates can be written as
where the values of i and j depend on the choice of the projective coordinates. For example, for homogeneous coordinates, i=1 and j=1.
It is important to note that the group addition rules are defined in the affine coordinates and not in any of the projective coordinates, i.e.,
In other words, the computation of the coordinate values of X3, Y3 and Z3 are based on the equations in Table 1, where the value of Z3 is chosen from the denominator of the equations in Table 1 in order to remove the division operations from the calculations of X3 and Y3.
This implies that the points
lie on the same straight line, while (X1,Y1,Z1), (X2,Y2,Z2) and (X3,−Y3,Z3) do not lie on the same line. Thus, one cannot write (X3,Y3,Z3)=(X1,Y1,Z1)+(X2,Y2,Z2) when the addition operation is defined over the affine coordinate. It should be noted that defining the elliptic curve points as a group over addition is necessary so that the equation given above can be re-written as
It is this group definition that leads to the fact that decryption, as described above, is, in fact, the reciprocal of encryption. The use of projective coordinates circumvents the need for division in the computation of each point addition and each point doubling during the calculation of scalar multiplication. Thus, integer modular division can be avoided in the calculation of a scalar multiplication, such as
when using projective coordinates.
The last addition for the computation of the cipher point
(i.e., the addition of the two points
can also be carried out in the chosen projection coordinate. In other words,
It should be noted that Zm=1.
However, in the above, one division (or one inversion and one multiplication) must still be carried out to calculate
since only the affine x-coordinate of the cipher point xC is sent by the sender.
The use of projective coordinates circumvents the need for division in the computation of each point addition and point doubling during the calculation of scalar multiplication. Thus, finite field division can be avoided in the calculation of a scalar multiplication, such as
when using projective coordinates.
The last addition for the computation of the cipher point
(i.e., the addition of the two points
can also be carried out in the chosen projection coordinate. In other words,
It should be noted that Zm=1.
However, one division (or one inversion and one multiplication) must still be carried out in order to calculate
since only the affine x-coordinate of the cipher point, xC, is sent by the sender. The use of projective coordinates circumvents the need for division in the computation of each point addition and point doubling during the calculation of scalar multiplication. Thus, finite field division can be avoided in the calculation of a scalar multiplication, such as
when using projective coordinates.
Thus, the encryption of (N−L) bits of the secret message using elliptic curve encryption requires at least one division when using projective coordinates. Similarly, the decryption of a single message encrypted using elliptic curve cryptography also requires at least one division when using projective coordinates.
An initial attempt at RSA-analogous elliptic curve cryptography was introduced by Koyama, Maurer, Okamoto and Vanstone (KMOV). In the KMOV scheme, Ep(a,b) represents the curve of y2=x3+ax+b over a finite field p. In this scheme, the value of a in the curve y2=x3+ax+b is always zero. The KMOV methodology is summarized by the following steps.
The receiving correspondent generates its public key by: (a) choosing two large prime numbers p and q such that p=q=2 mod 3 (this condition is established because when p is a prime and p=2 mod 3, for 0<b<p, then Ep(0,b) is a cyclic group of order #Ep(0,b)=p+1); (b) computing n=pq and Nn=lcm(p+1,q+1); (c) choosing an integer e as the public key, such that gcd(e,Nn)=1; and (d) computing the private key d by solving the equation ed=1 mod Nn. At this point, the receiving correspondent has secret keys d and Nn and also public keys n and e;
Encryption is performed by the sending correspondent by: (e) embedding a secret message to be encrypted into an elliptic curve message point (xm,ym); (f) computing multiplication of the scalar e with the message point (xm,ym) to obtain the cipher point (xc,yc) as (xc,yc)=e(xm,ym); and (g) sending the x-coordinate of the cipher point (xc,yc) to the receiving correspondent;
Decryption is then performed by the receiving correspondent by: (h) determining the value of b from xc and yc used in the process of encryption (it should be noted that the value of b does not change); (i) multiplying the scalar d with the cipher point (xc,yc) to obtain the message point (xm,ym) as (xm,ym)=d(xc,yc); and (j) recovering the message data bit string from the message point (xm,ym).
It should be noted that the KMOV scheme can be broken if an eavesdropper knows the order of the elliptic curves used instead of knowing the prime factors of the used prime numbers. Effectively, the attacker can easily obtain d by knowing e and Nn. The difficulty of the problem of obtaining the order of elliptic curve modulo n has not conclusively been proven to be as hard as the difficulty of factoring the composite. In the above, “lcm” represents the least common multiple and “gcd” represents the greatest common denominator operations.
A more advanced RSA-analogous elliptic curve cryptography method was later introduced by Demytko. In the Demytko scheme, Ep(a,b) represents the curve of y2=x3+ax+b over finite field p, while Ēp(a,b) represents the twist of the same curve. It should be noted that it is well know that #Ep(a,b)=p+1+α, where |α|<2√{square root over (p)} and #Ēp(a,b)=p+1−α, where # denotes the order of the group.
The Demytko scheme includes the following steps. The receiving correspondent generates its public key by: (a) choosing two large prime numbers p and q and two values gu and gv, where gu is the non-residue of p and gv is the non-residue of q; (b) choosing a and b such that gcd(4a3+27b2,pq)=1; (c) computing the following values:
N1, which is the order of y2=x3+aX+b over finite field F(p),
N2, which is the order of guy2=x3+ax+b over finite field F(p),
N3, which is the order of y2=x3+aX+b over finite field F(q), and
N4, which is the order of gvy2=x3+ax+b over finite field F(q)
(it should be noted that one only needs the values of N1 and N3, from which values of N2 and N4 can be obtained); (d) choosing an integer e such that gcd(e,N1)=gcd(e,N2)=gcd(e,N3)=gcd(e,N4)=1; and (e) obtaining di for i=1, . . . , 4 by solving the following equations:
ed
1=1 mod lcm(N1,N3)
ed
2=1 mod lcm(N1,N4)
ed
3=1 mod lcm(N2,N3) and
ed
4=1 mod lcm(N2,N4)
where the receiving correspondent has a public key (n,e,a,b) and has four private keys di for i=1, . . . , 4, where n=pq.
Encryption is performed by the sending correspondent by: (f) embedding the message data string to be encrypted into the elliptic curve message point (xm,ym); (g) computing multiplication of the scalar e with the message point (xm,ym) to obtain the cipher point (xc,yc) as (xc,yc)=e(xm,ym); and (h) sending the x-coordinate of the cipher point (xc,yc) to the receiving correspondent;
Decryption is then performed by the receiving correspondent by: (i) after receiving the cipher point message, computing w=xc3+axc+b and selecting i based on the following rules:
where
denotes the Legendre symbol; (j) according to the selection of i, computing a scalar multiplication by multiplying the scalar di with the cipher point (xc,yc) to obtain the message point (xm,ym) as (xm,ym)=di(xc,yc); and (k) recovering the message data string from the message point (xm,ym).
It can be easily shown that the KMOV scheme is a special case of the Demytko scheme with a=0 and with b computed in the ciphertext. Letting Ni=lcm(p+1,q+1) leads directly to the Demytko scheme. In the above, the Legendre symbol is used. The Legendre symbol is generally used to test whether an element of F(p) has a square root or not, i.e., whether an element is quadratic residue or not. The Legendre Symbol and test are as follows. Given an element d of a finite field F(p), the Legendre symbol is defined as
In order to test whether d is quadratic residue or not, the Legendre symbol,
is computed such that:
The two top candidate computationally “hard” problems that have been examined most extensively to date for public key cryptography are the discrete logarithm problem and the integer factorization problem. Rivest-Shamir-Adleman (RSA) public key cryptography is based on the integer factorization problem.
For elliptic curve cryptography, the discrete logarithm problem has generally been the problem of choice. Comparing RSA cryptosystems and elliptic curve cryptosystems, the former requires a larger word length to achieve the same level of security as an elliptic curve cryptosystem. For example, it has been reported that the level of security that is achieved with a word length of 2,048 bits in RSA is equivalent to the level of security that can be achieved with 192 bits in elliptic curve cryptosystems. However, it has also been reported that verification of RSA digital signatures is more efficient than elliptic curve digital signature verification, despite the larger word length. RSA digital signature verification is, therefore, more appropriate for low-power portable devices.
Elliptic curve cryptography based on the discrete logarithm problem has been shown to have many advantages due to its ability to provide the same level of security as RSA while using shorter keys. Its primary disadvantage appears to be its lack of maturity, as mathematicians generally believe that enough research has not yet been performed on the elliptic curve discrete logarithm problem.
The primary advantage of RSA public key cryptosystems over elliptic curve cryptosystems based on the discrete logarithm problem is that only the receiving correspondent needs to have a public key. In other words, a secure communication can take place even if the sending correspondent does not have a public key. Such one-sided public key encryption is advantageous for channel setup and key management.
Elliptic curve cryptography based on the integer factorization problem has not received much interest to date. The most obvious reason for this is that prior known elliptic curve cryptosystems based on integer factorization essentially give no practical advantage over RSA, since both RSA cryptosystems and RSA-analogous elliptic curve cryptosystems are based on an identical factorization problem. In other words, the two systems offer the same level of security for the same pair of prime numbers and for the same group/field orders.
Thus, an RSA-analogous XZ-elliptic curve cryptography system and method solving the aforementioned problems is desired.
The RSA-analogous XZ-elliptic curve cryptography system and method provides for improved secure communication over an insecure channel using elliptic curve cryptography. The method uses two stages of coordinate projections. In the first of the two stages, a projective coordinate is used to embed extra message data bits in the Z-coordinate as well as the X-coordinate. In the second stage, a projective coordinate is used to remove a division operation at each iteration (and also for randomizing the computation) in order to provide a countermeasure against differential power analysis.
The method of performing RSA-analogous XZ-elliptic curve cryptography is based upon the Demytko scheme. In the following, Ep(a,b) represents the curve of Y2=X3+aXZ2+bZ3 over finite field F(p), and Ēp(a,b) represents the twist of the same curve. From the above corollary, #Ep(a,b)=#Ēp(a,b), where # denotes the order of the group. The method of performing RSA-analogous XZ-elliptic curve cryptography includes the following steps.
The receiving correspondent generates its public key by: (a) choosing two substantially large prime numbers p and q and two values gu and gv, where gu is the non-residue of p and gv is the non-residue of q; (b) choosing a and b such that gcd(4a3+27b2,pq)=1; (c) computing the following values:
Encryption is performed by the sending correspondent by: (g) embedding the message data string to be encrypted into an elliptic curve message point (Xm,Ym,Zm); (h) computing multiplication of the scalar e with the message point (Xm,Ym,Zm) to obtain a cipher point (Xc,Yc,Zc) as (Xc,Yc,Zc)=e(Xm,Ym,Zm); and (i) sending the X-coordinate and the Z-coordinate of the cipher point (Xc,Yc,Zc) to the receiving correspondent.
Decryption is then performed by the receiving correspondent by: (j) computing multiplication of the scalar secret key d with the cipher point (Xc,Yc,Zc) to obtain the message point (Xm,Ym,Zm) as (Xm,Ym,Zm)=d(Xc,Yc,Zc); and (k) recovering the message data string from the message point (Xm,Ym,Zm).
It should be noted that in XZ-elliptic curve cryptography, the recovering correspondent has only one private or secret key d, while in the case of the conventional Demytko scheme, a correspondent must have four different private keys. Additionally, in XZ-elliptic curve cryptography, the condition on the public key e is less restrictive, and is simpler in that the public key must satisfy gcd(e,Np)=gcd(e,Nq)=1, compared to the conditions used in the Demytko scheme, where it must satisfy gcd(e,N1)=gcd(e,N2)=gcd(e,N3)=gcd(e,N4)=1.
It should be further noted that the number of bits that can be encrypted in RSA-analogous XZ-elliptic curve cryptography is proportional to the number of points that satisfy the elliptic curve equation Y2=X3+aXZ2+bZ3 defined over F(p,q), which is equal to lcm(Np,Nq), which, in turn, is proportional to 4(p2−1)(q2−1)˜n2. By comparison, the number of bits that can be encrypted using conventional RSA cryptosystems is proportional to n.
In XZ-elliptic curve cryptography, the number of points that satisfy an elliptic curve equation in projective coordinates defined over F(p), and which can be used in a corresponding cryptosystem, is proportional to p2, rather than to p, as in a conventional elliptic curve cryptosystem. Thus, for the same underlying finite field, RSA-analogous XZ-elliptic curve cryptography can encrypt up to 2(N−1) bits, as compared to the N bits that can be encrypted in a conventional RSA cryptosystem, where N is the number of bits needed to represent the elements of the underlying field.
Additionally, RSA-analogous XZ-elliptic curve cryptography requires only one secret key, compared to the four secret keys that are required in the Demytko RSA-analogous elliptic curve cryptography scheme. At the same time, the choice of the public key in the RSA-analogous XZ-elliptic curve cryptography is more flexible than the choice of the public key in the Demytko scheme.
Unlike conventional elliptic curve cryptography based on the discrete logarithm problem, RSA-analogous XZ-elliptic curve cryptography is not weak against side channel attacks at the sending correspondent, and the sending correspondent does not require a public key of its own.
These and other features of the present invention will become readily apparent upon further review of the following specification and drawings.
The sole drawing FIGURE is a block diagram of a system for performing RSA-analogous XZ-elliptic curve cryptography according to the present invention.
The RSA-analogous XZ-elliptic curve cryptography system and method provides for improved secure communication over an insecure channel using elliptic curve cryptography. The method utilizes two stages of coordinate projections. In the first of the two stages, a projective coordinate is used to embed extra message data bits in the Z-coordinate as well as the X-coordinate. In the second stage, a projective coordinate is used to remove a division operation at each iteration (and also for randomizing the computation) in order to provide a countermeasure against differential power analysis.
By “XZ-elliptic curve cryptography”, the inventors refer to a cryptographic system invented by Mohammad K. Ibrahim and described in U.S. Pat. No. 7,379,546, issued May 27, 2008, which is hereby incorporated by reference in its entirety. Conventional elliptic curve cryptography is based on embedding data bits in the z-coordinate of an elliptic curve point only, and hence the inventors refer to conventional elliptic curve cryptography as x-coordinate embedding elliptic curve cryptography (or X-elliptic curve cryptography). The system described in the '546 patent allows embedding data in the X-coordinate and the Z-coordinate (in projective coordinates) of an elliptic curve point, and hence the name XZ-elliptic curve cryptography. The present method describes how an RSA-like protocol, which relies upon the integer factorization problem for its security, may be adapted for use with the XZ-elliptic curve cryptography system described by Ibrahim in the '546 patent.
The method begins by defining a set of elliptic curve points represented in projective coordinates as a group over addition. Given a field F(p), and defining a & b∈F(p), where the symbol ε denotes set membership, EC2 is defined as the set of points (x,y) that satisfy the elliptic curve equation in affine coordinates (i.e., F(x,y)=y2−x3−ax−b=0), where x & y∈F(p), together with a point at infinity.
It is known that using the addition rules defined above for the set of points EC2, the set EC2 forms an abelian group over addition, denoted as (EC2, +). The present method utilizes a projection (X,Y,Z), which is related to the affine coordinates as:
Substitution of equations (5) and (6) into the elliptic curve equation yields:
It should be noted that if F(x,y) is non-singular (i.e., 4a2+27b3≠0), then {tilde over (F)}(X,Y,Z) is also non-singular. In the following, it is assumed that the elliptic curve equations are non-singular.
The set of points EC3 is defined as the triplets (X,Y,Z), where X,Y & Z∈F(p), that satisfy equation (6), along with a point at infinity (X1,Y1,Z1), and excluding the point at the origin (0,0,0). It should be noted that EC3 is in projective coordinates, while EC2 is in affine coordinates. The addition rules for the group (EC2, +) can be adopted to define an additive binary operation, denoted as “+”, over EC3. For all (X1,Y1,Z1)∈EC3 and (X2,Y2,Z2)∈EC3, the sum (X3,Y3,Z3)=(X1,Y1,Z1)+(X2,Y2,Z2) is also (X3,Y3,Z3)∈EC3.
It can be seen that (EC3, +) also forms a group over addition that satisfies the following axioms: (i) There exists (X1,Y1,Z1)∈EC3 such that (X,Y,Z)+(X1,Y1,Z1)=(X,Y,Z) for all (X,Y,Z)∈EC(K3); (ii) for every (X,Y,Z)∈EC3, there exists −(X,Y,Z)∈EC3 such that (X,Y,Z)−(X,Y,Z)=(X1,Y1,Z1); (iii) the additive binary operation is commutative; and (iv) the additive binary operation is associative.
With regard to the addition rules for the group (EC3, +), the addition of two points on an elliptic curve in projective coordinate EC3 is calculated as follows. When a straight line is drawn through two points of EC3, the straight line intersects the elliptic curve in projective coordinates at a third point. The point symmetric to this third intersecting point, with respect to the X-axis, is defined as a point resulting from the addition.
A straight-line equation in projective coordinates is given by:
The basic addition rule can be formulated as follows: Draw the line that joins the two points to be added in the set EC3. Denoting the third point of intersection as (X3′,Y3′,Z3′), the sum point is defined as (X3,Y3,Z3)=(X3′,−Y3′,Z3′). It follows from the above definition that the addition over EC3 is commutative, that is:
(X1,Y1,Z1)+(X2,Y2,Z2)=(X2,Y2,Z2)+(X1,Y1,Z1)
for all (X1,Y1,Z1)∈E(K3) and (X2,Y2,Z2)∈E(K3). This satisfies axiom (iii) above.
There are four main cases that need to be considered for the computation of addition for (EC3, +):
For case (A) where X1≠X2, we have:
Y
3
′=Y
1
+m
y(X3′−X1) (8)
and
Z
3
′=Z
1
+m
z(X3′−X1), (9)
where
Substituting equation (8) for Y3′ and equation (9) for Z3′ into equation (6) yields:
(Y1+my(X−X1))2−X3−aX(Z1+mz(X−X1))2−b(Z1+mz(X−X1))3=0 (12)
Expanding the terms between parentheses and grouping the terms with the same powers of X gives:
X
3
+am
z
2
X
3
+bm
z
3
X
3
−m
y
2
X
2+2amzZ1X2−2amz2X2X1+bmz2Z1X2+2bmz2Z1X2−2bmz3X2X1−bmz3X2X1−2myY1X+2my2XX1+aXZ12−2amzZ1XX1+amz2XX12+2bmzZ12X−2XX1bmz2Z1+bmzXZ12−4bmz2Z1XX1+bmz3XX12+2bmz3XX12−Y12+2myY1X1−my2X12+bZ13−2bmzZ12X1+bX12mz2Z1−bmzX1Z12+2bmz2Z1X12−bmz3X13=0. (13)
In order to solve the above, it is recognized that any cubic equation has three roots, such that
(X−X1)(X−X2)(X−X3′)=0, (14)
and scaling the coefficient of the term X3 to 1 in equation (13), and equating the coefficient of the term X2 in equations (13) and (14), yields:
or
After grouping terms to reduce the number of computations, one obtains:
where
c=1+amz2+bmz3. (18)
Substituting the solution of X3′, which is given in equation (17), into equation (8) yields the solution for Y3′. Similarly, substituting the solution of X3′, which is given in equation (17), into equation (9) produces the solution for Z3′.
For case (B), where X1=X2 and Z1≠Z2, we let Xo=X1=X2. In this case, X3=X1=X2=Xo, since the straight line is in the YZ-plane Xo. Thus, one can write:
Y
3
′=Y
1
+n
y(Z3′−Z1), (19)
where
Substituting equation (19) into equation (6) (and noting that X=X0) yields:
(Y1+ny(Z−Z1))2−Xo3−aXoZ2−bZ3=0. (20)
Expanding the terms between parentheses and grouping the terms with the same powers of Z, one obtains:
In order to solve the above, it is recognized that any cubic equation has three roots, such that:
(Z−Z1)(Z−Z2)(Z−Z3′)=0. (22)
Equating the coefficient of the term Z2 in equations (21) and (22), one obtains:
and substituting the solution of Z3′ into equation (19) produces the solution for Y3′.
For case (C), which involves point doubling, (X1,Y1,Z1)=(X2,Y2,Z2). Letting (Xo,Yo,Zo)=(X1,Y1,Z1)=(X2,Y2,Z2) then (X3,Y3,Z3)=2(Xo,Yo,Zo). Doubling a point on an elliptic curve in projective coordinates can be defined in several ways. In the first case (C.1), when a tangent line in an XT-plane is drawn at a point on an elliptic curve, the tangent line intersects the elliptic curve in the projective coordinates EC3 at another point. The point symmetric to this intersecting point with respect to the X-axis is defined as a point resulting from the doubling. It should be noted that in this case, Z3′=Zo.
In the second case (C.2), when a tangent line in a YZ-plane is drawn at a point on an elliptic curve, the tangent line intersects the elliptic curve in the projective coordinates EC3 at another point. The point symmetric to this intersecting point with respect to the X-axis is defined as a point resulting from the doubling. It should be noted that in this case, X3′=Xo.
In a third case (C.3), some form of a combination of rules (C.1) and (C.2) may be used. The simplest combination is to perform doubling using rule (C.1) followed by another doubling using rule (C.2). Another combination involves using the gradients in (C.1) and (C.2) simultaneously.
For case (C.1), Z3=Z1=Z2=Zo. The gradient of the tangent of the point (Xo,Yo,Zo) of the elliptic curve in projective coordinates in an XY-plane is given by:
Substituting equation (24) for my in the equation for X3′, and noting that mz=0 in this case, one obtains the solution for X3′:
X
3
′=m
y
2
−X
1
−X
2. (25)
One may similarly obtain the solution for Y3′ from case (A) above.
For case (C.2), X3=X1=X2=Xo. The gradient of the tangent of the point (Xo,Yo,Zo) of the elliptic curve in projective coordinates in a YZ-plane is given by:
Substituting equation (26) for ny in equation (23), one obtains a solution for Z3′:
Similarly, substituting the solution of Z3′ into equation (19), one obtains the solution for Y3′.
For case (D), X1=X2 and Z1=Z2. Letting Xo=X1=X2 and Zo=Z1=Z2 allows for substitution of these values directly into equation (6), thus producing a quadratic equation for the r-coordinate:
Y
2
=X
o
3
+aX
o
Z
o
2
+bZ
o
3, (28)
where Yo represents one of the solutions. The other solution must be −Yo.
Therefore, a line perpendicular to the XZ-plane intersects EC3 at only two points: (X,Y,Z) and (X,−Y,Z)∈EC3. This clearly shows the symmetry of EC3 about the X-axis and the Z-axis. Furthermore, every (X,Y,Z)∈EC3 has a unique mirror image point (X,−Y,Z)∈EC3. Thus, since a line joining such pairs (X,Y,Z) and (X,−Y,Z)∈EC3 does not intersect with EC3 at a third finite point, such lines are assumed to intersect with EC3 at the point of infinity (X1,Y1,Z1). This point at infinity is used to define both the inverse of a point in EC3 and the identity point. According to the addition rule defined above, one can write:
(X,Y,Z)+(X,−Y,Z)=(X1,Y1,Z1), (29)
since the third point of intersection of such lines is the point at infinity. This equation therefore defines a unique inverse for any point (X,Y,Z)∈EC3,
−(X,Y,Z)=(X,−Y,Z). (30)
Thus, equation (29) can be written as:
(X,Y,Z)−(X,Y,Z)=(X1,Y1,Z1). (31)
Additionally, a line joining the point at infinity and any point (X,Y,Z)∈EC3 will intersect with EC3 at (X,−Y,Z). Therefore, from the addition rule defined above, one may also write:
(X,Y,Z)+(X1,Y1,Z1)=(X,Y,Z). (32)
Equation (31) satisfies axiom (ii) while equation (32) satisfies axiom (i) of the group (EC3,+).
One way of proving associativity of (EC3,+) is as follows. Given particular elliptic curves (i.e., for particular coefficient's a and b and a finite field F(p), if it can be shown by computation that any point Q∈EC3 can be uniquely written as kQP, where P is the generator point of the group (EC3,+), then EC3 groups based on such curves are associative. The reason for the above is that any three points Q,R,S∈EC3 can be written as kQP,kRP,kSP∈EC3, respectively. Thus, their sum (Q+R+S)=(kQP+kRP+kSP)=(kQ+kR+kS)P can be carried out in any order.
With regard to the second projective coordinate, each of the equations for point addition and point doubling derived for the cases (A), (B) and (C) above require one modular inversion or division. In cases where field inversions or divisions are significantly more expensive than multiplication (in terms of time and computational power), a second projective coordinate is used to remove the requirement for field inversion or division from these equations. As shown below, the number of operations needed for EC3 point doubling and point addition when performed in the second projective coordinate are comparable to those needed in EC2. It should be noted that several projective coordinates can be used. In the present method, the homogenous projection is used as an example:
Using this projection in the elliptic curve equation given by equation (6), one obtains a homogeneous elliptic curve equation:
where an elliptic curve projective point (X,Y,Z,V) using homogenous-projective coordinates satisfies the homogenous elliptic curve equation (36).
When V≠0, the homogenous projected point (X,Y,Z,V) corresponds to the projected point
Using homogenous projective coordinates, the equation for point addition can be written as:
In the following, it is shown how the homogenous projective coordinates can be used to remove the need for modular inversion or division from the equations given above for cases (A), (B) and (C). Starting with case (A), substitution for X, Y and Z in terms of the projective coordinates in equations (33), (34) and (35) into the equation given above for X3′, and noting that c=1+amz2+bmz3, yields:
where
λxv=(X2V1−X1V2) (39)
λyv=(Y2V1−Y1V2) (40)
λzv=(Z2V1−Z1V2) (41)
λxyv=(λxv3+aλxvλzv2+bλzv3) (42)
Letting
V
3
=V
1
V
2λxvλxzv (43)
and substituting equation (43) for V3 in equation (38), one obtains
X
3′=λxvAx3, (44)
where
A
x3={λyv3λxvV2−λzv(2aλxv+3bλzv)(λxvZ1V2−λzvX1V2)−λxzv(V2X1+V1X2)}. (45)
Substituting for X and Y in terms of the projective coordinates in equations (33) and (34) into the equation given above for Y3′, and following simplification, gives:
Substituting equations (43) and (44) for V3 and X3′ into equation (46) produces
Y
3
′=V
2λxvλxzvY1+λyv(Ax3−V2λxzvX1), (47)
and substituting X and Z in terms of the projective coordinates in equations (33) and (35) into the equation given above for Z3′, and following simplification, gives:
Substituting equations (43) and (44) for V3 and X3′ into equation (48) produces
Z
3
′=V
2λxvλxzvZ1+λzv(Ax3−V2λxzvX1). (49)
The number of field operations needed in equations (44), (47) and (49) are 24 multiplications, three squaring operations, and ten addition operations. When using mixed coordinates, the number of multiplications can be reduced to twenty multiplications.
For case (B), substituting X, Y and Z in terms of the heterogeneous projective coordinate into the equation given above for Z3′, and noting that X3=X1=X2=Xo, one obtains:
and letting
V
3
=V
1
2
V
2
2(Z2V1−Z1V2)3, (51)
allows for the substitution of equation (51) for V3 into equation (50), yielding:
where
A
3x={(Y2V1−Y1V2)2−(Z2V12−Z1V22)2(a/bX1V2+Z1V2+Z2V1)}. (53)
Substituting Y and Z in terms of the projective coordinates in equations (40) and (41) into the equation for Y3′ produces:
and substituting equations (51) and (52) for V3 and Z3′ into equation (54) gives
The number of field operations needed in equations (52) and (55) are sixteen multiplication operations, two squaring operations, and seven addition operations.
For case (C.1), substituting X, Y and Z in terms of the projective coordinates in equations (39), (40) and (41) into the equation for X3′ produces
and letting
V
3=8Vo3Yo3 (57)
allows for the substitution of equation (57) into equation (56), yielding:
X
3′=2VoYoD3x, (58)
where
D
3x={(3Xo2+aZo2)2−8VoYo2Xo}. (59)
Substituting X, Y and Z in terms of the projective coordinates in equations in equations (39), (40) and (41) into the equation for Y3′, and using the gradient, produces
and substituting equations (57), (58) and (59) for V3, X3′ and D3x gives:
Y
3′=8Vo2Yo4+3Xo2+aZo2((3Xo2+aZo2)2−12VoYo2Xo). (61)
The number of field operations needed in equations (58) and (61) are six multiplication operations, four squaring operations, and five addition operations.
For case (C.1), substituting X, Y and Z in terms of the projective coordinates in equations (39), (40) and (41) into the equation for Z3′ produces
and letting
V
3=8Vo3Yo3 (63)
allows for the substitution of equation (63) into equation (62), yielding:
Z
3′=2VoYoD3z, (64)
where
and substituting X, Y and Z in terms of the projective coordinate in equations (39), (40) and (41) into the equation for Y3′, and using the gradient, gives:
Substituting equations (63) and (64) for V3 and Z3′ into equation (66) produces
Y
3′=8Vo2Yo3Yo+(2aXoZo+3bZo2)(D3z−4VoYo2Zo). (67)
The number of field operations needed in equations (64) and (67) are ten multiplication operations, three squaring operations, and five addition operations.
The twist of an elliptic curve is defined as follows. Given a particular elliptic curve equation in projective coordinates defined over a finite field F(p), Y2=X3+aXZ2+bZ3, and given certain values for the X-coordinate and Z-coordinate X0 and Z0; respectively, that are elements of the finite field F(p), then substituting these values in the elliptic curve equation in projective coordinates, one obtains a quadratic equation in Y: Y2=Xo3+aXoZo2+bZo3=T.
If the solutions of the above quadratic equation (i.e., Y2=T) are elements of the finite field F(p), then the point (Xo,Y,Zo) is said to satisfy the given elliptic curve equation. If solutions of the above quadratic equation are not elements of the finite field F(p), then the point (Xo,Y,Zo) is said to satisfy the twist of the given elliptic curve equation.
An elliptic polynomial equation of the form given above is isomorphic to its twist if: (1) there are mathematical mappings that can be defined on the values of X and Z (i.e., φX(X), φY(Y) and φZ(Z)) such that any point (X,Y,Z) that satisfies such an elliptic polynomial equation can be mapped into another point (φX(X),φY(Y),φZ(Z)) that satisfies the twist of the same elliptic polynomial equation; and (2) the mapping between the points (X,Y,Z) and (φX(X),φY(Y),φZ(Z)) is unique, i.e., a one-to-one correspondence.
The proof of this theorem is as follows. Letting the right-hand side of Y2=X3+aXZ2+bZ3 be denoted as T, then T=X3+aXZ2+bZ3, where X,Z,T,a & b∈F(p). Thus, any value of X and Z will lead to a value of T∈F(p). T could be quadratic residue or non-quadratic residue. If T is quadratic residue, then the above is written as:
T
q
=X
q
3
+aX
q
Z
q
2
+bZ
q
3, (68)
where Xq & Zq∈F(p) denotes the values of X and Z that result in a quadratic residue value of T, which is hereafter denoted as Tq.
If T is non-quadratic residue, then the above is written as:
T
=X
3
+aX
Z
2
+bZ
3, (69)
where X
Letting g be any non-quadratic residue number in F(p) (i.e., g∈F(p) & √{square root over (g)}∉F(p)), then multiplying the above equation for T with g3 yields:
g
3
T
q
=g
3
X
q
3
+ag
3
X
q
Z
q
2
+bg
3
Z
q
3, (70)
which can be re-written as:
g
3
T
q=(gXq)3+a(gXq)(gZq)2+b(gZq)3. (71)
It should be noted that if g is non-quadratic residue, then g3 is also non-quadratic residue. Further, the result of multiplying a quadratic residue number by a non-quadratic residue number is a non-quadratic residue number. Thus, g*Tq is non-quadratic residue.
By comparing the above equations for T
X
=gX
q; (72)
Z
=gZ
q; and (73)
T
=g
3
T
q. (74)
The mappings between the variables Xq and X
Therefore, for every solution of Tq=Xq3+aXqZq2+bZq3, there is an isomorphic solution that satisfies T
Since Tq is quadratic residue, this expression can be written as:
T
q
=Y
2. (75)
Thus, T
T
=g
3
Y
2. (76)
Using the above, Tq=Xq3+aXqZq2+bZq3 and T
Y
2
=X
q
3
+aX
q
Z
q
2
+bZ
q
3; and (77)
g
3
Y
2
=X
3
+aX
Z
2
+bZ
3. (78)
Since any solution of Tq=Xq3+aXqZq2+bZq3 has an isomorphic solution that satisfies T
(Xq,Y,Zq) leads to the elliptic curve in projective coordinates. Similarly,
leads to its twist in projective coordinates. This proves the above theorem.
An example of a mapping of the solutions of Y2=Xq3+aXqZq2+bZq3 defined over F(p), where p=3 mod 4, to the solutions of its twist is implemented by using −X for the X-coordinate, −Z for the Z-coordinate and, thus, −Y2 for the Y-coordinate.
From the above proof, the following corollary is easily seen. If a twist is isomorphic to its corresponding elliptic curve, the order of the two curves is the same. A second, related theorem is given as follows: The number of points that satisfy an elliptic curve equation in projective coordinates Y2=X3+aXZ2+bZ3, defined over a finite field F(p), is 2(p2−1). This is easily proved as follows: It is well know that the number of points that satisfy an elliptic curve equation in affine coordinates y2=x3+ax+b, defined over a finite field F(p), is p+1+α, where |α|<2√{square root over (p)}, while the number of points that satisfy its corresponding twist is p+1−α. The elliptic curve equation in projective coordinates Y2=X3+aXZ2+bZ3 includes both the points that satisfy the original curve in affine coordinates and its twist. This is due to the effect of the Z-coordinate. Thus, for every value of the Z-coordinate, there are p+1+α+p+1−α=2p+2 points. There are p−1 possible values of Z, thus the total number of points that satisfy the equation Y2=X3+aXZ2+bZ3 is 2(p+1)(p−1)=2(p2−1). This proves the above.
The present method of performing RSA-analogous XZ-elliptic curve cryptography is based upon the Demytko scheme. In the following, Ep(a,b) represents the curve of Y2=X3+aXZ2+bZ3 over finite field F(p), and Ēp(a,b) represents the twist of the same curve. From the above corollary, #Ep(a,b)=#Ēp(a,b), where # denotes the order of the group. The method of performing RSA-analogous XZ-elliptic curve cryptography includes the following steps.
The receiving correspondent generates its public key by the following steps: (a) choosing two substantially large prime numbers p and q and two values gu and gv, where gu is the non-residue of p and gv is the non-residue of q; (b) choosing a and b such that gcd(4a3+27b2,pq)=1; (c) computing the following values:
Encryption is performed by the sending correspondent by the following steps: (g) embedding the message data string to be encrypted into an elliptic curve message point (Xm,Ym,Zm); (h) computing a multiplication of the scalar e with the message point (Xm,Ym,Zm) to obtain a cipher point (Xc,Yc,Zc) as (Xc,Yc,Zc)=e(Xm,Ym,Zm); and (i) sending the X-coordinate and the Z-coordinate of the cipher point (Xc,Yc,Zc) to the receiving correspondent.
Decryption is then performed by the receiving correspondent by the following steps: (j) computing a multiplication of the scalar secret key d with the cipher point (Xc,Yc,Zc) to obtain the message point (Xm,Zm,Zm) as (Xm,Ym,Zm)=d(Xc,Yc,Zc); and (k) recovering the message data string from the message point (Xm,Ym,Zm).
It should be noted that in XZ-elliptic curve cryptography, the recovering correspondent has only one private, or secret, key d, while in the case of the conventional Demytko scheme, a correspondent must have four different private keys. Additionally, in XZ-elliptic curve cryptography, the condition on the public key e is less restrictive and is simpler in that the public key must satisfy gcd(e,Np)=gcd(e,Nq)=1, compared to the conditions used in the Demytko scheme, where it must satisfy gcd(e,N1)=gcd(e,N2)=gcd(e,N3)=gcd(e,N4)=1.
It should be further noted that the number of bits that can be encrypted in RSA-analogous XZ-elliptic curve cryptography is proportional to the number of points that satisfy the elliptic curve equation Y2=X3+aXZ2+bZ3 defined over F(p,q), which is equal to lcm(Np,Nq) and which, in turn, is proportional to 4(p2−1)(q2−1)˜n2. In comparison, the number of bits that can be encrypted using conventional RSA cryptosystems is proportional to n.
The various known schemes used for digital signatures that are based on the representation of the elliptic curve points in affine coordinates can be adopted for EC3 digital signatures as well. This can be achieved either directly, or with some modifications that exploit the X-coordinate and the Z-coordinate of an elliptic curve point when represented in projective coordinates in generating a digital signature.
A conventional elliptic curve digital signature can be basically summarized as follows. The entity that generates a signature has a private key kPr and a public key (xPu,yPu)=kPr(xB,yB). Given a message M, the entity generating the signature performs the following steps: (a) selecting a random integer k, mod p; (b) computing (x1,y1)=k (xB,yB) and converting x1 to an integer r mod p; (c) computing a message digest digest(M), which is a bit string that is dependent upon the message, and converting the bit string into an integer e; (d) computing s=k−1(e+kPrr)mod p; and (e) generating the signature of the message M as (r,s). The signature is then verified at the receiving entity using the following steps: (f) computing a message digest digest(M) and converting the bit string into an integer e; (g) computing u1=es−1 mod p and u2=rs−1 mod p; (h) computing (x2,y2)=u1(xB,yB)+u2(xPu,yPu) and converting x2 into an integer v mod p; and (i) accepting the signature if v=r.
Using X- and Z-coordinates for generating a digital signature, the above elliptic curve digital signature can be modified as follows. The entity that generates a signature has a private key kPr and a public key (XPu,YPu,ZPu)=kPr(XB,YB,ZB). Given a message M, the entity generating the signature performs the following steps: (a) selecting a random integer k, wherein the random integer k is modulo p, wherein p is a selected integer; (b) computing (X1,Y1,Z1)=k(XB,YB,ZB); (c) concatenating bit strings of X1 and Z1 together to form a single string [X1:Z1]; (d) converting the single string [X1:Z1] into an integer r mod p; (e) computing a message digest digest(M), which is a bit string that is dependent upon the message, and converting the bit string into an integer e; (f) computing s=k−1(e+kPrr)mod p; and (g) generating the signature of the message M as (r,s). The signature is then verified at the receiving entity using the following steps: (h) computing a message digest digest(M) and converting the bit string into an integer e; (i) computing u1=es−1 mod p and u2=rs−1 mod p; (j) computing (X2,Y2,Z2)=u1(XB,YB,ZB)+u2(XPu,YPu,ZPu); (k) concatenating bit strings of X2 and Z2 together to form a single string [X2:Z2]; (l) converting the single string [X2:Z2] into an integer v mod p; and (m) accepting the signature if v=r.
In the method of performing RSA-analogous XZ-elliptic curve cryptography, the steps of embedding include the following steps: (a) defining the respective message bit string as an M-bit string, where M is an integer such that (2N−L)>M>(2N−L), L is an integer, N represents a number of bits used to represent F(p) elements, and F(p) represents a finite field containing the elliptic curve set EC3, where p represents a set of points on EC3; (b) dividing the respective message bit string into two strings m1 and m2, where the length of string m1 is less than or equal to (N−L) bits and the length of string m2 is less than or equal to (N−1) bits; (c) assigning the value of the bit string m2 to Rm; (d) using a Legendre test to determine if Rm has a square root, and then, if Rm has a square root, setting Zm=Rm and if Rm does not have a square root, then setting Zm=gRm, where g is non-quadratic residue in F(p); (e) computing aZm2 and bZm3, where a and b are selected scalars; (f) assigning the value of the bit string m1 to Xm; (g) computing a value T as T=Xm3+(aZm2)Xm+(bZm3) and using a Legendre test to determine if T has a square root; and (h) assigning the square root of T to Ym if T has a square root, and incrementally increasing Xm and returning to step (g) if T does not have a square root.
In the above, it should be noted that p is usually predetermined prior to encryption. Thus, the value of g can also be predetermined. When using the embedding method given above, the strings m1 and m2 can be recovered directly from Xm and Zm, respectively. An extra bit is needed to identify whether Rm or gRm is used for Zm at the receiver. Therefore, to encode (N−1) message data bits, one needs to send N bits for the Z values.
Any non-quadratic value in F(p) can be used for g. For efficiency, g is chosen to be −1 for p≡3 mod 4 or when p≡1 mod 4.
At the receiver, the process is reversed. In the case of g=2, a division by 2 is carried out. It should noted that dividing Rm by two is computed using one modulo addition, since: (i) Rm/2=((Rm−(Rm)mod 2)/2)+(Rm)mod 2*(½)mod p; (ii) (Rm)mod 2 is the least significant bit of Rm; and (iii) (½)mod p=(p+1)/2.
The security of the password protocols depends on the security of the underlying elliptic polynomial cryptography. The security of elliptic polynomial cryptosystems is assessed by both the effect on the solution of the elliptic curve discrete logarithmic problem (ECDLP) and power analysis attacks.
For the same underlying finite field, both RSA cryptosystems and RSA-analogous XZ-elliptic curve cryptosystems are based on an identical factorization problem, thus they offer the same level of security. RSA-analogous XZ-elliptic curve cryptography also requires the computation of scalar multiplication. At the sending correspondent, RSA-analogous elliptic curve cryptography does not offer any weakness against power attacks, since the scalar multiplication performed by the sending correspondent involves a public key which does not need to be protected. This is another advantage of RSA-analogous XZ-elliptic curve cryptography over elliptic curve cryptography based on the discrete logarithm problem.
It should be understood that the calculations may be performed by any suitable computer system, such as that diagrammatically shown in the sole drawing FIGURE. Data is entered into system 100 via any suitable type of user interface 116, and may be stored in memory 112, which may be any suitable type of computer readable and programmable memory. Calculations are performed by processor 114, which may be any suitable type of computer processor and may be displayed to the user on display 118, which may be any suitable type of computer display.
Processor 114 may be associated with, or incorporated into, any suitable type of computing device, for example, a personal computer or a programmable logic controller. The display 118, the processor 114, the memory 112 and any associated computer readable recording media are in communication with one another by any suitable type of data bus, as is well known in the art.
Examples of computer-readable recording media include a magnetic recording apparatus, an optical disk, a magneto-optical disk, and/or a semiconductor memory (for example, RAM, ROM, etc.). Examples of magnetic recording apparatus that may be used in addition to memory 112, or in place of memory 112, include a hard disk device (HDD), a flexible disk (FD), and a magnetic tape (MT). Examples of the optical disk include a DVD (Digital Versatile Disc), a DVD-RAM, a CD-ROM (Compact Disc-Read Only Memory), and a CD-R (Recordable)/RW.
It is to be understood that the present invention is not limited to the embodiments described above, but encompasses any and all embodiments within the scope of the following claims.