Asynchronous Clock Boundary Random Number Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing random number generators face challenges in generating random numbers early in the boot process due to unavailability of entropy sources and inefficiencies, requiring additional software or unconventional circuitry, which is costly and impractical for certain applications.

Innovation Solution

A system utilizing asynchronous boundaries and phase-locked loops (PLLs) generates random data by reading a counter with an asynchronous clock boundary, filling a buffer with entropy words, and applying a SHA-1 hash algorithm to produce unpredictable random numbers, even in early boot stages where traditional sources are unavailable.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional random number generators are used, then they can generate random numbers using external influences like key presses or timestamps, but they are unavailable or inefficient for early boot stages when entropy sources are unavailable

Engineering Contradiction:
Improveavailability of random number generationVSAvoidtiming of random number generation
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by utilizing the asynchronous boundary between clock domains as a pre-existing entropy source that becomes available immediately at boot time, before traditional entropy sources like keyboard input or timestamps are accessible. The hardware automatically captures entropy at the asynchronous boundary without requiring software initialization or user interaction.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If additional software or unconventional circuitry is added to enable early random number generation, then random numbers can be generated early in boot process, but device complexity and cost increase

Engineering Contradiction:
Improveavailability of random number generationVSAvoidsoftware or circuitry requirements
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies self-service by designing a hardware mechanism that automatically captures entropy at the asynchronous boundary without requiring external software intervention or complex additional circuitry. The system uses existing hardware components (counter, clock signals, capture logic) to self-generate entropy, eliminating the need for additional software modules or unconventional circuitry while enabling early random number generation.

Inventive Principle:
Principle #25Self-service

3Productivity

If deterministic processes are used for random number generation, then efficiency is improved, but the generated numbers are not truly random

Engineering Contradiction:
Improveefficiency of random number generationVSAvoidrandomness of generated numbers
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies parameter changes by exploiting the timing parameter of the asynchronous boundary between two clock domains with different frequencies. This timing parameter creates unpredictable phase relationships that generate true randomness. The system captures the counter value at this specific timing parameter window, transforming a deterministic counter into a random entropy source without requiring complex cryptographic operations.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8762439B2System and method for random number generation using asynchronous boundaries and phase locked loops
Publication Date: 2014.06.24 APPLE INC
  • US8762439B2 patent drawing
  • US8762439B2 patent drawing
  • US8762439B2 patent drawing

AI summary

Disclosed herein are systems, methods, and non-transitory computer-readable storage media for generating random data at an early stage in a boot process. A system practicing the method performs, by a processor based on a first clock, a group of reads of a counter running on a second clock to yield entropy words. In order to produce words with entropy, the system introduces a progressively increasing delay between each of the group of reads of the counter. The system generates entropy words by filling the buffer with successive reads of the least significant bit of the counter and then generates random data by applying a hash algorithm to the entropy words stored in the buffer.