Adding entropy for improved random number generation in a computer system
AssigneeInternational Business Machines Corporation
InventorsTodd A. Inglett, Andrew T. Tauferner
Life of this patent
Estimating the term…
Abstract
A parallel computer system adds entropy to improve the quality of random number generation by using parity errors as a source of entropy because parity errors are influenced by external forces such as cosmic ray bombardment, alpha particle emission, and other random or near-random events. By using parity errors and associated information to generate entropy, the quality of random number generation in a parallel computer system is increased.
Claims22
A parallel computer system comprising:
- a plurality of nodes, each node comprising a memory;
- an entropy generation mechanism residing in the memory of at least one of the plurality of nodes, the entropy generation mechanism using at least one parity error in at least one of the memories in the plurality of nodes to add entropy to an entropy pool;
- a random number generation mechanism residing in a memory of at least one of the nodes that uses the entropy pool to generate a random number;
- and
- a software agent residing in a memory of at least one of the nodes that receives the generated random number and transforms the generated random number to a form usable by the software agent.
A computer implemented method for a software agent to receive a random number, the method comprising the steps of:
- (A) providing a parallel computer system comprising a plurality of nodes, each node comprising a memory;
- (B) detecting at least one parity error in at least one of the memories in the plurality of nodes;
- (C) using the at least one parity error to add entropy to an entropy pool;
- (D) using the entropy pool to generate a random number;
- and
- (E) the software agent receiving the generated random number and transforming the generated random number to a form usable by the software agent.
A computer-readable article of manufacture comprising:
- an entropy generation mechanism for a parallel computer system comprising a plurality of nodes, each node comprising a memory, the entropy generation mechanism using at least one parity error in at least one of the memories in the plurality of nodes to add entropy to an entropy pool;
- a random number generation mechanism that uses the entropy pool to generate a random number and provides the random number to a software agent that requests the random number;
- and
- recordable media bearing the entropy generation mechanism and the random number generation mechanism.
A parallel computer system comprising:
- (A) a plurality of nodes, each node comprising a memory;
- (B) a first of the plurality of nodes comprising:
- a first entropy generation mechanism residing a memory of the first node, the first entropy generation mechanism comprising:
- a first entropy pool;
- a first parity error detection mechanism that uses time and location of at least one parity error in at least one of the memories in the plurality of nodes to add entropy to the first entropy pool by performing a first mathematical operation between time of a current parity error and time of a past parity error and by performing a second mathematical operation between a first chip identifier corresponding to a first memory chip where a current parity error occurred and a second chip identifier corresponding to a second memory chip in the first node;
- and
- a first entropy distribution mechanism that distributes the entropy added to the first entropy pool to at least one other of the plurality of nodes;
- a first random number generation mechanism residing in the memory of the first node that uses the entropy pool to generate a first random number;
- (C) a second of the plurality of nodes comprising:
- a second entropy generation mechanism residing in a memory of the second node, the second entropy generation mechanism comprising:
- a second entropy pool;
- a second parity error detection mechanism that uses time and location of at least one parity error in at least one of the memories in the plurality of nodes to add entropy to the second entropy pool by performing a third mathematical operation between time of a current parity error and time of a past parity error and by performing a fourth mathematical operation between a first chip identifier corresponding to a first memory chip where a current parity error occurred and a second chip identifier corresponding to a second memory chip in the first node;
- and
- a second entropy distribution mechanism that distributes the entropy added to the second entropy pool to at least one other of the plurality of nodes;
- and
- a second random number generation mechanism residing in the memory of the second node that uses the second entropy pool to generate a second random number;
- (D) one of the first and second random number generation mechanisms returning one of the first random number and the second random number to a software agent that requests a random number;
- and
- (E) the software agent transforming the returned random number to a form usable by the software agent.
Dependencies are inferred from the claim text.