Entropy Pooling for Mobile Device True Random Number Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Mobile devices face challenges in generating high-throughput true random numbers due to limited and unreliable sources of entropy, which are essential for secure cryptographic operations, and existing solutions consume significant power or are not readily available.

Innovation Solution

A mechanism that pools available entropy from various sources, stores it in device memory, and allocates memory addresses randomly to prevent reuse, providing a readily available entropy source for cryptographic operations while falling back to hardware-based entropy when needed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If hardware-based entropy sources (microphones, cameras, wireless interfaces) are used to generate true random numbers, then the quality of random numbers is improved, but power consumption increases significantly

Engineering Contradiction:
Improvequality of random numbersVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system performs preliminary entropy collection during device boot-up and idle periods, storing entropy in a pool before it is needed for cryptographic operations. This allows high-quality entropy to be accumulated in advance without requiring hardware sources to be active during actual random number generation, thus resolving the contradiction between quality and power consumption

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

An entropy pool acts as an intermediary between hardware entropy sources and cryptographic functions. The pool stores pre-collected entropy and provides it on demand, decoupling the power-intensive hardware activation from the actual random number generation timing, thereby maintaining quality while reducing instantaneous power consumption

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If hardware entropy sources are activated to produce entropy, then the throughput of random number generation is improved, but battery life is adversely affected

Engineering Contradiction:
Improvethroughput of random number generationVSAvoidbattery life
Core Design Contradiction:
ProductivityVSDuration of action of moving object

Solution Approach 1:

Entropy is collected and stored in the entropy pool during device boot-up and idle periods when power consumption is less critical. This preliminary accumulation ensures that when cryptographic operations require high-throughput random numbers, the entropy is already available in the pool without needing to activate hardware sources at that moment, thus maintaining productivity while preserving battery life

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If the operating system manages entropy pooling and random number generation, then the availability of entropy is improved, but the complexity of the system increases

Engineering Contradiction:
Improveavailability of entropyVSAvoidsystem complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The operating system's entropy pool serves multiple functions: it accumulates entropy from various hardware sources, stores it securely, provides entropy on demand for cryptographic operations, and manages the lifecycle of entropy data. This multi-functionality improves entropy availability while containing complexity within the OS layer, preventing it from propagating to application level

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Speed

If entropy is stored in memory for later use, then the responsiveness of random number generation is improved, but the risk of entropy reuse or compromise increases

Engineering Contradiction:
Improveresponsiveness of random number generationVSAvoidsecurity of entropy
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system implements a use-once policy where entropy is discarded from the pool after being used for random number generation. The memory locations that previously held entropy are cleared or marked as unavailable, preventing any form of reuse. This approach maintains responsiveness by having pre-stored entropy while ensuring security through single-use disposal

Inventive Principle:
Principle #34Discarding and recovering

Solution Approach 2:

Entropy in the pool is treated as a disposable resource that is consumed after single use. Rather than attempting to protect and reuse expensive entropy, the system uses inexpensive memory locations that are cleared after use, ensuring that even if memory is compromised, the entropy cannot be reused. This resolves the contradiction between speed and security

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Data Source

PatentUS9449197B2Pooling entropy to facilitate mobile device-based true random number generation
Publication Date: 2016.09.20 GLOBALFOUNDRIES INC
  • US9449197B2 patent drawing
  • US9449197B2 patent drawing
  • US9449197B2 patent drawing

AI summary

A mobile device operating system pools any available entropy. The resulting entropy pool is stored in device memory. When storing entropy in memory, preferably memory addresses are randomly allocated to prevent an attacker from capturing entropy that might have already been used to create a random number. The stored entropy pool provides a readily-available entropy source for any entropy required by the operating system or device applications. Then, when a cryptographic application requests a true random number, the operating system checks to determine whether the pool has available entropy and, if so, a portion of the entropy is provided to enable generation (e.g., by a TRNG) of a true random number that, in turn, may then be used for some cryptographic operation. After providing the entropy, the operating system clears the address locations that were used to provide it so that another entity cannot re-use the entropy.