Scalable Random Number Generation via Dynamic Entropy Reseeding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional random number generation techniques in computer systems are inefficient, particularly in battery-powered devices, as they consume energy when entropy is not available or needed, impacting energy efficiency and processor utilization.
Innovation Solution
A scalable random number generation system with multiple layers of pseudo-random number generators (PRNGs) that maintain and reseed entropy states dynamically, using entropy pools and a root PRNG with a global seed version identifier to ensure efficient entropy collection and usage, minimizing power consumption by only generating random numbers on demand.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional entropy collection techniques are used continuously, then random number generation availability is improved, but power consumption increases
Solution Approach 1:
The system dynamically adjusts entropy collection based on demand. The entropy pool is refreshed only when entropy is actually needed, transitioning from static continuous collection to dynamic on-demand collection. This resolves the contradiction by maintaining reliability through available entropy when needed while reducing power consumption during idle periods.
Solution Approach 2:
The system uses a demand-driven model where the random number generation process itself triggers the entropy collection. When a random number is requested, the system automatically collects entropy if the pool is exhausted, eliminating the need for continuous background entropy collection. This self-service approach maintains availability while minimizing power consumption.
2Reliability
If background entropy collection processes run continuously, then entropy availability is improved, but processor utilization efficiency deteriorates
Solution Approach 1:
Instead of continuous background entropy collection, the system uses periodic action triggered by random number generation requests. The entropy pool is updated only when needed, transforming the process from continuous to periodic. This maintains entropy availability while significantly improving processor utilization efficiency by eliminating idle background processing.
Solution Approach 2:
The system extracts the entropy collection operation from continuous background execution and ties it specifically to random number generation events. By removing the continuous aspect and keeping only the necessary triggered collection, the system maintains entropy availability when needed while eliminating wasteful processor utilization during idle periods.
3Adaptability or versatility
If multiple PRNG layers are implemented, then system scalability is improved, but device complexity increases
Solution Approach 1:
The system segments the PRNG into multiple independent layers (root PRNG, processor PRNGs, application PRNGs, process PRNGs), where each layer operates autonomously but can be reseeded by upper layers. This segmentation enables scalability across different system contexts while managing complexity through modular, independent units with clear reseeding boundaries.
Solution Approach 2:
The PRNG structure implements a nested hierarchy where processor PRNGs are seeded by the root PRNG, application PRNGs are seeded by processor PRNGs, and process PRNGs are seeded by application PRNGs. This nested arrangement enables systematic scalability across multiple levels while containing complexity within each nested layer, as each level independently manages its own state while leveraging the hierarchy for seed propagation.
Data Source
AI summary
In embodiments of scalable random number generation, a system includes one or more entropy pools that combine entropy data, which is derived from entropy sources based on event data. A root pseudo-random number generator (PRNG) maintains a seeded entropy state that is reseeded by the entropy pools, and a seed version identifier updates to indicate a current seed version of the root PRNG. Processor PRNGs are instantiated one each per logical processor in a kernel of the system, where each processor PRNG maintains a PRNG entropy state that is reseeded from the root PRNG, and a processor PRNG generates a random number from a respective PRNG entropy state when invoked.


