Masking the output of random number generators in key generation protocols
AssigneeCerticom Corp.
InventorScott Alexander Vanstone
Life of this patent
Estimating the term…
Abstract
To mitigate the effects of a weak random number generator (RNG) in a public key cryptosystem, a public key obtained from the RNG is encrypted using a deterministic cryptographic scheme before being made publicly available. A trusted party receiving the encrypted public key can recover the public key and combine it with other information so it is not subject to direct scrutiny. In one embodiment, the trusted party incorporates the public key in a certificate, such as an implicit certificate, for use by the correspondents in other communications.
Claims9
A method of establishing a private key kA for use in a public key cryptographic system established between a first correspondent computing device and a second correspondent computing device, each of the first computing device and the second computing device comprising a cryptographic unit to perform cryptographic operations, the method comprising:
- a processor of the first correspondent computing device:
- a) establishing a private value xA from an output of a random number generator;
- b) computing a corresponding public key XA from the private value xA;
- c) encrypting the public key XA using an encryption scheme and a first public key of a trusted party to establish an encrypted public key XA′;
- d) forwarding the encrypted public key XA′ to the trusted party;
- e) receiving from the trusted party encrypted private key reconstruction data and an implicit certificate, based upon the public key XA and a trusted party public key XCA;
- f) applying a decryption key to recover the private key reconstruction data, the decryption key corresponding to a combination of the private value xA and a long-term public key QCA of the trusted party;
- and,
- g) computing the private key kA from the private key reconstruction data, the private key kA being a discrete log private key corresponding to the long-term public key QCA of the trusted party;
- whereby the first correspondent computing device may use the private key kA in a transfer of information including the implicit certificate with the second correspondent computing device, and whereby the second correspondent computing device may receive the implicit certificate and recover a first computing device public key QA from the implicit certificate and the long-term public key QCA.
A computing device for use in a cryptographic system to exchange information with other devices using public key cryptographic protocols, the device comprising:
- a cryptographic unit having a random number generator;
- a memory to store parameters of the cryptographic system;
- and
- an arithmetic logic unit to perform cryptographic operations,
- wherein the cryptographic unit is operable to:
- generate a private value xA from an output of the random number generator;
- compute a corresponding public key XA from the private value xA;
- encrypt the public key XA with an encryption scheme, the encrypted public key XA′ encrypted using a first public key of a trusted party;
- forward the encrypted public key XA′ to the trusted party;
- receive encrypted private key reconstruction data and an implicit certificate from the trusted party;
- apply a decryption key to recover the private key reconstruction data, the decryption key corresponding to a combination of the private value xA and a long-term public key QCA of the trusted party;
- and,
- obtain therefrom a private key kA, the private key kA being a discrete log private key corresponding to the long-term public key QCA of the trusted party;
- whereby the device may use the private key kA in a transfer of information including the implicit certificate with a second correspondent computing device.
A non-transitory computer readable storage medium comprising computer executable instructions for establishing a private key kA for use in a public key cryptographic system established between computing devices, each computing device having a cryptographic unit to perform cryptographic operations, the non-transitory computer readable storage medium comprising instructions for:
- establishing at one of the devices a private value xA from an output of a random number generator;
- computing a corresponding public key XA from the private value xA;
- encrypting the corresponding public key XA using an encryption scheme with a first public key of a trusted party to establish an encrypted public key XA′;
- forwarding the encrypted public key to the trusted party;
- receiving from the trusted party encrypted private key reconstruction data and an implicit certificate, the implicit certificate based upon the corresponding public key XA and a trusted party public key XCA;
- applying a decryption key to recover the private key reconstruction data, the decryption key corresponding to a combination of the private value xA and a long-term public key QCA of the trusted party;
- and,
- computing the private key kA from the private key reconstruction data, the private key kA being a discrete log private key corresponding to the long-term public key QCA of the trusted party, whereby the device may use the private key kA in a transfer of information with another computing device including the implicit certificate, and whereby the other computing device able to receive the implicit certificate and recover a device public key QA from the implicit certificate and the long-term public key QCA.
Dependencies are inferred from the claim text.