Method of generating cryptographic key pairs
First Claim
1. A method for generating cryptographic key pairs in public key cryptography, the method comprising:
- A hardware Processor;
randomly generating a table having a plurality of table entries, each table entry comprising a plurality of group elements, each group element in a table entry of the plurality of table entries having a same discrete logarithm to a corresponding base, the corresponding bases of the discrete logarithms being the same for each table entry;
randomly selecting table entries from the plurality of table entries;
computing intermediate table entries from combinations of the selected table entries, each intermediate group element in an intermediate table entry having a same discrete logarithm to a corresponding base, and the corresponding bases of the discrete logarithms of the intermediate group elements being the same as for the table entries;
replacing the selected table entries with randomly selected intermediate table entries to produce an updated table; and
randomly selecting a table entry of the updated table and providing it as a cryptographic key pair, wherein a batch of cryptographic key pairs are generated, and wherein the updated table is transformed using simultaneous inversions of Z-components for point-coordinate transformations.
1 Assignment
0 Petitions
Accused Products
Abstract
A method is provided for performing elliptic curve cryptography that reduces the number of required computations to produce, for example, a key pair. The number of computations is reduced by changing how a random nonce used in the computations is selected. In an embodiment, a look-up table is generated having pre-computed scalar values and elliptic curve points. Every time a new pseudo-random value is created for use in the ECDSA, a combination of the look-up table values is used to create multiple intermediate values. One of the multiple intermediate values is randomly chosen as a replacement value for one of the existing table entries. Each time the look-up table is used, multiple entries in the look-up table are updated to new look-up table values as described. In this manner, new randomness is provided in every step to generate the next pseudo-random nonce as a combination of multiple internally stored temporary look-up table values. Alternately, another mathematical group may be used.
44 Citations
16 Claims
-
1. A method for generating cryptographic key pairs in public key cryptography, the method comprising:
-
A hardware Processor; randomly generating a table having a plurality of table entries, each table entry comprising a plurality of group elements, each group element in a table entry of the plurality of table entries having a same discrete logarithm to a corresponding base, the corresponding bases of the discrete logarithms being the same for each table entry; randomly selecting table entries from the plurality of table entries; computing intermediate table entries from combinations of the selected table entries, each intermediate group element in an intermediate table entry having a same discrete logarithm to a corresponding base, and the corresponding bases of the discrete logarithms of the intermediate group elements being the same as for the table entries; replacing the selected table entries with randomly selected intermediate table entries to produce an updated table; and randomly selecting a table entry of the updated table and providing it as a cryptographic key pair, wherein a batch of cryptographic key pairs are generated, and wherein the updated table is transformed using simultaneous inversions of Z-components for point-coordinate transformations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory machine-readable medium having instructions for generating cryptographic key pairs in public key cryptography, the non-transitory machine-readable medium comprising:
-
instructions for randomly generating a table having a plurality of table entries, each table entry comprising a plurality of group elements, each group element in a table entry of the plurality of table entries having a same discrete logarithm to a corresponding base, the corresponding bases of the discrete logarithms being the same for each table entry; instructions for randomly selecting table entries from the plurality of table entries; instructions for computing intermediate table entries from combinations of the selected table entries, each intermediate group element in an intermediate table entry having a same discrete logarithm to a corresponding base, and the corresponding bases of the discrete logarithms of the intermediate group elements being the same as for the table entries; instructions for replacing the selected table entries with randomly selected intermediate table entries; and instructions for randomly selecting a table entry and providing it as a cryptographic key pair, wherein a batch of cryptographic key pairs are generated, and wherein the updated table is transformed using simultaneous inversions of Z-components for point-coordinate transformations. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification