Patent ID: 9590951
Date: 2017-03-07
CPC Classifications: G06F,H04L

Claim:
1. A system for enabling a plurality of users to mutually exchange messages through a server (HUB) providing one time pad encryption for each message on each leg of its transmission through a one-time pad network, comprising: the HUB including a computing device, a memory, and a data base; a plurality of computing devices (TRANSCEIVERS) and associated memories, each of the TRANSCEIVERS programmed using software commands to send and receive data through the one-time pad network, each of the TRANSCEIVERS being associated with a unique NETWORK ADDRESS; a plurality of pairs of unique random data sets (PADS), each pair of PADS being unique and associated with a PAD IDENTIFIER, the PAD IDENTIFIER of each pair of PADS being stored in the database of the HUB in association with the NETWORK ADDRESS associated with the TRANSCEIVER device in which the first PAD of the pair of PADS is stored, each PAD of the pair of PADS having a first partition for encrypting outbound messages and a second partition for decrypting received messages; wherein a sending TRANSCEIVER is further configured using software commands to: wherein the computing device of the HUB is further configured using software commands to identify from the TRANSMISSION PACKAGE the TRANSCEIVER PAD IDENTIFIER and the HUB's copy of the PAD pair used by the sending TRANSCEIVER to encrypt the ENCRYPTION PACKAGE, decrypt the ENCRYPTION PACKAGE, using the first partition of the copy of the sending TRANSCEIVER's PAD pair stored in the memory of the HUB, each byte of the encrypted ENCRYPTION PACKAGE decrypted by performing modular addition with successive bytes beginning at the location in the PAD pointed to by the received ENCRYPTION POINTER, discard that portion of the TRANSMISSION PACKAGE consisting of the EXTENSION, erase each byte in the copy of the PAD stored in the memory of the HUB which has been used for decryption of the ENCRYPTION PACKAGE, identify the recipient NETWORK ADDRESS OR NETWORK ADDRESSES included in the ENCRYPTION PACKAGE, retrieve, from the HUB's database, the PAD IDENTIFIER of the receiver's PAD data set corresponding to each NETWORK ADDRESS to which the MESSAGE is addressed for each PAD, retrieve from the HUB's database the location of the first byte in the retrieved data set which has not been previously used for encryption (the DECRYPT POINTER) and, store the INITIAL LOCATION of the DECRYPT POINTER in the memory of the HUB, encrypt the MESSAGE using a decrementing data set for outbound messages by encrypting each MESSAGE byte by modular addition with successive bytes of the random data in the portion of the PAD pair partitioned for decryption associated with the receiving TRANSCEIVER beginning with the INITIAL LOCATION of the DECRYPT POINTER and incrementing the DECRYPT POINTER with each byte used, erase each byte in the encrypting data set which has been used for encryption of the MESSAGE by the HUB, generate a SECOND EXTENSION having a pseudo-random number of pseudo-random bytes to mask the MESSAGE's true length, append the SECOND EXTENSION to the MESSAGE to create a DOWNLOAD PACKAGE, update the local copy of the DECRYPT POINTER stored in the HUB database, and transmit the encrypted data of the DOWNLOAD PACKAGE and the INITIAL POSITION of the DECRYPT POINTER to the receiving TRANSCEIVER; and wherein, the receiving TRANSCEIVER is configured by software commands to receive the DOWNLOAD PACKAGE and the INITIAL POSITION of the DECRYPT POINTER, decrypt the DOWNLOAD PACKAGE, using the receiving TRANSCEIVER's copy of the second partition of the receiving TRANSCEIVERs PAD used by the HUB for encryption to decrypt each byte of the encrypted message by performing modular addition with successive bytes, beginning at the location designated by the received DECRYPT POINTER, in the portion of the receiving TRANSCEIVER's PAD designated for decryption, erase each byte in the second partition of the copy of the PAD stored in the memory of the receiving TRANSCEIVER which has been used for decryption of the MESSAGE, and display the decrypted MESSAGE at the receiving TRANSCEIVER.