Home eTRNG Test Results News Contact LSET Encryption


Random Number Generation

A high quality random number generator (RNG) is critical for effective data encryption. In developing the LSET stream encryption algorithms, LSE Technologies has also developed a very high quality deterministic random number generator (DRNG). Using a number of simpler pseudo-random number generators to feed this DRNG, effectively true random number generation is achieved. This is the basis for our eTrueRNGTM algorithm.

While it is mathematically possible for the eTrueRNG algorithm to produce a series of repeating numbers, the improbability of this happening makes for effectively true random number generation for most applications. To generate the same value twice would require a minimum of six pseudo-random number generators to simultaneously produce the same six 32-bit values as simultaneously produced earlier in the random number generation sequence. Statistically this would happen once in 232 values generated anyway because of the number of possible values for a 32 bit integer. This means for very long sequences of numbers, individual values will likely appear more than once in the sequence. However, this is a very different issue than a repeating number pattern which is a valid concern with software based RNGs.

The amount of "state data" a random number generator has is a strong determining factor in the probability of generating a repeating pattern. The eTRNG Basic version has 9,022 bits of state data. For eTRNG to generate a repeating pattern, ALL of these bits of state data would have to simultaneously be in the same state as at a previous point in the random number generation sequence. Statistically this would happen once in 29022 values generated (once in 217726 values for eTRNG Advanced). Over 95% of the state bits are in the pseudo-random number generators feeding the DRNG and are changed at a high rate relative to the rate of number generation. Using the system entropy option, part of this state information is based on real-time system performance/statistics data to help prevent repetition in the output data (similar to the way physical entropy sources work for a hardware true RNG). In the unlikely event the output data started to repeat a previous series of numbers, the real-time entropy data would limit the length of the repetitive data string.

The first member of our family of eTrueRNG algorithm based RNGs is the eTRNGTM C object code module for Linux. By incorporating our eTRNG code into your application, you no longer have to rely on the system random number generator with its questionable entropy levels and uncertain response times or suffer what can be a large expense for a hardware true RNG. eTRNG not only performs comparably to hardware true random number generators on tests of randomness, it does so at generation rates better than 60 MBytes/sec1 for normal mode block. In "Turbo mode" the generation rate is roughly 2X faster with only a slight degradation in test results.

eTRNG Features & Benefits
Feature Benefit
Random and deterministic modes Deterministic mode based on user provided seed data allows for repeatable random number strings when required by the application.
Single and multithread versions In random mode, running the RNG function and Entropy Generation function on different cores can provide increased throughput (depending on system loading). This also provides a higher degree of entropy in the data feeding the DRNG since the Entropy Generation runs asynchronously to the RNG function.
Single word and block generation Single word generation can be for used for encryption keys, password generation, feeding /dev/rand, etc. Block generation allows a virtually unlimited length string of random numbers to be generated in smaller blocks.
High performance1 Typical single word generation times of less than 3uSec. Typical block generation rates over 60 Mbytes/sec. Turbo mode increases block generation rates by nearly 2X with slightly reduced entropy levels in the output data.
Multiple entropy sources System performance and loading information can be used for seed generation and continuous entropy data generation.
Highly configurable A number of options are provided to tailor performance and degree of randomness to the application’s requirements.
1. Based on an Intel i7-2620M at 2.7Ghz.


The eTRNG C object code module is available in two versions, Basic and Advanced for different levels of price/performance. The Windows version of eTRNG should be avialable by September 1, 2016. Please contact us if you would like to be notified when it is available.

eTRNG Version Comparison
eTRNG-L
(basic)
eTRNGadv-L
(advanced)
Multi-threaded option N Y
Random & Deterministic modes Y Y
Initialization with system entropy option Y Y
RNG using continuous system entropy option N Y
Turbo mode option Y Y
Object module size 76 KB 280 KB
Price - non-commercial use2 $245 USD $495 USD
Price - commercial use3 $495 USD $995 USD
2. For research and educational use only, the eTRNG license agreement prohibits use in a commercial product.
3. The eTRNG license agreement provides a royalty free, perpetual use license for use in a single product. Please contact us for pricing for use in multiple products.

Detailed information on the eTRNG algorithm is available under NDA. Please contact us for summary test results, a copy of the eTRNG integration guide or for information on purchasing eTRNG.


Back to top


eTRNGTM is a trademark of LSE Technologies
Copyright 2016 LSE Technologies