Scalable Random Number Generation via Dynamic Entropy Reseeding

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Reliability

If conventional entropy collection techniques are used continuously, then random number generation availability is improved, but power consumption increases

Engineering Contradiction:
Improverandom number generation availabilityVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #25Self-service

2Reliability

If background entropy collection processes run continuously, then entropy availability is improved, but processor utilization efficiency deteriorates

Engineering Contradiction:
Improveentropy availabilityVSAvoidprocessor utilization efficiency
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #19Periodic action

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.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If multiple PRNG layers are implemented, then system scalability is improved, but device complexity increases

Engineering Contradiction:
Improvesystem scalabilityVSAvoidPRNG structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS8682948B2Scalable random number generation
Publication Date: 2014.03.25 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8682948B2 patent drawing
  • US8682948B2 patent drawing
  • US8682948B2 patent drawing

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.