One time pad key exchange
Background-share a one-time pad key from a first location to a second location over a secure background channel. Send a message, encrypted with the one-time pad key, from the first location to the second location, over an unsecure channel.
1 . A computer-implemented method comprising:
background-sharing a one-time pad key from a first location to a second location over a secure background channel, wherein the background-sharing the one-time pad key includes determining, with first logic at the first location, that a first circular buffer at the first location is not full and, responsive to determining that the first circular buffer is not full, storing a predetermined number of bits from a random number generator at the first location in temporary storage at the first location and sending the predetermined number of bits from the random number generator to the second location over the secure background channel; and
sending a message, encrypted with the one-time pad key, from the first location to the second location, over an unsecure channel.
2 . The method of claim 1 , wherein, in the steps of background sharing the one-time pad key and sending the message, the secure background communications channel is slower than the unsecure channel.
3 . The method of claim 2 , wherein, in the step of background sharing the one-time pad key, the secure background communications channel comprises at least one of a secure shielded cable; a scheduled drone, scheduled unmanned ground vehicle, or scheduled unmanned marine vehicle carrying memory media; and free space optical communication.
4 . The method of claim 2 , wherein, in the step of sending the message, the unsecure channel comprises at least one of wired internet, wireless communications, and satellite.
5 . The method of claim 2 , wherein background-sharing the one-time pad key includes,
upon receiving an acknowledgement of receipt from the second location over the secure background channel, storing the predetermined number of bits from the random number generator in the first circular buffer.
6 . The computer-implemented method of claim 2 , further comprising decrypting the message at the second location using the one-time pad key.
7 . The method of claim 6 , wherein background-sharing the one-time pad key includes,
upon receiving an acknowledgement of receipt from the second location over the secure background channel, storing the predetermined number of bits from the random number generator in the first circular buffer;
obtaining, at the second location, the predetermined number of bits from the random number generator at the first location over the secure background channel;
at the second location, sending the acknowledgement of receipt to the first location over the secure background channel; and
storing the predetermined number of bits from the random number generator at the first location in a second circular buffer at the second location.
8 . The method of claim 7 , further comprising encrypting the message by XOR-ing bits from a start of the first circular buffer with bits of the message.
9 . The method of claim 8 , wherein decrypting the message at the second location using the one-time pad key comprises decrypting the message by XOR-ing corresponding bits from a start of the second circular buffer with corresponding bits of the message.
10 . The method of claim 8 , further comprising:
compressing the message to obtain a compressed message, wherein in the step of sending the message, the compressed message is encrypted with the one-time pad key, and in the step of decrypting the message at the second location, the encrypted compressed message is decrypted; and
decompressing the decrypted compressed message.
11 . A non-transitory computer readable medium comprising computer executable instructions which when executed by a computer cause the computer to perform the method of:
background-sharing a one-time pad key from a first location to a second location over a secure background channel, wherein the background-sharing the one-time pad key includes determining, with first logic at the first location, that a first circular buffer at the first location is not full and, responsive to determining that the first circular buffer is not full, storing a predetermined number of bits from a random number generator at the first location in temporary storage at the first location and sending the predetermined number of bits from the random number generator to the second location over the secure background channel; and
sending a message, encrypted with the one-time pad key, from the first location to the second location, over an unsecure channel.
12 . A system comprising:
a first client comprising:
a first circular buffer;
a first temporary storage;
a random number generator;
a first memory; and
at least one first processor, implementing first logic and coupled to the first memory and the random number generator, and operative to:
background-share a one-time pad key from the first client to a second client over a secure background channel by determining, with the first logic, that the first circular buffer is not full and responsive to determining that the first circular buffer is not full: storing a predetermined number of bits from the random number generator in the first temporary storage and sending the predetermined number of bits from the random number generator to the second client over the secure background channel; and
send a message, encrypted with the one-time pad key, from the first client to the second client, over an unsecure channel.
13 . The system of claim 12 , wherein
upon receiving an acknowledgement of receipt from the second client over the secure background channel, storing the predetermined number of bits from the random number generator in the first circular buffer.
14 . The system of claim 12 , further comprising:
the second client; and
a communications network that couples the first and second clients and implements the unsecure channel;
wherein the second client includes a second memory, and at least one second processor, coupled to the second memory, and operative to decrypt the message using the one-time pad key.
15 . The system of claim 14 , wherein:
the second client further comprises second temporary storage;
the at least one first processor background-shares the one-time pad key by,
upon receiving an acknowledgement of receipt from the second client over the secure background channel, storing the predetermined number of bits from the random number generator in the first circular buffer; and
the at least one second processor is operative to:
obtain the predetermined number of bits from the random number generator over the secure background channel;
send the acknowledgement of receipt to the first location over the secure background channel; and
store the predetermined number of bits from the random number generator in the second circular buffer.
16 . The system of claim 15 , wherein the at least one first processor is operative to encrypt the message by XOR-ing bits from a start of the first circular buffer with bits of the message.
17 . The system of claim 16 , wherein the at least one second processor is operative to decrypt the message by XOR-ing corresponding bits from a start of the second circular buffer with corresponding bits of the message.
18 . The system of claim 17 , wherein:
the at least one first processor is operative to compress the message to obtain a compressed message, wherein the compressed message is encrypted with the one-time pad key; and
the at least one second processor is operative to decrypting the encrypted compressed message and to decompress the decrypted compressed message.
19 . The system of claim 14 , wherein the secure background communications channel is slower than the unsecure channel implemented on the communications network.
20 . The system of claim 19 , further comprising at least one of a secure shielded cable; a scheduled drone, scheduled unmanned ground vehicle, or scheduled unmanned marine vehicle carrying memory media; and free space optical communication implementing the secure background communications channel between the first and second clients.
21 . The system of claim 14 , wherein the communications network that couples the first and second clients and implements the unsecure channel comprises at least one of wired internet, wireless communications, and satellite.