CPC H04L 9/0841 (2013.01) | 11 Claims |
1. A system for generating a symmetric key to be used to encrypt data to be shared by a first client and a second client, the system comprising:
a first client device with a memory, a processor and an associated local storage;
a second client device with a memory, a processor and an associated storage;
a symmetric key generating algorithm and a symmetric key encryption algorithm, each located on the first client device memory and the second client device memory;
wherein the system executes the following steps;
1. entering a first client private key and a second client public key into the symmetric key generating algorithm on each of the first client device memory and second client device memory to independently generate the same symmetric key on each device, wherein the symmetric key is derived from a point on the elliptic curve produced by multiplying the first client private key by the second client public key wherein the symmetric key is derived from a point on the elliptic curve produced by multiplying the first client private key by the second client public key;
2. securely storing the second client public key on the remote repository;
3. using the symmetric key encryption algorithm on the first client device to encrypt data;
4. sending the encrypted data from the first client device to the second client device;
5. retrieving the second client private key and the first client public key from the second client storage with the second client device; and
6. decrypting the encrypted data using the symmetric key encryption algorithm on the second client device.
|