Method and an apparatus to generate pseudo random bits for a cryptographic key
AssigneeRed Hat, Inc.
InventorJames Paul Schneider
Life of this patent
Estimating the term…
Abstract
Some embodiments of a method and an apparatus to generate pseudo random bits for a cryptographic key have been presented. In one embodiment, a set of Blum-Blum-Shub (BBS) pseudo random number generators is executed substantially in parallel. Each of the BBS pseudo random number generators may generate a series of pseudo random bits. A subset of pseudo random bits is extracted from each of the series of pseudo random bits from each of the plurality of BBS pseudo random number generators. Subsets of the series of pseudo random bits from the BBS pseudo random number generators are combined to generate a cryptographic key.
Claims20
A computer-implemented method comprising:
- executing, by a processing device, a plurality of Blum-Blum-Shub (BBS) pseudo random number generators in parallel, wherein each of the plurality of BBS pseudo random number generators perform a plurality of algorithm iterations, wherein an algorithm iteration generates an output, and wherein one or more pseudo-random bits are determined from the output, the one or more pseudo-random bits comprising a parity bit of the output or one or more least significant bits of the output;
- arranging, by the processing device, for at least two BBS pseudo random number generators of the plurality of BBS pseudo random number generators, the one or more pseudo-random bits from the plurality of algorithm iterations into a series of pseudo random bits;
- extracting, by the processing device, for each of the at least two BBS pseudo random number generators, a subset of pseudo random bits from the series of pseudo random bits, wherein each subset has fewer bits than the series of pseudo random bits;
- and
- combining, by the processing device, the extracted subsets of pseudo random bits from the at least two BBS pseudo random number generators to generate a cryptographic key.
An apparatus comprising:
- a storage device to store instructions;
- and
- a processing device, coupled to the storage device, configured to execute the instructions to:
- operate a plurality of Blum-Blum-Shub (BBS) pseudo random number generators in parallel to cause each of the plurality of BBS pseudo random number generators to perform a plurality of algorithm iterations, wherein an algorithm iteration generates an output, and wherein one or more pseudo-random bits are determined from the output, the one or more pseudo-random bits comprising a parity bit of the output or one or more least significant bits of the output, and
- operate a cryptographic key generator to:
- arrange, for at least two BBS pseudo random number generators of the plurality of BBS pseudo random number generators, the one or more pseudo-random bits from the plurality of algorithm iterations into a series of pseudo random bits;
- extract, for each of the at least two BBS pseudo random number generators, a subset of the series of pseudo random bits, wherein each subset has fewer bits than the series of pseudo random bits;
- and
- combine the extracted subsets of pseudo random bits from the at least two BBS pseudo random number generators to generate a cryptographic key.
A non-transitory machine-readable medium that provides instructions that, when executed by a processor, will cause the processor to perform operations comprising:
- executing, by the processor, a plurality of Blum-Blum-Shub (BBS) pseudo random number generators in parallel, wherein each of the plurality of BBS pseudo random number generators perform a plurality of algorithm iterations, wherein an algorithm iteration generates an output, and wherein one or more pseudo-random bits are determined from the output, the one or more pseudo-random bits comprising a parity bit of the output or one or more least significant bits of the output;
- arranging, by the processor, for at least two BBS pseudo random number generators of the plurality of BBS pseudo random number generators, the one or more pseudo-random bits from the plurality of algorithm iterations into a series of pseudo random bits;
- extracting, for each of the at least two BBS pseudo random number generators, a subset of pseudo random bits from the series of pseudo random bits, wherein each subset has fewer bits than the series of pseudo random bits;
- and
- combining the extracted subsets of pseudo random bits from the at least two BBS pseudo random number generators to generate a cryptographic key.
Dependencies are inferred from the claim text.