Random Number Generator Buffering for High-Speed IV Production

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional random number generators face performance bottlenecks when producing random values in rapid succession, leading to throughput limitations in applications that require high-speed random number generation, such as IPsec protocols for data packet encryption.

Innovation Solution

Implementing a system with a random number generator that accepts unspecified-length random data requests, allowing it to produce multiple random numbers at once, which are then stored in a buffer for later use, enabling faster retrieval and reducing the need for individual requests, thus increasing the rate of random value production.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a conventional random number generator produces random values one at a time through multiple hashing operations, then each random value is generated with sufficient cryptographic security, but the production rate is slow and creates a performance bottleneck for applications requiring rapid random value generation

Engineering Contradiction:
Improverandom value production rateVSAvoidtime to complete random number generation
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system pre-generates multiple random values by asserting an unspecified-length random data request, producing a batch of random numbers that are then stored in a data structure. This preliminary action allows subsequent random value requests to be fulfilled quickly from the pre-generated pool, eliminating the need to perform time-consuming hashing operations for each individual request.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The random value production process is segmented into two distinct modes: a bulk generation phase where multiple random values are produced at once using an unspecified-length request, and a retrieval phase where individual values are quickly extracted from the data structure. This segmentation allows the system to optimize for both cryptographic security (in bulk generation) and high-speed delivery (in retrieval).

Inventive Principle:
Principle #1Segmentation

2Reliability

If the random number generator performs multiple hashing operations to produce each random value, then cryptographic security is maintained, but the processing time increases significantly, taking upwards of 200 clock cycles per random value

Engineering Contradiction:
Improvecryptographic securityVSAvoidprocessing time per random value
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs the time-consuming cryptographic hashing operations in advance by generating an unspecified length of random data in a single batch operation. This preliminary cryptographic processing ensures security requirements are met while the results are cached, allowing rapid subsequent access without repeating the expensive hashing operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of regenerating random values through repeated hashing operations for each request, the system creates copies of pre-generated random values from the data structure. This copying approach maintains cryptographic security (since the original batch was securely generated) while dramatically reducing processing time for individual requests.

Inventive Principle:
Principle #26Copying

3Productivity

If applications request random values in rapid sequence, then the application's throughput requirements are met, but the random number generator becomes a performance bottleneck because it cannot produce values fast enough

Engineering Contradiction:
Improveapplication throughputVSAvoidsystem architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The random number generator proactively generates and stores multiple random values in advance by processing an unspecified-length request. This creates a ready pool of values that can quickly satisfy subsequent application requests, enabling the system to meet high throughput requirements without proportionally increasing the generator's operational complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A data structure acts as an intermediary buffer between the random number generator and the application. The generator fills this buffer in bulk operations, and the application draws from it during rapid sequence requests. This intermediary decouples the generator's production rate from the application's consumption rate, allowing the application to achieve high throughput without requiring the generator to continuously operate at maximum speed.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2645235B1Random value production methods and systems
Publication Date: 2017.10.18 NXP USA INC
  • EP2645235B1 patent drawing
  • EP2645235B1 patent drawing
  • EP2645235B1 patent drawing

AI summary

Embodiments of methods and systems (100) for producing random values include a first module (120) that provides (406) a random data request (e.g., a request for an unspecified length of random data) to a random number generator (112). The random number generator generates (408) random data in response to the random data request, and multiple random values derived from the random data are stored (408) in a buffer (122). In response to receiving (414) a request for a random value (e.g., an initialization vector), the first module produces (418) the random value based on the multiple random values stored in the buffer. The system also may be configured to receive requests for other types of random values, and to fulfill (426) those requests using random data that is not buffered (e.g., random data that is received (424) directly from the random number generator in response to a request (422) for a specified length of random data).