IP Library Granted Patent US 11,924,328
Granted Patent B2
US 11,924,328 · App. 17/830,333 · Granted Mar 5, 2024

Cryptographic systems and methods for extending apparent size of pools of truly random numbers

Inventors: Michael L. Hammon (Ames, IA); Wesley A. Hildebrandt (Sussex, WI); Kevin R. McCarthy (Park City, UT)
Assignee: 7Tunnels Inc.
H04L9/0662H04L9/0618H04L9/12H04L9/16
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,924,328
App. No.
17/830,333
Granted
Mar 5, 2024
Kind
B2
Abstract

A first copy of a True Random Number (TRN) pool comprising key data of truly random numbers in a pool of files may be stored on a sender and a second copy of the TRN pool is stored on a receiver. An apparent size of the TRN pool on each device is expanded using a randomizing process for selecting and re-using the key data from the files to produce transmit key data from the first copy and receive key data from the second copy.

Claims (65)

1. A computer-implemented method for performing cryptographic procedures, comprising:

storing a first copy of a True Random Number (TRN) pool on a first computing system, the TRN pool comprising key data elements of truly random numbers in a pool of individually addressable files, wherein a second copy of the TRN pool is stored on a second computing system; and

expanding an apparent size of the TRN pool using a pool expander to create a randomizing process for selecting and re-using the key data elements from the individually addressable files in the TRN pool to produce final key data elements on the first computing system, wherein the randomizing process is to be performed on the second copy of the TRN pool on the second computing system to align the TRN pool on the first computing system with the TRN pool on the second computing system in order to at least one of encrypt or decrypt data elements communicated between the first computing system and the second computing system.

2. The computer-implemented method of claim 1 , further comprising:

combining clear text data elements with the final key data elements using an encryption operation for each clear text data element with each key data element to produce encrypted data elements; and

transmitting the encrypted data elements to the second computing system.

3. The computer-implemented method of claim 2 , wherein the second computing system comprises a receiving device, the method further comprising, on the receiving device:

storing the second copy of the TRN pool, wherein the second copy matches the first copy;

expanding an apparent size of the TRN pool on the receiving device using a receiving random number merge module to create the randomizing process for selecting and re-using the key data elements from the individually addressable files in the second copy of the TRN pool to produce receive key data elements, wherein the randomizing process on the receiving device performs the same functions as, and is synchronized with, the randomizing process on the first computing system comprising a sending device such that the receive key data elements match the final key data elements;

receiving the encrypted data elements; and

combining the receive key data elements with the encrypted data elements using a decryption operation to produce received clear text elements.

4. The computer-implemented method of claim 1 , further comprising:

receiving encrypted data elements from the second computing system; and

combining the final key data elements with the encrypted data elements using a decryption operation for each of the encrypted data elements with each of the final key data elements to produce clear text data elements.

5. The computer-implemented method of claim 1 , further comprising:

communicating TRN pool addressing information between the first computing system and the second computing system, wherein the TRN pool addressing information includes two or more file identifiers, a starting address for each of the two or more file identifiers, and step size information for each of the two or more file identifiers; and

using the TRN pool addressing information to define a new randomizing process at a predefined upcoming point in the cryptographic procedures, wherein the predefined upcoming point in the cryptographic procedures can be reproduced and synchronized on the second computing system.

6. The computer-implemented method of claim 1 , wherein the randomizing process further comprises:

including a pool addressing module to provide two or more addressing permutations, each of the addressing permutations to address data elements in one of the individually addressable files of the TRN pool by permuting the data elements in the file of the TRN pool in a non-sequential order to produce permuted data elements; and

combining the permuted data elements from each of the two or more addressing permutations with XOR operations to create the final key data elements.

7. The computer-implemented method of claim 6 , wherein each of the two or more addressing permutations comprises a stepping process to loop through the file using one or more initialization parameters including a starting address and a step size to generate the non-sequential order by performing a plurality of loops through the file, wherein the step size is modified each time through the loop and all of the key data elements of the selected file are addressed by the stepping process.

8. The computer-implemented method of claim 1 , wherein the randomizing process further comprises:

performing a pseudo-random number generation process seeded with one or more initialization parameters to produce a pseudo-random data element at each subsequent state of the process, wherein the pseudo-random number generation process can be reproduced and synchronized on the second computing system when seeded with the one or more initialization parameters;

combining the pseudo-random data elements with the key data elements from the individually addressable files in the TRN pool with an XOR operation to create combined key data elements; and

using the combined key data elements as the final key data elements.

9. The computer-implemented method of claim 1 , wherein:

storing the first copy of the TRN pool comprises storing a TRN pool provided by a TRN provider and wherein the second copy of the TRN pool is also provided by the TRN provider; and

the method further comprises modifying the first copy of the TRN pool using at least one user-identified randomization process to produce modified key data elements with a user-specific modification unknown to the TRN provider, wherein the at least one user-identified randomization process is such that it can be performed on the second copy of the TRN pool on the second computing system.

