Cryptographic method5627893Abstract A cryptographic method including selecting secret keys p and q, being prime numbers greater than 3, selecting public parameters for a series of data values which belong to one of a plurality of pairs of groups whereby any one of the data values in one of the pairs of groups is recovered by performing an operation kN.sub.i +1 times modulo n beginning with the any one of the data values, where k is an integer, N.sub.i is the order of the ith pair of groups and n=p.q, selecting a public encryption key e which is a factor of kN.sub.i +1 for all i, and processing communications data as a member of one of the pairs of groups by performing the operation on the communications data, whereby the order N.sub.i of the pair of groups i that the communications data belongs to can be determined on the basis of p and q, and a secret decryption key d.sub.i can be determined using e.d.sub.i =kN.sub.i +1. Claims I claim: Description The present invention relates to cryptology and, in particular, to a cryptographic method which can be used for public key encryption and to produce digital signatures.
______________________________________
(0,2), (1,2), (2,0), (4,2),
(0,3), (1,3), (4,3), and .infin.
If (x.sub.1, y.sub.1) = (0, 2), then
(x.sub.2,
= (0, 2) + (0, 2)
.lambda. = (3 .times. 0 - 1) .times. 4
= 1 (mod 5),
y.sub.2) x.sub.2 = 1 - 0 - 0
= 1 (mod 5),
-y.sub.2 = 1 .times. (1 - 0) + 2
= 3 (mod 5),
= (1, 2);
(x.sub.3,
= (1, 2) + (0, 2)
.lambda. = (2 - 2) .times. 1
= 0 (mod 5),
y.sub.3) x.sub.3 = 0 - 1 - 0
= 4 (mod 5),
-y.sub.3 = 0 .times. (4 - 0) + 2
= 2 (mod 5),
= (4, 3);
(x.sub.4,
= (4, 3) + (0, 2)
.lambda. = (3 - 2) .times. 4
= 4 (mod 5),
y.sub.4) x.sub.4 = 16 - 4 - 0
= 2 (mod 5),
-y.sub.4 = 4 .times. (2 - 0) + 2
= 0 (mod 5),
= (2, 0);
(x.sub.5,
= (2, 0) + (0, 2)
.lambda. = (0 - 2) .times. 3
= 4 (mod 5),
y.sub.5) x.sub.5 = 16 - 2 - 0
= 4 (mod 5),
-y.sub.5 = 4 .times. (4 - 0) + 2
= 3 (mod 5),
= (4, 2);
(x.sub.6,
= (4, 2) + (0, 2)
.lambda. = (2 - 2) .times. 4
= 0 (mod 5),
y.sub.6) x.sub.6 = 0 - 4 - 0
= 1 (mod 5),
-y.sub.6 = 0 .times. (1 - 0) + 2
= 2 (mod 5),
= (1, 3);
(x.sub.7,
= (1, 3) + (0, 2)
.lambda. = (3 - 2) .times. 1
= 1 (mod 5),
y.sub.7) x.sub.7 = 1 - 1 - 0
= 0 (mod 5),
-y.sub.7 = 1 .times. (0 - 0) + 2
= 2 (mod 5),
= (0, 3);
(x.sub.8,
= (0, 3) + (0, 2) = .infin..
y.sub.8)
______________________________________
A practical technique for computing the order of an elliptic group modulo p for large p is discussed in A.K. Lenstra and H.W. Lenstra, Jnr., "Algorithms in Number Theory", University of Chicago, Department of Computer Science, Technical Report #87-008, 1987. Two particular cases using the technique are discussed in D. M. Bressoud, Factorisation and Primality Testing, Springer-Verlag, N.Y., 1989 and are as follows. The equations for the orders used in the two cases were proved by a mathematician, Andre Well in 1952. In the first case, if p is an ordinary prime which is congruent to 1 modulo 4, r is a complex prime that divides p and is congruent to 1 modulo 2+2i, and D is any integer not divisible by p then the order of E.sub.p (-D,0) is ##STR1## where (x/r).sub.4 is the fourth power symbol and r is the conjugate of the complex integer r. For example, if p=13 and r=3+2i, then .vertline.E.sub.13 (-1,0).vertline.=14-(1)(3+2i)-(1)(3-2i)=8 .vertline.E.sub.13 (1,0).vertline.=14-(-1)(3+2i)-(-1)(3-2i)=20 .vertline.E.sub.13 (-2,0).vertline.=14-(i)(3+2i)-(-i)(3-2i)=18 E.sub.13 (2,0).vertline.=14-(-i)(3+2i)-(i)(3-2i)=10 In the second case, if p is an ordinary prime which is congruent to 1 modulo 3, r is a cubic prime that divides p and is congruent to 2 modulo 3 and D is any integer not divisible by p then the order of E.sub.p (0,D) is ##STR2## where (x.vertline.r).sub.6 is the sixth power symbol and r is the conjugate of the cubic integer r. For example, if p=13 and r=-4-3.omega., where .omega.=e.sup.2xi/3, then .vertline.E.sub.13 (0,1).vertline.=14+(.omega..sup.2)(-4-3.omega.)+(.omega.)(-1+3.omega.)=12 .vertline.E.sub.13 (0.2).vertline.=14+(-1)(-4-3.omega.)+(-1)(-1+3.omega.)=19 .vertline.E.sub.13 (0,3).vertline.=14+(1)(-4-3.omega.)+(1)(-1+3.omega.)=9 .vertline.E.sub.13 (0,4).vertline.=14+(.omega.)(-4-3.omega.)+(.omega..sup.2)(-1+3.omega.)=21 .vertline.E.sub.13 (0,5).vertline.=14+(-.omega..sup.2)(-4-3.omega.)+(-.omega.)-1+3.omega.)=16 .vertline.E.sub.13 (0,6).vertline.=14+(-.omega.)(-4-3.omega.)+(-.omega..sup.2)(-1+3.omega.)=7 It has also been shown that for every elliptic curve of Equation 11 ##EQU5## The above illustrates that the order of the group E.sub.p (a,b) can be determined. For the group Ep(a,b), the following applies (x.sub.1, y.sub.1)#{p+1+.alpha.}(mod p)=.infin. (21) and therefore (x.sub.1,y.sub.1)#{m(p+1+.alpha.).+-.1}(mod p)=(x.sub.1,.+-.y.sub.1) (22) where m is an arbitrary integer. Equation 22 includes a .+-. value as the group E.sub.p (a,b) is symmetrical about .infin. because 1 point past .infin., (x.sub.1,y.sub.1) is obtained, whereas one point short of .infin., (x.sub.1,-y.sub.1) is obtained, and only the plaintext x.sub.1 is of interest. The term in { } of Equation 22 can be considered to be equal to e.d, where e constitutes an encryption key and d constitutes a decryption key. Therefore for encryption of a message or plaintext which has a value x.sub.1 that is a coordinate of the point (x.sub.1, y.sub.1) on the elliptic curve, the following encryption operation can be performed (x.sub.e, y.sub.e).ident.(x.sub.1,y.sub.1)#e(mod p) (23) The ciphertext x.sub.e can then be decrypted using (x.sub.1,y.sub.1).ident.(x.sub.e,y.sub.e)#d(mod p) (24) Also to apply a digital signature to the plaintext the following operation is executed (x.sub.d,y.sub.d).ident.(x.sub.1,y.sub.1)#d(mod p) (25) and then the signature can be validated by executing the following (x.sub.1, y.sub.1).ident.(x.sub.d,y.sub.d)#e(mod p) (26) Once the prime p is selected and the order of the group E.sub.p (a,b) is known, e is randomly selected and d can be determined according to the Equation 22 from the following e.d.ident..+-.1mod(p+1+.alpha.) (27) The same also applies for a group E.sub.q (a,b) based on another large prime q such that (x.sub.1,y.sub.1)#{k(q+1+.beta.)+1}(mod q)=(x.sub.1,y.sub.1) (28) where q+1+.beta. is the order N.sub.q of the group E.sub.q (a,b), k is an arbitrary integer, and .vertline..beta..vertline..ltoreq.2.sqroot.q. The points on E.sub.a (a,b), where n=p.q, can each be represented uniquely by a pair of the points of E.sub.p (a,b) and E.sub.q (a,b), according to the Chinese Remainder Theorem (CRT) for modulo arithmetic, therefore the encryption and decryption schemes of Equations 23 to 26 can be performed in modulo n, where n is made public and p and q are kept secret. Again, once e is selected d is then determined using e.d.ident..+-.1mod(N.sub.a) (29) where N.sub.a .ident.N.sub.p N.sub.q or N.sub.a =1cm(N.sub.p N.sub.q) can only be determined if p and q are known, which enables N.sub.p and N.sub.q to be determined as shown previously. Encryption and digital encryption schemes which use specific elliptic curve groups are discussed in K. Koyama, U. M. Maurer, T. Okamoto and S. A. Vanstone, "New Public-Key Schemes based on Elliptic Curves over the Ring Zn", CRYPTO '91 Abstracts, Santa Barbara, Calif., pp. 6-1 to 6-7, 11-15 August, 1991. One of the schemes can be only used for digital signatures as both p and q need to be known to find a point on E.sub.a (a,b) which corresponds to the plaintext, because a square root modulo n needs to be found for z.ident.y.sup.z =(mod n). Also the plaintext generally needs to be incremented to find a value of x, representing the plaintext, which gives a z that is a quadratic residue modulo n. This can be a time consuming process as many values may have to be tried before a valid value can be found. The signature used in the scheme is also approximately twice as long as the original plaintext or message data. For the encryption schemes proposed in the paper, only odd primes can be used for p and q which satisfy p.ident.q.ident.2 (mod 3) or p.ident.q.ident.3 (mod 4). This restricts the orders of the groups used to p+1 and q+1, which cannot be changed. The schemes do not allow for use of general elliptic groups E.sub.p (a,b) and E.sub.q (a,b) for which the order of these groups can be determined. Also both coordinates (x,y) need to be specified during the encryption process and sent to a receiver. This enables the sender and receiver to determine the curve on which the encryption process is operating, as the curve used is not the same for each message, because the constraints discussed above require a curve and message to be fitted to one another for each message. The preferred embodiment of the present invention provides a cryptographic method which fixes the curve used by allowing the plaintext x to represent a coordinate of a point (x,y) where y is indeterminant for the field of the curve for non-negative integer values of x. This first requires the creation and definition of a complimentary group, as discussed below, for the elliptic curve modulo p. For the complimentary group, p is a prime, greater than 3, and again, a and b are chosen so that Equation 10 holds. The group is denoted by E.sub.p (a,b) and its elements (x,y) satisfy Equation 11 but y is indeterminant for non-negative integer values of x. The indeterminant coordinate y is considered to be of the form y=u.sqroot.v where u is a non-negative integer less than p and v is a fixed quadratic non-residue modulo p. The identity element .infin. and the addition operation are identical to those described previously for the standard group E.sub.p (a,b). In the complimentary group if P=(x.sub.1,y.sub.1)=(x.sub.1, u.sub.1 .sqroot.v) and /Q=(x.sub.2, y.sub.2)=(x.sub.2, u.sub.2 .sqroot.v) are two elements in the group, then R=(x.sub.3,y.sub.3)=(x.sub.3, u.sub.3 .sqroot.v) is also in the group, i.e., (x.sub.1,y.sub.1)+(x.sub.2,y.sub.2).ident.(x.sub.3,y.sub.3) (mod p), (30) where, if x.sub.1 .noteq.x.sub.2 (mod p), ##EQU6## or, if x.sub.1 .ident.x.sub.2 and y.sub.1 .noteq.-y.sub.2 (mod p), ##EQU7## This demonstrates the closure property of the group in that a point (x.sub.3,y.sub.3) in the group can be obtained from addition of two other points (x.sub.1, y.sub.1) and (x.sub.2, y.sub.2) in the group. It also can be shown that other group axioms hold for the complementary group. The order of the complementary group is given by ##EQU8## where (z.vertline.p) is the Legendre symbol and z.noteq.x.sup.3 +ax+b (mod p). Equation 35 follows because, for the complementary group, in addition to the point at infinity, for a given value of x: 1. There are two values of y that correspond to that value of x, if z is a quadratic non-residue modulo p; 2. There is one value of y that corresponds to that value of x, if z.noteq.0 modulo p; and 3. There are no values of y that correspond to that value of x, if z is a quadratic residue. If there are A values of x for which (z.vertline.p)=1, B values of x for which (z.vertline.p)=0 and C values of x for which (z.vertline.P)=-1 then, since x must be one of p possible values, because there arc only p values of x which produce unique values of z. A+B+C=p (36) From Equations 16 and 20 .vertline.E.sub.p (a,b).vertline.=1+2A+B=1+p+.alpha., (37) 2A+B=p+.alpha. (38) Consequently, from Equations 35, 36 and 38, .vertline.E.sub.p (a,b).vertline.=1+2C+B=1+2p-(2A+B)=1+p-.alpha.(39) This establishes the order of the complementary group .vertline.E.sub.p (a,b).vertline. in terms of the parameters of the order of the standard group .vertline.E.sub.p (a,b).vertline.. A similar expression also holds for another large prime q. An encryption method can therefore be established using a fixed curve and obtaining points on the curve which may be in, for modulo n operations, one of four pairs of groups, the standard groups for both p and q, the complimentary groups for both p and q, the standard group for p and the complimentary group for q, or the standard group for q and the complimentary group for p. The two primes, p and q are randomly selected, together with parameters a and b which define the elliptic curve. The arithmetic modulus n=p.q is calculated, gcd (4a.sup.3 +27b.sup.2, n)=1 is checked, and the order of the groups for primes p and q are as follows .vertline.E.sub.p (a,b).vertline.=1+p+.alpha.,.vertline.E.sub.q (a,b).vertline.=1+p-.alpha., .vertline.E.sub.q (a,b).vertline.=1+q+.beta. and .vertline.Eq(a,b).vertline.=1+q-.beta.. The orders of these groups can then be calculated as discussed previously. The plaintext is represented by x and s represents the ciphertext, where 0.ltoreq.x, s.ltoreq.n-1. Encryption is performed according to the following (s,t).ident.(x,y)#e(mod n) (40) and decryption is performed by (x,y).ident.(s,t)#d.sub.i (mod n) (41) where e.d.sub.i.ident..+-. 1(mod N.sub.i),i=1 to 4, (42) gcd(e, N.sub.i)=1, i=1 to 4, (43) ##EQU9## The values of N.sub.i are determined by finding the lowest common multiple (1 cm) of the orders of the respective p and q groups. The encryption key e is randomly selected with the only qualification that the greatest common denominator of e and N.sub.i, is 1. The parameters n, a, b and the encryption key e are made available to the public so that any plaintext x can be encrypted, whereas the decryption keys d.sub.i and the primes p and q are kept secret. The ciphertext s can only be decrypted by first using the Legendre symbols (w.vertline.p) and (w.vertline.q) to determine which pair of groups the ciphertext (s,t) is a member. Once this is determined, the appropriate N.sub.i can be used to determine the correct encryption key d.sub.i to be used which is derived using e.d.sub.i.ident..+-. 1 (mod N.sub.i). If p, q, a and b are chosen so that .alpha.=.beta.=0 in Equations 44 to 47, then N.sub.i =1 cm (p+1,q+1) is constant for all i=1 to 4. Consequently only one value of d.sub.i needs to be calculated and decryption is independent of Legendre symbols (w/p) and (w/q). The decryption time can be reduced, by a factor of approximately 4, by performing the operation of Equation 41 in modulo p and modulo q and then combining the results using the Chinese Remainder Theorem. The security of the scheme relies primarily on the inherent difficulty in factoring p and q from n which are required to derive appropriate decryption keys d.sub.i, but the security is also enhanced by the fact that it is difficult to determine where the point (s,t) is on the elliptic curve and to which group it belongs because only the first coordinate s is calculated and transmitted. Computation of the second coordinates y and t can also be avoided using the doubling algorithms discussed in D. M. Bressoud, Factorisation and Primality Testing, Springer-Verlag, New York, 1989. The algorithms are as follows. In the elliptic group E.sub.p (a,b) (or E.sub.p (a,b)), let (x.sub.i,y.sub.i).ident.(x,y)#i (mod p). If y.sub.i .noteq.0 (mod p), then ##EQU10## In addition, if x.sub.i .noteq.x.sub.i+1 and x.noteq.0 (mod p), then ##EQU11## Equation 53 cannot be used if x.ident.0 modulo p (or q). However, the equation can be rearranged to give ##EQU12## which is valid for all 0.ltoreq.x.ltoreq.p-1 (and consequently for all 0.ltoreq.x.ltoreq.n-1 when computations are performed modulo n). The Equations 52 to 54 do not determine all of the points within an elliptic group but enable a sufficient number of the points to be derived to obtain the coordinate s dictated by the encryption key e. It can be shown that x.sub.i is never congruent to x.sub.i+1 modulo p (or q) during the course of computing s.ident.x.sub.e modulo n, as given by Equation 40. Similarly s.sub.i is never congruent to s.sub.i+1 modulo p (or q) during the course of computing Equation 41. However, it is possible (although extremely unlikely) that y.sub.i may become congruent to 0 modulo p (or q) during the course of computations and therefore for Equation 52 to become undefined. However, homogeneous coordinates can be used which enable division to be avoided until the final stage of the encryption or decryption procedure. Homogeneous coordinates are formed by setting x.ident.X/Z (mod p) and y.ident.Y/Z (mod p). If (x.sub.i,y.sub.i,.ident.(X.sub.i /Z.sub.i, Y.sub.i,Z.sub.i).ident.(X/Z, Y/Z)#i (mod p), Equations 52 and 54 can be restated in the following form using modulo n arithmetic. X.sub.2i .ident.(X.sub.i.sup.2 -aZ.sub.i.sup.2).sup.2 -8bX.sub.i Z.sub.i.sup.3 l (mod n) (55) X.sub.2i .ident.4Z.sub.i (X.sub.i.sup.3 +aX.sub.i Z.sub.i.sup.2 +bZ.sub.i.sup.3)(mod n) (56) X.sub.2i+1 .ident.Z[4bZ.sub.i.sup.2 Z.sub.i+1.sup.2 +2(aZ.sub.i Z.sub.i+1 +X.sub.i X.sub.i+1) (X.sub.i Z.sub.i+1 +X.sub.i+1 Z.sub.i)](57) -X(x.sub.i Z.sub.i+1 -X.sub.i+1 Z.sub.i).sup.2 (mod n) Z.sub.2i+1 .ident.Z(X.sub.i Z.sub.i+1 -X.sub.i+1 Z.sub.i).sup.2 (mod n) (58) Using the homogeneous coordinate notation discussed above, the encryption and decryption procedures can be restated as follows s.ident.x.sub.e .ident.X.sub.e /Z.sub.e (mod n) (59) where X=x and Z=1, and x.ident.s.sub.di .ident.S.sub.di /Z.sub.di (mod n) (60) where S=s, Z=1 and d.sub.i is as defined by Equations 42 to 51. The above encryption method can be equally applied to producing digital by using the decryption key d.sub.i to produce the signatures as follows s.ident.X.sub.di /Z.sub.di (mod n) (61) where X=x is the message or plaintext, Z=1 and d.sub.i is as defined by Equations 42 to 51 with z-x.sup.3 +ax+b (mod n) replacing w in Equations 44 to 47. Signature verification is performed by computing: x.ident.S.sub.e /Z.sub.e (mod n) (62) where S=s and Z=1. The cryptographic method discussed above can also be applied to other number systems, such as Lucas sequences, that can be divided into similar pairs of cyclic groups where operations can be performed on the members of a pair of groups so as to generate members of the pair of groups from one member, including the initially selected member. The cryptographic method discussed above has a number of significant advantages over previous methods, such as: (i) The method can be used for both digital signature and encryption applications. (ii) The message data does not need to be extended, i.e., the ciphertext and the plaintext are the same bit length. (iii) Only the first coordinates of points on the elliptic curve need to be determined. (iv) The method can be used for any values of p and q, greater than 3, and any values of a and b for which the order of the elliptic groups can be determined, provided gcd (4a.sup.3 +27b.sup.2, n)=1. (v) The parameters a and b remain fixed and are publicly known, therefore they do not have to be determined or calculated at either the sending or receiving terminals. (vi) The method appears to be immune from homomorphic attack, i.e., new signatures cannot be created from a database of previously used signatures, one reason being that the second coordinate of the points on the elliptic curve are never calculated and it is difficult to add the first coordinates of two arbitrary points without knowing the corresponding second coordinates. Second coordinates can only be determined if p and q are known.
|
Same subclass Same class |
||||||||||
