System and method for synchronizing one time pad encryption keys for secure communication and access control
First Claim
1. A method for generating an identical electronic one-time pad at a first location and at a second location, the method comprising the steps of:
- (a) providing a first electronic device at the first location and a second electronic device at the second location, each of said first and said second electronic devices having;
(i) a non-volatile memory;
(ii) a processor;
(iii) at least one table of true random numbers being stored on said non-volatile memory, said table being identical for said first and said second electronic devices; and
(iv) at least one software program for obtaining a true random number from said table, said software program being stored on said non-volatile memory and said at least one software program being operated by said processor;
(b) providing a communication channel for communication between said first electronic device and said second electronic device;
(c) selecting a selected true random number from said table at said first and said second electronic devices according to a selection procedure, said selection procedure being identical for said first and said second electronic devices, said selection procedure including exchanging at least a portion of a key between said first and said second electronic devices over said communication channel, such that said selected true random number is identical for said first and said second electronic devices, further comprising the steps of;
(i) generating a first true random number at said first electronic device and a second true random number at said second electronic device;
(ii) sending said first true random number to said second electronic device and said second true random number to said first electronic device through said channel, said first and said second true random numbers forming at least a portion of said key;
(iii) providing at least one identical pseudorandom number generator at said first and said second electronic devices, said at least one pseudorandom number generator being operated by said processor according to said at least one software program being stored in said non-volatile memory;
(iv) obtaining an obtained true random number from said table with a first pointer, said first pointer being substantially identical to said key;
(v) giving said obtained true random number to said at least one pseudorandom number generator as a seed;
(vi) obtaining a generated pseudorandom number from said at least one pseudorandom number generator, said generated pseudorandom number being identical for said first and said second electronic devices; and
(vii) selected said selected true random number from said table by using said generated pseudorandom number as a second pointer; and
(d) forming at least a portion of the identical electronic one-time pad at the first and the second locations with said selected true random number.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for generating an identical electronic one-time pad at a first location and a second location, the method comprising the steps of: (a) providing a first electronic device at the first location and a second electronic device at the second location, each of the first and the second electronic devices having: (i) a non-volatile memory; (ii) a processor; (iii) at least one table of true random numbers being stored on the non-volatile memory, the table being identical for the first and the second electronic devices; and (iv) at least one software program for obtaining a true random number from the table, the software program being stored on the non-volatile memory and the at least one software program being operated by the processor; (b) providing a communication channel for communication between the first electronic device and the second electronic device; (c) selecting a selected true random number from the table at the first and the second electronic devices according to a selection procedure, the selection procedure being identical for the first and the second electronic devices, the selection procedure including exchanging at least a portion of a key between the first and the second electronic devices over the communication channel, such that the selected true random number is identical for the first and the second electronic devices; and (d) forming at least a portion of the identical electronic one-time pad at the first and the second locations with the selected true random number.
141 Citations
37 Claims
-
1. A method for generating an identical electronic one-time pad at a first location and at a second location, the method comprising the steps of:
-
(a) providing a first electronic device at the first location and a second electronic device at the second location, each of said first and said second electronic devices having;
(i) a non-volatile memory;
(ii) a processor;
(iii) at least one table of true random numbers being stored on said non-volatile memory, said table being identical for said first and said second electronic devices; and
(iv) at least one software program for obtaining a true random number from said table, said software program being stored on said non-volatile memory and said at least one software program being operated by said processor;
(b) providing a communication channel for communication between said first electronic device and said second electronic device;
(c) selecting a selected true random number from said table at said first and said second electronic devices according to a selection procedure, said selection procedure being identical for said first and said second electronic devices, said selection procedure including exchanging at least a portion of a key between said first and said second electronic devices over said communication channel, such that said selected true random number is identical for said first and said second electronic devices, further comprising the steps of;
(i) generating a first true random number at said first electronic device and a second true random number at said second electronic device;
(ii) sending said first true random number to said second electronic device and said second true random number to said first electronic device through said channel, said first and said second true random numbers forming at least a portion of said key;
(iii) providing at least one identical pseudorandom number generator at said first and said second electronic devices, said at least one pseudorandom number generator being operated by said processor according to said at least one software program being stored in said non-volatile memory;
(iv) obtaining an obtained true random number from said table with a first pointer, said first pointer being substantially identical to said key;
(v) giving said obtained true random number to said at least one pseudorandom number generator as a seed;
(vi) obtaining a generated pseudorandom number from said at least one pseudorandom number generator, said generated pseudorandom number being identical for said first and said second electronic devices; and
(vii) selected said selected true random number from said table by using said generated pseudorandom number as a second pointer; and
(d) forming at least a portion of the identical electronic one-time pad at the first and the second locations with said selected true random number. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
(1) generating a second generated pseudorandom number from said at least one pseudorandom number generator, said second generated pseudorandom number being identical for said first and said second electronic devices; and
(2) merging said second generated pseudorandom number with said selected true random number to form a merged true random number, said merged true random number being said selected true random number.
-
-
3. The method of claim 2, wherein the step of providing said at least one table of true random numbers further comprises the steps of:
-
(1) providing an initial table of true random numbers;
(2) obtaining an obtained true random number from said table with a first pointer, said first pointer being substantially identical to said key;
(3) giving said obtained true random number to said at least one pseudorandom number generator as a seed;
(4) obtaining a generated pseudorandom number from said at least one pseudorandom number generator, said generated pseudorandom number being identical for said first and said second electronic devices;
(5) selecting said selected true random number from said initial table by using said generated pseudorandom number as a second pointer; and
(6) repeating steps 2-5 to create said at least one table of true random numbers.
-
-
4. The method of claim 3, wherein the step of selecting said selected true random number further comprises the steps of:
-
(A) generating a second generated pseudorandom number from said at least one pseudorandom number generator, said second generated pseudorandom number being identical for said first and said second electronic devices; and
(B) merging said second generated pseudorandom number with said selected true random number to form a merged true random number, said merged true random number being said selected true random number.
-
-
5. The method of claim 2, further comprising the step of repeating steps (vi)-(viii) of claim 1, wherein said obtained true random number is said selected true random number, and the steps of claim 2 at least once, wherein said second pointer is said selected true random number from step 11 (2) for repeating the steps of claims 1 and 2.
-
6. The method of claim 5, wherein a plurality of selected true random numbers is obtained by repeating the step of claim 5 at least once.
-
7. The method of claim 1, wherein step (vi) further comprises the steps of:
-
(1) providing an additional pseudorandom number generator at said first and said second electronic devices, said additional pseudorandom number generator being operated by said processor according to at least one software program being stored in said non-volatile memory;
(2) generating an additional pseudorandom number by said additional pseudorandom number generator with said seed;
(3) forming a second seed with said additional pseudorandom number; and
(4) replacing said seed with said second seed.
-
-
8. The method of claim 7, wherein said second seed is said additional pseudorandom number.
-
9. The method of claim 8, wherein step (4) is performed at random intervals determined by said additional pseudorandom number generator.
-
10. The method of claim 7, wherein step (3) further comprises the steps of:
-
(A) obtaining a generated pseudorandom number from said at least one pseudorandom number generator, said generated pseudorandom number being identical for said first and said second electronic devices;
(B) selecting an additional true random number from said table by using said generated pseudorandom number as an additional pointer; and
(C) forming said second seed from said additional true random number.
-
-
11. The method of claim 10, wherein the step of forming said second seed from said additional true random number further comprises the steps of:
-
(I) generating a second generated pseudorandom number from said at least one pseudorandom number generator, said second generated pseudorandom number being identical for said first and said second electronic devices; and
(II) merging said second generated pseudorandom number with said additional true random number to form a merged true random number, said merged true random number being said second seed.
-
-
12. A method for generating an identical electronic one-time pad at a first location and at a second location, the method comprising the steps of:
-
(a) providing a first electronic device at the first location and a second electronic device at the second location, each of said first and said second electronic devices having;
(i) a non-volatile memory;
(ii) a processor;
(iii) at least one table of true random numbers being stored on said non-volatile memory, said table being identical for said first and said second electronic devices; and
(iv) at least one software program for obtaining a true random number from said table, said software program being stored on said non-volatile memory and said at least one software program being operated by said processor;
(b) providing a communication channel for communication between said first electronic device and said second electronic device;
(c) selecting a selected true random number from said table at said first and said second electronic devices according to a selection procedure, said selection procedure being identical for said first and said second electronic devices, said selection procedure including exchanging at least a portion of a key between said first and said second electronic devices over said communication channel, such that said selected true random number is identical for said first and said second electronic devices, further comprising the steps of;
(i) providing at least one identical pseudorandom number generator at said first and said second electronic devices, said at least one pseudorandom number generator being operated by said processor according to at least one software program being stored in said non-volatile memory; and
(ii) generating a generated pseudorandom number by said pseudorandom number generator with said key as a seed at a substantially random time, wherein said seed is modified by an obtained true random number obtained from said table of true random numbers; and
(d) forming at least a portion of the identical electronic one-time pad at the first and the second locations with said selected true random number. - View Dependent Claims (13)
-
-
14. A method for determining access by a user to an access-controlled module, the method comprising the steps of:
-
(a) providing a first electronic device at the first location and a second electronic device at the second location, each of said first and said second electronic devices having;
(i) a non-volatile memory;
(ii) a processor;
(iii) at least one table of true random numbers being stored on said non-volatile memory, said table being identical for said first and said second electronic devices; and
(iv) at least one software program for obtaining a true random number from said table, said software program being stored on said non-volatile memory and said at least one software program being operated by said processor;
(b) providing a communication channel for communication between said first electronic device and said second electronic device;
(c) selecting a selected true random number from said table at said first and said second electronic devices according to a selection procedure, said selection procedure being identical for said first and said second electronic devices, said selection procedure including exchanging at least a portion of a key between said first and said second electronic devices over said communication channel, such that said selected true random number is identical for said first and said second electronic devices, further comprising the steps of;
(i) generating a first true random number at said first electronic device and a second true random number at said second electronic device;
(ii) sending said first true random number to said second electronic device and said second true random number to said first electronic device through said channel, said first and said second true random numbers forming at least a portion of said key;
(iii) providing at least one identical pseudorandom number generator at said first and said second electronic devices, said at least one pseudorandom number generator being operated by said processor according to at least one software program being stored in said non-volatile memory;
(iv) obtaining an obtained true random number from said table with a first pointer, said first pointer being substantially identical to said key;
(v) giving said obtained true random number to said at least one pseudorandom number generator as a seed;
(vi) obtaining a generated pseudorandom number from said at least one pseudorandom number generator, said generated pseudorandom number being identical for said first and said second electronic devices; and
(vii) selecting said selected true random number from said table by using said generated pseudorandom number as a second pointer;
(d) encrypting an identifier by said first electronic device by merging said identifier with said selected true random number according to a merging function to form an encrypted identifier;
(e) sending said encrypted identifier to said second electronic device;
(f) receiving said encrypted identifier by said second electronic device;
(g) decrypting said encrypted identifier by performing a reverse-function on said encrypted identifier to obtain said identifier, said reverse-function being a reverse of said merging function; and
(h) determining access to the access-controlled module according to said identifier by said second electronic device. - View Dependent Claims (15, 16, 17)
(1) generating a second generated pseudorandom number from said at least one pseudorandom number generator, said second generated pseudorandom number being identical for said first and said second electronic devices; and
(2) merging said second generated pseudorandom number with said selected true random number to form a merged true random number, said merged true random number being said selected true random number.
-
-
16. The method of claim 15, further comprising the step of repeating steps (vi)-(viii) of claim 14, wherein said obtained true random number is said selected true random number, and the steps of claim 15 at least once, wherein said second pointer is said selected true random number from step (2) of claim 15 for repeating the steps of claims 14 and 15.
-
17. The method of claim 16, wherein a plurality of selected true random numbers is obtained by repeating the step of claim 16 at least once.
-
18. A method for secure transmission of a message, the method comprising the steps of:
-
(a) providing a first electronic device at the first location and a second electronic device at the second location, each of said first and said second electronic devices having;
(i) a non-volatile memory;
(ii) a processor;
(iii) at least one table of true random numbers being stored on said non-volatile memory, said table being identical for said first and said second electronic devices; and
(iv) at least one software program for obtaining a true random number from said table, said software program being stored on said non-volatile memory and said at least one software program being operated by said processor;
(b) providing a communication channel for communication between said first electronic device and said second electronic device;
(c) selecting a selected true random number from said table at said first and said second electronic devices according to a selection procedure, said selection procedure being identical for said first and said second electronic devices, said selection procedure including exchanging at least a portion of a key between said first and said second electronic devices over said communication channel, such that said selected true random number is identical for said first and said second electronic devices, further comprising the steps of;
(i) generating a first true random number at said first electronic device and a second true random number at said second electronic device;
(ii) sending said first true random number to said second electronic device and said second true random number to said first electronic device through said channel, said first and said second true random numbers forming at least a portion of said key;
(iii) providing at least one identical pseudorandom number generator at said first and said second electronic devices, said at least one pseudorandom number generator being operated by said processor according to said at least one software program being stored in said non-volatile memory;
(iv) obtaining an obtained true random number from said table with a first pointer, said first pointer being substantially identical to said key;
(v) giving said obtained true random number to said at least one pseudorandom number generator as a seed;
(vi) obtaining a generated pseudorandom number from said at least one pseudorandom number generator, said generated pseudorandom number being identical for said first and said second electronic devices; and
(vii) selected said selected true random number from said table by using said generated pseudorandom number as a second pointer;
(d) encrypting the message by said first electronic device by merging at least a portion of said message with said selected true random number according to a merging function to form an encrypted message; and
(e) sending said encrypted message to said second electronic device over said communication channel. - View Dependent Claims (19, 20, 21, 22)
(1) generating a second generated pseudorandom number from said at least one pseudorandom number generator, said second generated pseudorandom number being identical for said first and said second electronic devices; and
(2) merging said second generated pseudorandom number with said selected true random number to form a merged true random number, said merged true random number being said selected true random number.
-
-
20. The method of claim 19, further comprising the step of repeating steps (vi)-(viii) of claim 18, wherein said obtained true random number is said selected true random number, and the steps of claim 19 at least once, wherein said second pointer is said selected true random number from step (2) of claim 19 for repeating the steps of claims 18 and 19.
-
21. The method of claim 20, wherein a plurality of selected true random numbers is obtained by repeating the step of claim 20 at least once.
-
22. The method of claim 21, further comprising the steps of:
-
(f) receiving said encrypted message by said second electronic device; and
(g) decrypting said encrypted message by performing a reverse-function on said encrypted message to obtain said at least a portion of said message, said reverse-function being a reverse of said merging function.
-
-
23. A device for generating an electronic one-time pad, comprising:
-
(a) a non-volatile memory;
(b) a processor;
(c) a read-only table of true random numbers being stored on said non-volatile memory;
(d) a first software program for obtaining an obtained true random number from said table, said first software program being stored on said non-volatile memory and said first software program being operated by said processor;
(e) an input port for receiving at least a portion of a key;
(f) a second software program for selecting a selected true random number according to said obtained true random number and a selection procedure, said selected true random number forming at least a portion of the electronic one-time pad; and
(g) a read/write memory for storing the electronic one-time pad;
said non-volatile memory, said processor and said input port being arranged on a single chip, and access into said chip being enabled only through said input port.- View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
(h) a generator for generating a generated true random number, said generated true random number forming a second portion of said key, said generator being located on said single chip; and
(i) an output port, said output port being located on said single chip, such that said second portion of said key is transmittable through said output port.
-
-
29. The device of claim 28, wherein said generator includes a source of physical random phenomena, such that said generated true random number is generated from said source of physical random phenomena.
-
30. The device of claim 29, wherein said source of physical random phenomena is selected from the group consisting of a source of acoustic noise and a source of thermal noise.
-
31. The device of claim 28, wherein said generator is a pseudorandom number generator being operated by said processor according to at least one software program being stored in said non-volatile memory, said pseudorandom number generator being operated substantially continuously for an undefined period of time, such that said generated true random number is obtained from said pseudorandom number generator.
-
32. The device of claim 28, wherein said input port is capable of receiving a message, and at least one software program for encrypting said message to form an encrypted message according to the electronic one-time pad is stored on said non-volatile memory, said at least one software program being operated by said processor, said encrypted message being transmittable through said output port.
-
33. The device of claim 28, wherein said input port is capable of receiving a message, and at least one software program for encrypting said message to form an encrypted message according to the electronic one-time pad is stored on a second non-volatile memory being located in a physically separate location from said chip, said at least one software program being operated by said processor, said encrypted message being transmittable through said output port.
-
34. The device of claim 28, wherein said non-volatile memory contains an identifier and at least one software program for encrypting said identifier to form an encrypted identifier according to the electronic one-time pad, said at least one software program being operated by said processor, said encrypted identifier being transmittable through said output port.
-
35. The device of claim 28, wherein a plurality of read-only tables of random numbers is stored on said non-volatile memory, and at least one software program for selecting at least one of said tables is stored on said non-volatile memory and is operable by said processor, such that the electronic one-time pad is produced according to said at least one of said tables.
-
36. A method for generating a practically unlimited quantity of true random numbers, the true random numbers being identical in a plurality of locations, the method being operable by a data processor and the method comprising the steps of:
-
(a) providing an identical table of true random numbers, an identical pointer, an identical seed and an identical pseudorandom number generator at each of the plurality of locations;
(b) obtaining an obtained true random number from said identical table of true random numbers according to said pointer, said obtained true random number being identical at the plurality of locations;
(c) generating a generated pseudorandom number by said pseudorandom number generator, said generated pseudorandom number being identical at the plurality of locations; and
(d) combining said obtained true random number and said generated pseudorandom number to form at least one of the quantity of true random numbers, said at least one of the quantity of true random numbers being identical at the plurality of locations. - View Dependent Claims (37)
-
Specification