10. A computer-implemented method for performing cryptographic procedures, comprising:

storing a copy of a True Random Number (TRN) pool comprising key data elements of truly random numbers in a pool of individually addressable files on a computing system;

expanding an apparent size of the TRN pool to create a randomizing process for selecting and re-using the key data elements from the individually addressable files in the copy of the TRN pool to produce final key data elements;

aligning the copy of the TRN pool with another TRN pool stored on another computing system;

combining clear text data elements with the final key data elements using an encryption operation to produce encrypted data elements; and

transmitting the encrypted data elements to the another computing system.

11. The computer-implemented method of claim 10 , further comprising receiving and decrypting additional encrypted data from the another computing system using the final key data elements.

12. The computer-implemented method of claim 10 , further comprising modifying the copy of the TRN pool using at least one user-identified randomization process to produce modified key data elements with a user-specific modification unknown to a provider of the TRN pool.

13. A computer-implemented method for performing cryptographic procedures, the method comprising:

storing a first copy of a True Random Number (TRN) pool in memory, the TRN pool comprising key data elements of truly random numbers in a pool of individually addressable files, wherein a second copy of the TRN pool is to be stored on a second computing system;

expanding an apparent size of the TRN pool using a pool expander to create a randomizing process for selecting and re-using the key data elements from the individually addressable files in the TRN pool to produce final key data elements, wherein the randomizing process is to be performed on the second copy of the TRN pool on the second computing system to align the TRN pool on the first computing system with the TRN pool on the second computing system in order to at least one of encrypt or decrypt data elements communicated between the first computing system and the second computing system;

combining clear text data elements with the final key data elements using an encryption operation for each clear text data element with each key data element to produce encrypted data elements; and

transmitting the encrypted data elements to the second computing system.

14. The computer-implemented method of claim 13 , further comprising:

receiving the encrypted data elements; and

decrypting the encrypted data elements using a decryption operation to produce received clear text elements.

15. The computer-implemented method of claim 13 , further comprising:

storing the second copy of the TRN pool on the second computing system, wherein the second copy matches the first copy;

expanding an apparent size of the second copy of the TRN pool on the second computing system using a receiving random number merge module to create the randomizing process for selecting and re-using the key data elements from the individually addressable files in the second copy of the TRN pool to produce receive key data elements, wherein the randomizing process on the second computing system performs the same functions as, and is synchronized with, the randomizing process on the first computing system such that the receive key data elements match the final key data elements;

receiving the encrypted data elements; and

combining the receive key data elements with the encrypted data elements using a decryption operation to produce received clear text elements.

16. The computer-implemented method of claim 13 , further comprising:

receiving encrypted data elements from the second computing system; and

combining the final key data elements with the encrypted data elements using a decryption operation for each of the encrypted data elements with each of the final key data elements to produce clear text data elements.

17. The computer-implemented method of claim 13 , further comprising:

communicating TRN pool addressing information between the first computing system and the second computing system, wherein the TRN pool addressing information includes two or more file identifiers, a starting address for each of the two or more file identifiers, and step size information for each of the two or more file identifiers; and

using the TRN pool addressing information to define a new randomizing process at a predefined upcoming point in the cryptographic procedures, wherein the predefined upcoming point in the cryptographic procedures can be reproduced and synchronized on the second computing system.

18. The computer-implemented method of claim 13 , further comprising:

including a pool addressing module to provide two or more addressing permutations, each of the addressing permutations to address data elements in one of the individually addressable files of the TRN pool by permuting the data elements in the file of the TRN pool in a non-sequential order to produce permuted data elements; and

combining the permuted data elements from each of the two or more addressing permutations with XOR operations to create the final key data elements.

19. The computer-implemented method of claim 13 , further comprising:

performing a pseudo-random number generation process seeded with one or more initialization parameters to produce a pseudo-random data element at each subsequent state of the process, wherein the pseudo-random number generation process are to be reproduced and synchronized on the second computing system when seeded with the one or more initialization parameters;

combining the pseudo-random data elements with the key data elements from the individually addressable files in the TRN pool with an XOR operation to create combined key data elements; and

using the combined key data elements as the final key data elements for the encryption operation.

20. The computer-implemented method of claim 13 , further comprising:

storing the first copy of the TRN pool as a TRN pool received from a TRN provider and wherein the second copy of the TRN pool is also provided by the TRN provider; and

modifying the first copy of the TRN pool using at least one user-identified randomization process to produce modified key data elements with a user-specific modification unknown to the TRN provider, wherein the at least one user-identified randomization process is such that it can be performed on the second copy of the TRN pool on the second computing device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2023
From: HAMMON, MICHAEL L.; HILDEBRANDT, WESLEY A.; MCCARTHY, KEVIN R.
To: 7TUNNELS INC.
Reel/Frame 064500/0317 →
Continuity (3)
Division 16637806
Provisional Application 62550068 · Aug 25, 2017
Related Publication 20220303118A1 · Sep 22, 2022