Advanced BulletProof RNG Techniques

You must be familiar with the theory and operation of the BulletProof RNG freeware and the Bitmap Steganography freeware to understand and appreciate the power of the random number generation and encryption techniques described below.

AdvancedBulletProofTechniques.mp4  (00.0MB)

The Setup -

The core BulletProof RNG must contain three MixFile10X.otp files named MixFile101.otp, MixFile102.otp, and MixFile103.otp.   There are various ways to generate them.   Begin with the original MixFile.otp file containing the 3,628,800 unique ten-digit permutations of the digits from 0 - 9 arranged in ascending order.

The MixFile.otp permutations can be randomly arranged and output to a MixFile101.otp file using the Multi-MixFile(X) Shuffle Utility Program.   A user input true random 14-number permutation of the numbers from 1 - 14 with no number repeated is used to describe how the input file, after being divided into 14 consecutive sections, will be interleaved to produce the output file.

This newly created MixFile101.otp file can be shuffled any number of times using successive true random 14-number permutations:   the key. The only way to duplicate this key is by "brute force" trial and error.   The key is unlimited.   When the key becomes long enough it is practicably impossible to recreate the key using brute force.

MixFile101.otp or the original MixFile.otp can be used as input to the Multi-MixFile(X) Shuffle Utility Program to output MixFile102.otp by applying another key containing true random 14-number permutations.

MixFile103.otp can be created using MixFile101.otp, MixFile102.otp, or MixFile.otp for input as described above.   Or you can now use the Multi-MixFile(X) Shuffle Utility Program with MixFile101.otp and MixFile102.otp for input and interleave these two files together by applying another key containing true random 2-number permutations of the numbers from 1 - 2 with no number repeated, in this case, since you only have two input files.   You can use both methods by continuing to shuffle MixFile101.otp and MixFile102.otp individually then interleaving both together then shuffling each individually again then both together and so on.

With the Multi-MixFile(X) Shuffle Utility Program you can shuffle any single MixFile10X.otp file or any 2 or more up to 14 together to create the final three MixFile10X.otp files:   MixFile101.otp, MixFile102.otp, and MixFile103.otp required to operate the core BulletProof RNG.   You can appropriately rename any file as needed.

In the end there is no telling what 10-digit permutations are in MixFile101.otp, MixFile102.otp, or MixFile103.otp and in what order.   Because the overall key is truly random there is no way to recreate the key except by brute force.   And if the key is sufficiently long it will be impracticable to use brute force to recreate the key.

Generating the Final Useable Random Binary Numbers -

The core BulletProof RNG can generate about 2.66E26 random binary numbers from 0 - 255 for any given three MixFile10X.otp files.   Each initial RandOut10X.otp file can be generated from any point along this stream of random binary numbers.

Use the core BulletProof RNG with the newly created secure MixFile10X.otp files to generate only 9 of the initial 14 RandOut10X.otp files containing 18,144,000 random binary bytes each.   Generate each one from widely seperated points along the entire random number stream.   Use the Button Rows utility program to generate 10 truly random unique sequences of the 256 numbers from 0 - 255 with no number repeated.   Use these 10 unique 256-number sequences with the Two-Array Scramble utility program to generate the remaining 5 RandOut10X.otp files.

Create new truly random keys and use the Multi-RandOut(X) Shuffle Utility Program on a single or any 2 or more up to 14 RandOut10X.otp files in the same manner as the Multi-MixFile(X) Shuffle Utility Program was used on the MixFile10X.otp files above.

The difference between the Multi-RandOut(X) Shuffle Utility Program and the Multi-MixFile(X) Shuffle Utility Program is that the former interleaves the input files on a 1-byte basis and the latter interleaves the input files on a 5-byte basis.   Remember that the MixFile10X.otp files contain 10-digit permutations that are written in Binary Coded Decimal format therefore each permutation is compressed into 5 bytes.

