IP Library Granted Patent US 11,323,252
Granted Patent B2
US 11,323,252 · App. 17/067,245 · Granted May 3, 2022

Relay network for encryption system

Inventors: Christopher Higley (New York, NY); Alexander Pinkerton (New York, NY); Erik A. Aronesty (New York, NY); Daniel Gallancy (New York, NY)
Assignee: Atakama LLC
H04L9/085H04L9/30H04L63/0435
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,323,252
App. No.
17/067,245
Filed
Oct 9, 2020
Granted
May 3, 2022
Kind
B2
Art Unit
2498
USPC
713/171
Abstract

A method comprises registering, by a first device having a public key, with a gateway server by providing a proof of work based on the first device public key and encrypting and decrypting data using cryptographic information transmitted via the gateway server between other devices similarly registered.

Claims (67)

1. A method, comprising:

registering, by a first device having a public key and a symmetric key, with a gateway server by providing a proof of work based on the first device's public key;

encrypting data with the first device's symmetric key;

generating, with a threshold cryptography data-sharing scheme, a plurality of key shards based on the symmetric key where the symmetric key can be reconstituted from less than all of the plurality of key shards;

encrypting the plurality of key shards with public keys from, respectively, a plurality of devices;

transmitting, through the gateway, the encrypted plurality of key shards and encrypted data to at least one queue in a queue service, wherein there is one queue for each device of the plurality of devices;

triggering a cloud message from a cloud message service to one or more devices of the plurality of devices corresponding to the at least one queue, thereby causing the one or more devices to connect to a network hosting the queue service;

transmitting the encrypted plurality of key shards and encrypted data from the queue service to the one or more devices corresponding to the at least one queue; and

storing the encrypted data and the plurality of key shards encrypted with the plurality of devices' public keys in one or more non-transitory memory devices where the encrypted data is secured at one of the one or more non-transitory memory devices and decryptable with the plurality of key shards encrypted with the first devices' public key by reassembling the plurality of key shards encrypted with the plurality of devices' public keys into the first device's symmetric key.

2. The method of claim 1 , further comprising:

receiving, at the first device, a request to decrypt the data encrypted with the symmetric key;

retrieving shards of the symmetric key;

requesting decryption by the plurality of devices of the shards until a threshold number of shards is reached;

reconstituting the symmetric key from the decrypted shards; and

decrypting the encrypted data with the symmetric key;

wherein the receiving shards and requesting decryption includes transmitting shards and requests, respectively, via the at least one queue and triggering cloud messages to the one or more devices corresponding to the at least one queue.

3. The method of claim 1 , further comprising:

retrieving at least one token from a cloud message store corresponding to the at least one queue; and

wherein the triggering is in response to the retrieving.

4. The method of claim 1 , wherein the transmitting to and from the at least one queue transmits the encrypted plurality of key shards and encrypted data in packets having a client identifier identifying a destination device from the plurality of devices and corresponding queue from the at least one queue.

5. The method of claim 4 , further comprising generating the client identifier by taking a SHA-256 hash privacy enhanced mail encoding of a public key of the destination device.

6. The method of claim 4 , further comprising generating the client identifier based on a curve point for an elliptic curve key of the destination device.

7. The method of claim 4 , further comprising generating the client identifier by taking a SHA-256 HASH of a public key of the destination device.

8. The method of claim 4 , further comprising:

connecting to the gateway server;

encoding and transmitting a message comprising a public key, a client identifier of one of the plurality of devices, and a signature of a private key of at least one field of the message; and

verifying authenticity of the one of the plurality of devices by confirming the public key from the transmitted message is valid, the signature matches the public key, and the client identifier of one of the plurality of devices matches the public key.

9. The method of claim 1 , further comprising load balancing the transmitting to and from the at least one queue with a load balancer.

10. A non-transitory computer-readable medium having stored thereon instructions to cause to a computer to execute a method, the method comprising:

registering, by a first device having a public key and a symmetric key, with a gateway server by providing a proof of work based on the first device's public key;

encrypting data with the first device's symmetric key;

generating, with a threshold cryptography data-sharing scheme, a plurality of key shards based on the symmetric key where the symmetric key can be reconstituted from less than all of the plurality of key shards;

encrypting the plurality of key shards with public keys from, respectively, a plurality of devices;

transmitting, through the gateway, the encrypted plurality of key shards and encrypted data to at least one queue in a queue service, wherein there is one queue for each device of the plurality of devices;

