A method of generating a key by a first correspondent. The key is computable by a second correspondent. The method comprises the steps of:
|
10. A cryptographic unit for generating a shared key in an a Menezes-Qu-Vanstone (MQV) key generation protocol, said cryptographic unit configured for:
a) providing a first short term public key;
b) obtaining a second short term public key;
c) computing a first exponent derived from a first short term private key, said first short term public key, and a first long term private key;
d) computing a second exponent derived from said first short term private key, said first short term public key, a second short term public key, and said first long term private key;
e) computing a simultaneous exponentiation of, by said first exponent with, of said second short term public key and, by said second exponent with, of a second long term public key; and
f) generating said shared key using a result of said simultaneous exponentiation.
18. A non-transitory computer readable medium operable with a cryptographic unit, said computer readable medium having instructions for generating a shared key in an a Menezes-Qu-Vanstone (MQV) key generation protocol, said instructions comprising instructions for:
a) providing a first short term public key;
b) obtaining a second short term public key;
c) computing a first exponent derived from a first short term private key, said first short term public key, and a first long term private key;
d) computing a second exponent derived from said first short term private key, said first short term public key, a second short term public key, and said first long term private key;
e) computing a simultaneous exponentiation of, by said first exponent with, of said second short term public key and, by said second exponent with, of a second long term public key; and
f) generating said shared key using a result of said simultaneous exponentiation.
1. A cryptographic system for generating a shared key in an a Menezes-Qu-Vanstone (MQV) key generation protocol, said system comprising a first correspondent having a first cryptographic unit configured for:
a) making a first short term public key available to a second correspondent over a communication channel;
b) obtaining a second short term public key from said second correspondent;
c) computing a first exponent derived from a first short term private key, said first short term public key, and a first long term private key;
d) computing a second exponent derived from said first short term private key, said first short term public key, a second short term public key, and said first long term private key;
e) computing a first simultaneous exponentiation of, by said first exponent with, of said second short term public key and, by said second exponent with, of a second long term public key; and
f) generating said shared key using a result of said first simultaneous exponentiation.
2. The cryptographic system of
g) making said second short term public key available to said first correspondent over said communication channel;
h) obtaining said first short term public key from said first correspondent;
i) computing a one exponent derived from a second short term private key, said second short term public key, and a second long term private key;
j) computing another exponent derived from said second short term private key, said second short term public key, said second long term private key, and said first short term public key;
k) computing a second simultaneous exponentiation of, by said one exponent with, of said first short term public key and, by said another exponent with, of a first long term public key; and
l) generating said shared key using a result of said second simultaneous exponentiation.
3. The cryptographic system of
4. The cryptographic system of
establishing a window of width w;
establishing a table of small exponentiations of said second short term public key, and a table of small exponentiations of said second long term public key to provide a series of potential exponentiations representing said first and second exponents; and
examining said tables using said window w until said shared key is computed.
5. The cryptographic system of
6. The cryptographic system of
storing values of said first and second exponents in first and second registers respectively, each register having an associated pointer;
using said pointers to selectively accumulate and multiply corresponding values stored in said registers; and
repeatedly multiplying said values until said shared key is computed.
7. The cryptographic system of
8. The cryptographic system of
9. The cryptographic system of
11. The cryptographic unit of
12. The cryptographic unit of
establishing a window of width w;
establishing a table of small exponentiations of said second short term public key, and a table of small exponentiations of said second long term public key to provide a series of potential exponentiations representing said first and second exponents; and
examining said tables using said window w until said shared key is computed.
13. The cryptographic unit of
14. The cryptographic unit of
storing values of said first and second exponents in first and second registers respectively, each register having an associated pointer;
using said pointers to selectively accumulate and multiply corresponding values stored in said registers; and
repeatedly multiplying said values until said shared key is computed.
15. The cryptographic unit of
16. The cryptographic unit of
17. The cryptographic unit of
19. The computer readable medium of
establishing a window of width w;
establishing a table of small exponentiations of said second short term public key, and a table of small exponentiations of said second long term public key to provide a series of potential exponentiations representing said first and second exponents; and
examining said tables using said window w until said shared key is computed.
20. The computer readable medium of
storing values of said first and second exponents in first and second registers respectively, each register having an associated pointer;
using said pointers to selectively accumulate and multiply corresponding values stored in said registers; and
repeatedly multiplying said values until said shared key is computed.
|
Referring to
It is desired to share a key between the correspondents using the MQV protocol. It is recognized that the MQV equations can be reorganized to provide efficient computations without necessarily using the truncation operation. The reorganization proceeds as follows.
The formula K=(RB(YB)R
To compute the multiple K=RBs
Referring to
Referring
It will be noted that in this embodiment one simultaneous multiple exponentiation is used instead of two separate exponentiations. Accordingly, the number of squaring operations required corresponds to the number required for one exponentiation instead of that required for two separate exponentiations. It will be recognized that using the method of this embodiment, truncating the first exponent in an attempt to save squarings is not effective, since these squaring can be shared with the second multiplication. The truncation then saves only multiplications, not squarings, when applied to this embodiment since this embodiment uses simultaneous multiple exponentiation.
Referring to
Referring to
Referring to
In use, the pointer 603 is an input to the switch 606 which controls multiplier 610 so that when the corresponding bit of sA is set, the quantity RB is multiplied into the accumulator 514. Similarly, the pointer 605 is an input to the switch 608 which operates the multiplier 612. The quantity YB is multiplied into the accumulator 614 when the corresponding bit of register 604 is set. After considering each exponent, the accumulator is squared 616, and the control 618 operates to set the pointers 603, 605 to the next bits of registers 602, 604. The process repeats until all the bits have been considered. In this way, the bits of the two exponents are considered simultaneously, and only one set of squares is performed.
The above methods can be implemented in any group where the discrete logarithm problem is believed to be intractable. One example of such a group is an elliptic curve group, where the method is very similar however, the additive notation is usually used instead of multiplicative notation. In the elliptic curve setting, group multiplication corresponds to addition of elliptic curve points, and group exponentiation corresponds to scalar multiplication. In this case, the tables will contain a column possible bit combinations of the scalar (e.g. 10012), and a column of corresponding point multiplications (e.g. 10012P).
Referring therefore to
Referring to
Although the invention has been described with reference to certain specific embodiments, various modifications thereof will be apparent to those skilled in the art without departing from the spirit and scope of the invention as outlined in the claims appended hereto.
Vadekar, Ashok, Lambert, Robert
Patent | Priority | Assignee | Title |
8693684, | Dec 31 2001 | Malikie Innovations Limited | Method and apparatus for computing a shared secret key |
Patent | Priority | Assignee | Title |
5761305, | Apr 21 1995 | Malikie Innovations Limited | Key agreement and transport protocol with implicit signatures |
5889865, | May 17 1995 | Malikie Innovations Limited | Key agreement and transport protocol with implicit signatures |
5896455, | May 17 1995 | Malikie Innovations Limited | Key agreement and transport protocol with implicit signatures |
5987131, | Aug 18 1997 | Polycom, Inc | Cryptographic key exchange using pre-computation |
5999627, | Jan 07 1995 | SAMSUNG ELECTRONICS CO , LTD | Method for exponentiation in a public-key cryptosystem |
6122736, | Apr 21 1995 | Malikie Innovations Limited | Key agreement and transport protocol with implicit signatures |
6490352, | Mar 05 1999 | Cryptographic elliptic curve apparatus and method | |
7051200, | Jun 27 2000 | Microsoft Technology Licensing, LLC | System and method for interfacing a software process to secure repositories |
7062044, | Jun 28 2002 | The United States of America as represented by The National Security Agency; National Security Agency | Method of elliptic curve cryptographic key agreement using coefficient splitting |
7127063, | Dec 31 2001 | Malikie Innovations Limited | Method and apparatus for computing a shared secret key |
7215780, | Dec 31 2001 | Malikie Innovations Limited | Method and apparatus for elliptic curve scalar multiplication |
20020044649, | |||
20030123655, | |||
20050251680, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 16 2001 | LAMBERT, ROBERT J | Certicom Corp | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 026366 | /0344 | |
Apr 16 2001 | VADEKAR, ASHOK | Certicom Corp | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 026366 | /0344 | |
Mar 30 2011 | Certicom Corp. | (assignment on the face of the patent) | / | |||
Sep 30 2019 | Certicom Corp | BlackBerry Limited | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 050610 | /0937 | |
May 11 2023 | BlackBerry Limited | Malikie Innovations Limited | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 064104 | /0103 |
Date | Maintenance Fee Events |
Sep 30 2016 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Sep 30 2020 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Nov 06 2015 | 4 years fee payment window open |
May 06 2016 | 6 months grace period start (w surcharge) |
Nov 06 2016 | patent expiry (for year 4) |
Nov 06 2018 | 2 years to revive unintentionally abandoned end. (for year 4) |
Nov 06 2019 | 8 years fee payment window open |
May 06 2020 | 6 months grace period start (w surcharge) |
Nov 06 2020 | patent expiry (for year 8) |
Nov 06 2022 | 2 years to revive unintentionally abandoned end. (for year 8) |
Nov 06 2023 | 12 years fee payment window open |
May 06 2024 | 6 months grace period start (w surcharge) |
Nov 06 2024 | patent expiry (for year 12) |
Nov 06 2026 | 2 years to revive unintentionally abandoned end. (for year 12) |