Programmable Health Test Engine for True Random Number Generators
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing true random number generators (TRNGs) face challenges in implementing flexible health tests, as fixed hardware configurations require significant overhead and cannot easily accommodate additional tests or changing standards.
Innovation Solution
A programmable system with a health test processing engine that can be synthesized for different hardware platforms, allowing for the implementation of various health tests through programmable computational cores and memory buffers, thereby adapting to different security standards and customer requirements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If fixed hardware configurations are used for health tests in TRNGs, then the implementation is simple and reliable, but the hardware overhead is significant and adaptability to different standards is poor
Solution Approach 1:
The patent implements a universal health test processing engine that can execute multiple different health test algorithms (such as NIST, BSI, and other standards) through a single programmable hardware platform. The engine uses a microprogrammed architecture with a control unit, datapath, and memory system that can be configured to perform various statistical tests including frequency tests, runs tests, and autocorrelation tests, eliminating the need for separate dedicated hardware for each test standard.
Solution Approach 2:
The patent employs a dynamic and reconfigurable health test processing engine where the test configuration can be changed through loading different microprograms into the hardware. The system includes configurable parameters such as test selection, data window size, and threshold values that can be dynamically adjusted without hardware redesign, allowing adaptation to evolving security standards and different application requirements.
2Adaptability or versatility
If fixed hardware configurations are used for health tests, then the implementation is straightforward, but flexibility in implementing different health test configurations is limited
Solution Approach 1:
The patent divides the health test processing engine into distinct functional modules including a control unit for test sequence management, a datapath for statistical calculations, and a memory system for storing test data and microprograms. This modular segmentation allows each component to be independently designed and optimized, simplifying the overall implementation while maintaining high configurability through the interconnection of standardized interfaces between modules.
3Reliability
If additional health tests are added to accommodate changing standards, then the coverage and compliance improve, but the hardware overhead increases significantly
Solution Approach 1:
The patent implements a universal health test processing engine that can execute multiple different health test algorithms (such as NIST, BSI, and other standards) through a single programmable hardware platform. The engine uses a microprogrammed architecture with a control unit, datapath, and memory system that can be configured to perform various statistical tests including frequency tests, runs tests, and autocorrelation tests, eliminating the need for separate dedicated hardware for each test standard.
Data Source
AI summary
A method and system for producing a health test (HT) processing engine to test a random number source. The method and system receive a set of health tests to program into the HT processing engine, determine operations, constants, and variables used by the set of health tests, map the constants and the variables to a memory buffer in the HT processing engine, generate binary code operational instructions for each operation for each health test in the set of health tests, synthesize the HT processing engine for a chosen hardware platform for processing the binary code operational instructions, and program hardware in the HT processing engine to process the binary code operational instructions with the chosen hardware platform.


