Claims
- 1. A method for electronically generating a secure key comprising the steps of:
- providing a first private key source for providing a first private key;
- providing a second private key source for providing a second private key;
- generating a first public key in a public key source by performing an elliptic multiplication of said first private key and a point on an elliptic curve;
- generating a second public key in said public key source by performing an elliptic multiplication of said second private key and said point;
- generating an enciphering key in a first elliptic multiplying means by performing an elliptic multiplication of said first private key and said second public key;
- generating a deciphering key in a second elliptic multiplying means by performing an elliptic multiplication of said second private key and said first public key.
- 2. The method of claim 1 wherein said point is a point on an elliptic curve over a finite field F.sub.p k, where p is one of a class of numbers such that mod p arithmetic is performed in a processor using only shift and add operations.
- 3. The method of claim 2 wherein p is given by 2.sup.q -C, where C is a binary number having a length no greater than 32 bits.
- 4. The method of claim 2 wherein p is a Mersenne prime given by 2.sup.q -1.
- 5. The method of claim 2 wherein p is a Fermat number given by 2.sup.q +1 and q is given by 2.sup.m.
- 6. The method of claim 1 wherein said point on said elliptic curve is (X.sub.1, Y.sub.1).
- 7. The method of claim 1 wherein said point on said elliptic curve is (X.sub.1 /Z.sub.1, Y) where Z.sub.1 =1 and n.degree.(X.sub.m /Z.sub.m) is an elliptic multiplication and denotes the coordinate (X.sub.n+m /Z.sub.n+m).
- 8. The method of claim 7 wherein Fast Fourier Transforms are used to compute X.sub.n+m.
- 9. The method of claim 8 where X denotes the Fourier transform of the digits of X, and, X.sub.n, X.sub.m, Z.sub.n, Z.sub.m, and Z.sub.n-m denote the Fourier transforms of the digits of X.sub.n, X.sub.m, Z.sub.n, Z.sub.m, and Z.sub.n-m respectively and;
- X.sub.n+m =Z.sub.n-m (X.sub.n X.sub.m -Z.sub.n Z.sub.m).sup.2.
- 10. The method of claim 1 further including encrypting means coupled to said elliptic multiplying means and receiving a plaintext message from a message source, said encrypting means for generating a ciphertext message using said enciphering key.
- 11. The method of claim 10 further including decrypting means coupled said encrypting means and said second elliptic multiplying means, said decrypting means for receiving said ciphertext message and decoding said plaintext message using said deciphering key.
- 12. The method of claim 1 wherein said first public key is given by
- (first private key).degree.(X.sub.1,Y.sub.1)=first public key
- where
- .degree. is an elliptic multiplication,
- (X.sub.1, Y.sub.1) is a point on an elliptic curve over a finite field F.sub.p k, and
- p=2.sup.q -C.
- 13. The method of claim 12 wherein said second public key is given by:
- (second private key).degree.(X.sub.1, Y.sub.1)=second public key.
- 14. A method for electronically generating a secure key comprising the step of:
- providing a first private key source for providing a first private key;
- providing a second private key source for providing a second private key;
- generating a first public key in a public key source by performing an elliptic multiplication of said first private key and a point, wherein said point is a point on an elliptic curve over a finite field F.sub.p k and p is a Mersenne prime given by 2.sup.q -1 and where mod p operations are performed using only shift and add operations;
- generating a second public key in said public key source by performing an elliptic multiplication of said second private key and said point;
- generating an enciphering key in a first elliptic multiplying means by performing an elliptic multiplication of said first private key and said second public key;
- generating a deciphering key in a second elliptic multiplying means by performing an elliptic multiplication of said private key and said first public key.
- 15. The method of claim 14 wherein said mod p operations are accomplished by:
- shifting q LSB's of a binary number and adding the shifted q LSB's to the remaining q LSB's to generate a sum;
- repeating the previous step on the sum until a sum is generated of q or fewer bits.
- 16. A method for electronically generating a secure key comprising the steps of:
- providing a first private key source for providing a first private key;
- providing a second private key source for providing a second private key;
- generating a first public key in a public key source by performing an elliptic multiplication of said first private key and a point, wherein said point is a point on an elliptic curve over a finite field F.sub.p k and p is a Fermat number given by 2.sup.q +1 and q is given by 2.sup.m and where mod p operations are performed using only shift, multiply and add operations;
- generating a second public key in said public key source by performing an elliptic multiplication of said second private key and said point;
- generating an enciphering key in a first elliptic multiplying means by performing an elliptic multiplication of said first private key and said second public key;
- generating a deciphering key in a second elliptic multiplying means by performing an elliptic multiplication of said second private key and said first public key.
- 17. The method of claim 16 wherein mod p operations are accomplished on a binary number by shifting q bits and alternately subtracting and adding next successive groups of q bits until the resultant has q or fewer bits.
- 18. A method for electronically generating a secure key comprising the steps of:
- providing a first private key source for providing a first private key;
- providing a second private key source for providing a second private key;
- generating a first public key in public key source by performing an elliptic multiplication of said first private key and a point, wherein said point is a point on an elliptic curve over a finite field F.sub.p k and p is given by 2.sup.q -C, where C is a binary number having a length no greater than 32 bits and where mod p operations are performed using only shift, subtract and add operations;
- generating a second public key in said public key source by performing an elliptic multiplication of said second private key and said point;
- generating an enciphering key in a first elliptic multiplying means by performing an elliptic multiplication of said first private key and said second public key;
- generating a deciphering key in a second elliptic multiplying means by performing an elliptic multiplication of said second private key and said first public key.
- 19. The method of claim 18 wherein mod p operations are accomplished by:
- (a) latching q bits of a binary number;
- (b) multiplying the remainder of said binary number by C to generate a product;
- (c) adding said product to said q bits to generate a sum;
- (d) repeating steps (a)-(c) on said sum until q or fewer bits remain.
Parent Case Info
This is a continuation of application Ser. No. 761,276, filed Sep. 17, 1991 now U.S. Pat. No. 5,159,632.
US Referenced Citations (6)
Continuations (1)
|
Number |
Date |
Country |
Parent |
761276 |
Sep 1991 |
|