US 12,261,946 B2
System and method of creating symmetric keys using elliptic curve cryptography
Lynn Spraggs, Vernon (CA); and Robert Spraggs, Coldstream (CA)
Assigned to SafeMoon US, LLC, Pleasant Grove, UT (US)
Appl. No. 17/912,393
Filed by SafeMoon US, LLC, Pleasant Grove, PA (US)
PCT Filed Sep. 14, 2022, PCT No. PCT/US2022/043462
§ 371(c)(1), (2) Date Mar. 23, 2023,
PCT Pub. No. WO2023/043793, PCT Pub. Date Mar. 23, 2023.
Claims priority of provisional application 63/244,605, filed on Sep. 15, 2021.
Prior Publication US 2024/0214187 A1, Jun. 27, 2024
Int. Cl. H04L 9/08 (2006.01)
CPC H04L 9/0841 (2013.01) 11 Claims
OG exemplary drawing
 
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.