By renaming the RandOut10X.otp files to appropriate MixFile10X.otp files they can be input into the Multi-MixFile(X) Shuffle Utility Program and interleaved on a 5-byte basis as well.   After processing as MixFile10X.otp files these files are renamed back to RandOut10X.otp files for further processing.   This rename / process / re-rename technique can be used as many times as desired.   Any two RandOut10X.otp files can be XORed together to output a third RandOut10X.otp file.   At the end of all processing, the RandOut10X.otp files contain the BulletProof final useable random binary numbers.

If two die are considered the odds of, say, two sixes coming up are 1/6 * 1/6 = 1/36 or one in thirty-six.   The idea here is that you determine the odds for a single event then multiply these odds together for the number of occurrences of the single event being considered.

You can get a rough idea of the security of your random binary numbers the same way.   For instance, there is one chance in 14! = 87,178,291,200 of duplicating by brute force a truly random 14-number sequence of the numbers from 1 - 14 with no number repeated.   To get the odds of duplicating two successive 14-number sequences you would multiply the odds of each single event together.   So the odds of guessing a string of two of these sequences would be 1/87,178,291,200 * 1/87,178,291,200 = 1/7600054456551997440000 = approx. 1/7.5E21 or there is one chance in 7.5E21 of guessing this 2-sequence key.

Further Considerations -

Encryption is used to obscure data whereas steganography is intended to conceal data.   Included on this website is the freeware Bitmap Steganography Utility Program.   But this freeware may also be used primarily to obscure data, as well.

I compress a file down to 112,640 bytes = 110KB.   Then I use the freeware XOR Utility Program also available on this website and input this 112,640 byte compressed file and a file containing 112,640 bytes of random binary numbers generated with BulletProof.   I execute the process and generate the 112,640 byte XORed encrypted output file.

Using MS Paint I create a 1920 x 1080 bitmap image file containing 6,220,854 bytes called, 1920x1080.bmp.   I know that the 6,220,800 bytes after the bitmap image header of 54 bytes are all image data bytes.   (See Bitmap Steganography Utility Program Instructions for details.)

I run the BulletProof Read Binary File utility program and read and output just the first 54 bytes of the bitmap image file that contains the header information and name it, SplitFile0000.   I run the utility program again and output a file of 6,220,800 BulletProof random binary numbers read from a RandOut10X.otp file and name it, SplitFile0001.   I run the BulletProof File Split Append utility program and append SplitFile0001 to the end of SplitFile0000 creating a bitmap image file called,  Random_1920x1080.bmp made up of image data bytes that are all random binary numbers.   In a bitmap image viewer it looks like a canvas filled with tiny grains of multicolored sand.

I run the Bitmap steganography utility program inputting the encrypted source file, the cover bitmap image containing random image data bytes, and another random binary number file generated with BulletProof then output my final Bitmap Steganography randomly embedded bitmap image file called, Embedded_Random_1920x1080.bmp.

Here is what was done:   the compressed source file was XORed with a random number file (BulletProof / XOR encryption) then each resulting bit is XORed again with a random binary number's LSB (encryption, again, with this steganography implementation) then these bits are embedded into random bitmap image data bytes (encryption, again, with this steganography implementation.)

Encrypted source file of 110KB = 112,640 bytes = 901,120 bits. 901,120 bits / 6,220,800 image data bytes = 14.4%.   On average only about half of these random bytes will have their LSBs altered.   Thus actually randomly altering only 7.2% of the bitmap image data bytes further obscures the random binary image data bytes.

These varied techniques leverage the potential security of various aspects of both BulletProof RNG freeware and Bitmap Steganography utility freeware.   Only your imaginatin limits the possibilities.   For instance, the unlimited key length allows for simply extending an existing key to exponentially increase the security of subsequently generated random binary numbers.   You can generate any number of sets of three MixFile10X.otp files and generate entirely different random binary number streams from which RandOut10X.otp files can be generated.   Then dissociated RandOut10X.otp files from these different streams can be processed together to generate final useable random binary numbers.


Latest page update: 20 Mar '15
Page first published: 24 Oct '12