causing triggering a cloud message from a cloud message service to one or more devices of the plurality of devices corresponding to the at least one queue, thereby causing the one or more devices to connect to a network hosting the queue service;

causing transmitting the encrypted plurality of key shards and encrypted data from the queue service to the one or more devices corresponding to the at least one queue; and

storing the encrypted data and the plurality of key shards encrypted with the plurality of devices' public keys in one or more non-transitory memory devices where the encrypted data is secured at one of the one or more non-transitory memory devices and decryptable with the plurality of key shards encrypted with the first devices' public key by reassembling the plurality of key shards encrypted with the plurality of devices' public keys into the first device's symmetric key.

11. A first computing device comprising:

a processor; and

one or more memories that include instructions that, when executed by the processor, cause the computing device to:

register, by the first device, the first device having a public key and a symmetric key, with a gateway server by providing a proof of work based on the first device's public key;

encrypt data with the first device's symmetric key;

generate, with a threshold cryptography data-sharing scheme, a plurality of key shards based on the symmetric key where the symmetric key can be reconstituted from less than all of the plurality of key shards;

encrypt the plurality of key shards with public keys from, respectively, a plurality of devices, each device comprising a processor;

transmit, through the gateway, the encrypted plurality of key shards and encrypted data to at least one queue in a queue service, wherein there is one queue for each device of the plurality of devices;

cause triggering a cloud message from a cloud message service to one or more devices of the plurality of devices corresponding to the at least one queue, thereby causing the one or more devices to connect to a network hosting the queue service;

cause transmitting the encrypted plurality of key shards and encrypted data from the queue service to the one or more devices corresponding to the at least one queue; and

storing the encrypted data and the plurality of key shards encrypted with the plurality of devices' public keys in one or more non-transitory memory devices where the encrypted data is secured at one of the one or more non-transitory memory devices and decryptable with the plurality of key shards encrypted with the first devices' public key by reassembling the plurality of key shards encrypted with the plurality of devices' public keys into the first device's symmetric key.

12. The computing device of claim 11 , wherein the instructions, when executed, further cause:

receiving, at the first device, a request to decrypt the data encrypted with the symmetric key;

retrieving shards of the symmetric key;

requesting decryption by the plurality of devices of the shards until a threshold number of shards is reached;

reconstituting the symmetric key from the decrypted shards; and

decrypting the encrypted data with the symmetric key;

wherein the receiving shards and requesting decryption includes transmitting shards and requests, respectively, via the at least one queue and triggering cloud messages to the one or more devices corresponding to the at least one queue.

13. The computing device of claim 11 , wherein the instructions, when executed, further cause:

retrieving at least one token from a cloud message store corresponding to the at least one queue; and

wherein the triggering is in response to the retrieving.

14. The computing device of claim 11 , wherein the transmitting to and from the at least one queue transmits the encrypted plurality of key shards and encrypted data in packets having a client identifier identifying a destination device from the plurality of devices and corresponding queue from the at least one queue.

15. The computing device of claim 14 , wherein the instructions, when executed, further cause generating the client identifier by taking a SHA-256 hash privacy enhanced mail encoding of a public key of the destination device.

16. The computing device of claim 14 , wherein the instructions, when executed, further cause generating the client identifier based on a curve point for an elliptic curve key of the destination device.

17. The computing device of claim 14 , wherein the instructions, when executed, further cause generating the client identifier by taking a SHA-256 HASH of a public key of the destination device.

18. The computing device of claim 14 , wherein the instructions, when executed, further cause:

connecting to the gateway server;

encoding and transmitting a message comprising a public key, a client identifier of one of the plurality of devices, and a signature of a private key of at least one field of the message; and

verifying authenticity of the one of the plurality of devices by confirming the public key from the transmitted message is valid, the signature matches the public key, and the client identifier of one of the plurality of devices matches the public key.

19. The computing device of claim 11 , wherein the instructions, when executed, further cause load balancing the transmitting to and from the at least one queue with a load balancer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2020
From: HIGLEY, CHRISTOPHER; PINKERTON, ALEXANDER; ARONESTY, ERIK A.; GALLANCY, DANIEL
To: ATAKAMA LLC
Reel/Frame 054020/0429 →
Continuity (2)
Provisional Application 62913846 · Oct 11, 2019
Related Publication 20210111889A1 · Apr 15, 2021