IP Library Granted Patent US 11,463,439
Granted Patent B2
US 11,463,439 · App. 16/671,121 · Granted Oct 4, 2022

Systems and methods for device authentication and protection of communication on a system on chip

Inventors: John Ellingson (Haymarket, VA); Matthew Richardson (Arlington, VA)
Assignee: Qwerx Inc.
H04L63/101G06F16/951G06F21/44H04L63/0428H04L63/08G06F2221/2129
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,463,439
App. No.
16/671,121
Granted
Oct 4, 2022
Kind
B2
Abstract

Methods and computing devices configured to implement the methods for authenticating processing devices on a system on chip (SoC) for encrypted communication. An SoC may include a plurality of memories configured to store equivalent ephemeral shared data sets. A first processing device of the SoC may select first elements from a first ephemeral shared data set, generate a rule set indicating the first elements, send the rule set to a second processing device of the SoC, and generate a first result based on the first elements. The second processing device may receive the rule set, select second elements from a second ephemeral shared data set, generate a second result based on the second elements, and send the second result to the first processing device. The first processing device may receive the second result and authenticate the second processing device based on a comparison of the first and second results.

Claims (221)

1. A system on a chip (SoC), comprising:

a first memory configured to store a first ephemeral shared data set;

a first processing device coupled to the first memory;

a second memory configured to store a second ephemeral shared data set, wherein the first ephemeral shared data set is equal to the second ephemeral shared data set; and

a second processing device coupled to the second memory and coupled to the first processing device,

wherein the first processing device is configured with the processor-executable instructions to perform operations comprising:

selecting first elements from the first ephemeral shared data set;

generating a first rule set indicating the first elements;

sending the first rule set to the second processing device; and

generating a first result based on the first elements,

wherein the second processing device is configured with processor-executable instructions to perform operations comprising:

receiving the first rule set from the first processing device;

extracting second elements from the second ephemeral shared data set based on the first rule set;

generating a second result based on the second elements; and

sending the second result to the first processing device;

wherein the first processing device is configured with processor-executable instructions to perform operations further comprising:

receiving the second result from the second processing device; and

authenticating the second processing device based on a comparison of the first result and the second result.

2. The SoC of claim 1 , wherein the first processing device is configured with processor-executable instructions to perform operations further comprising enabling communication with the second processing device in response to authenticating the second processing device.

3. The SoC of claim 1 , wherein:

the second processing device is configured with processor-executable instructions to perform operations further comprising:

selecting third elements from the second ephemeral shared data set;

generating a second rule set indicating the third elements;

sending the second rule set to the first processing device; and

generating a third result based on the second elements;

the first processing device is configured with processor-executable instructions to perform operations further comprising:

receiving the second rule set from the second processing device;

extracting fourth elements from the first ephemeral shared data set based on the second rule set;

generating a fourth result based on the second elements; and

sending the fourth result to the second processing device;

wherein the second processing device is configured with processor-executable instructions to perform operations further comprising:

receiving the fourth result from the first processing device; and

authenticating the first processing device based on a comparison of the third result and fourth result.

4. A method for authenticating a processing device on a system on a chip (SoC), comprising:

selecting, by a first processing device of the SoC, first elements from a first ephemeral shared data set;

generating, by the first processing device, a first rule set indicating the first elements;

sending, by the first processing device, the first rule set to a second processing device of the SoC;

generating, by the first processing device, a first result based on the first elements;

receiving, by the second processing device, the first rule set from the first processing device;

extracting, by the second processing device, second elements from a second ephemeral shared data set based on the first rule set;

generating, by the second processing device, a second result based on the second elements;

sending, by the second processing device, the second result to the first processing device;

receiving, by the first processing device, the second result from the second processing device; and

authenticating the second processing device, by the first processing device, based on a comparison of the first result and the second result.

5. The method of claim 4 , further comprising enabling communication, by the first processing device, with the second processing device in response to authenticating the second processing device.

6. The method of claim 4 , further comprising:

selecting, by the second processing device, third elements from the second ephemeral shared data set;

generating, by the second processing device, a second rule set indicating the third elements;

sending, by the second processing device, the second rule set to the first processing device; and

generating, by the second processing device, a third result based on the second elements;

receiving, by the first processing device, the second rule set from the second processing device;

extracting, by the first processing device, fourth elements from the first ephemeral shared data set based on the second rule set;

generating, by the first processing device, a fourth result based on the second elements; and

sending, by the first processing device, the fourth result to the second processing device;

receiving, by the second processing device, the fourth result from the first processing device; and

authenticating the first processing device, by the second processing device, based on a comparison of the third result and the fourth result.

7. A system on a chip (SoC), comprising:

a first memory configured to store a first ephemeral shared data set; and

a first processing device coupled to the first memory, wherein the first processing device is configured with processor-executable instructions to perform operations comprising:

selecting first elements from an ephemeral shared data set stored in the first memory, wherein the ephemeral shared data set is also stored in a second memory associated with a second processing device;

generating a first rule set indicating the first elements;

sending the first rule set to the second processing device;

generating a result based on elements from the ephemeral shared data set stored in the first memory; and

performing encrypted communication with the second processing device using the result.

8. The SoC of claim 7 , further comprising the second processing device coupled to the second memory and coupled to the first processing device, wherein:

the first processing device is configured with processor-executable instructions to perform operations such that:

generating a result based on elements from the ephemeral shared data set stored in the first memory comprises generating a first result based on the first elements; and

performing encrypted communication with the second processing device using the result comprises:

receiving an encrypted first message from the second processing device;

attempting to decrypt the encrypted first message using the first result; and

determining whether the attempted decryption of the first encrypted message was successful; and

the second processing device is configured with processor-executable instructions to perform operations comprising:

receiving the first rule set from the first processing device;

selecting second elements from the ephemeral shared data set stored in the second memory based on the first rule set;

generating a second result based on the second elements;

encrypting a first message using the second result; and

sending the encrypted first message to the first processing device.

9. The SoC of claim 8 , wherein:

the first processing device is configured with processor-executable instructions to perform operations further comprising:

sending extraction instructions for extracting elements from the ephemeral data set to the second processing device; and

extracting third elements from the ephemeral shared data set stored in the first memory, wherein selecting first elements from an ephemeral shared data set stored in the first memory comprises selecting the first elements from the third elements; and

the second processing device is configured with processor-executable instructions to perform operations further comprising:

receiving the extraction instructions from the first processing device; and

extracting fourth elements from the ephemeral shared data set stored in the second memory, wherein selecting second elements from the ephemeral shared data set stored in the second memory based on the first rule set comprises selecting the second elements from the fourth elements.

10. The SoC of claim 8 , wherein:

the second processing device is configured with processor-executable instructions to preform operations further comprising:

selecting third elements from an ephemeral shared data set stored in the second memory;

generating a second rule set indicating the third elements;

sending the second rule set to the first processing device;

generating a third result based on the third elements; and

combining the second result and the third result producing a first combined result, wherein encrypting a first message using the second result comprises encrypting the first message using the first combined result; and

the first processing device is configured with processor-executable instructions to perform operations further comprising:

receiving the second rule set from the second processing device;

selecting the fourth elements from the ephemeral shared data set stored in the first memory based on the second rule set;

generating a fourth result based on the fourth elements; and

combining the first result and the fourth result producing a second combined result, wherein attempting to decrypt the encrypted first message using the first result comprises attempting to decrypt the encrypted first message using the second combined result.

11. The SoC of claim 7 , further comprising the second processing device coupled to the second memory and coupled to the first processing device, wherein:

the second processing device is configured with processor-executable instructions to perform operations comprising:

selecting second elements from an ephemeral shared data set stored in the second memory;

generating a second rule set indicating the second elements;

sending the second rule set to the first processing device;

receiving the first rule set from the first processing device;

combining the first rule set and the second rule set producing a first combined rule set;

selecting third elements from the ephemeral shared data set stored in the second memory based on the first combined rule set;

generating a first result based on the third elements;

encrypting a first message using the first result; and

sending an encrypted first message to the first processing device and

the first processing device is configured with processor-executable instructions to perform operations further comprising:

receiving the second rule set from the second processing device;

combining the first rule set and the second rule set producing a second combined rule set; and

selecting fourth elements from the ephemeral shared data set stored in the first memory based on the second combined rule set, wherein generating a result based on elements from the ephemeral shared data set stored in the first memory comprises generating a second result based on the fourth elements; and

the first processing device is configured with processor-executable instructions to perform operations such that performing encrypted communication with the second processing device using the result comprises:

receiving the encrypted first message from the second processing device;

attempting to decrypt the encrypted first message using the second result; and

determining whether the attempted decryption of the first encrypted message was successful.

12. The SoC of claim 7 , further comprising the second processing device coupled to the second memory and coupled to the first processing device, wherein:

the first processing device is configured with processor-executable instructions to perform operations such that:

generating a result based on elements from the ephemeral shared data set stored in the first memory comprises generating a first result based on the first elements; and

performing encrypted communication with the second processing device using the result comprises:

encrypting a first message using the first result;

sending the encrypted first message to the second processing device; and

determining whether an acknowledgment of the encrypted first message is received from the second processing device; and

the second processing device is configured with processor-executable instructions to perform operations comprising:

receiving the first rule set from the first processing device;

selecting second elements from the ephemeral shared data set stored in the second memory based on the first rule set;

generating a second result based on the second elements;

receiving the encrypted first message from the first processing device;

attempting to decrypt the encrypted first message using the second result;

determining whether the attempted decryption of the first encrypted message was successful; and

sending the acknowledgement of the encrypted first message to the second processing device in response to successful decryption of the first encrypted communication.

13. The SoC of claim 7 , further comprising the second processing device coupled to the second memory and coupled to the first processing device, wherein:

the first processing device is configured with processor-executable instructions to perform operations such that:

generating a result based on elements form the ephemeral shared data set stored in the first memory comprises generating a first result based on the first elements; and

performing encrypted communication with the second processing device using the result comprises:

encrypting a first communication using the first result;

sending the encrypted first communication to the second processing device; and

determining whether an acknowledgement of the encrypted first communication is received from the second processing device; and

the second processing device is configured with processor-executable instructions to perform operations comprising:

receiving the first rule set from the first processing device;

selecting second elements from the ephemeral shared data set stored in the second memory based on the first rule set;

generating a second result based on the second elements;

receiving the encrypted first communication from the first processing device;

attempting to decrypt the encrypted first communication using the second result;

determining whether the attempted decryption of the first encrypted communication was successful; and

sending the acknowledgment of the encrypted first communication to the second processing device in response to the successful decryption of the first encrypted communication.

14. A method for encrypting communication between a processing device on a system on a chip (SoC), comprising:

selecting, by a first processing device of the SoC, first elements from an ephemeral shared data set stored in a first memory coupled to the first processing device, wherein the ephemeral shared data set is also stored in a second memory coupled to a second processing device of the SoC;

generating, the first processing device, a first rule set indicating the first elements;

sending, by the first processing device, the first rule set to the second processing device;

generating, by the first processing device, a result based on elements from the ephemeral shared data set stored in the first memory; and

performing, by the first processing device, encrypted communication with the second processing device using the result.

15. The method of claim 14 , wherein generating a result based on elements from the ephemeral shared data set stored in the first memory comprises generating, by the first processing device, a first result based on the first elements;

the method further comprising:

receiving, by the second processing device, the first rule set from the first processing device;

selecting, by the second processing device, second elements from the ephemeral shared data set stored in the second memory based on the first rule set;

generating, by the second processing device, a second result based on the second elements;

encrypting, by the second processing device, a first message using the second result;

sending, by the second processing device, the encrypted first message to the first processing device; and

wherein performing encrypted communication with the second processing device using the result comprises:

receiving, by the first processing device, an encrypted first message from the second processing device;

attempting, by the first processing device, to decrypt the encrypted first message using the first result; and

determining, by the first processing device, whether the attempted decryption of the first encrypted message was successful.

16. The method of claim 15 , further comprising:

sending, by the first processing device, extraction instructions for extracting elements from the ephemeral data set to the second processing device:

extracting, by the first processing device, third elements from the ephemeral shared data set stored in the first memory, wherein selecting first elements from an ephemeral shared data set stored in the first memory comprises selecting the first elements from the third elements;

receiving, by the second processing device, the extraction instructions from the first processing device; and

extracting, by the second processing device, fourth elements from the ephemeral shared data set stored in the second memory, wherein selecting second elements from the ephemeral shared data set stored in the second memory based on the first rule set comprises selecting the second elements from the fourth elements.

17. The method of claim 15 , wherein:

selecting, by the second processing device, third elements from an ephemeral shared data set stored in the second memory generating, by the second processing device, a second rule set indicating the third elements;

sending, by the second processing device, the second rule set to the first processing device;

generating, by the second processing device, a third result based on the third elements; and

combining, by the second processing device, the second result and the third result producing a first combined result, wherein encrypting a first message using the second result comprises encrypting the first message using the first combined result;

receiving, by the first processing device, the second rule set from the second processing device;

selecting, by the first processing device, fourth elements from the ephemeral shared data set stored in the first memory based on the second rule set;

generating, by the first processing device, a fourth result based on the fourth elements;

combining, by the first processing device, the first result and the fourth result producing a second combined result, wherein attempting to decrypt the encrypted first message using the first result comprises attempting to decrypt the encrypted first message using the second combined result.

18. The method of claim 14 , further comprising:

selecting, by the second processing device, second elements from an ephemeral shared data set stored in the second memory;

generating, by the second processing device, a second rule set indicating the second elements;

sending, by the second processing device, the second rule set to the first processing device;

receiving, by the second processing device, the first rule set from the first processing device;

combining, by the second processing device, the first rule set and the second rule set producing a first combined rule set;

selecting, by the second processing device, third elements from the ephemeral shared data set stored in the second memory based on the first combined rule set;

generating, by the second processing device, a first result based on the third elements;

encrypting, by the second processing device, a first message using the first result;

sending, by the second processing device, an encrypted first message to the first processing device and

receiving, by the first processing device, the second rule set from the second processing device;

combining; by the first processing device, the first rule set and the second rule set producing a second combined rule set;

selecting, by the first processing device, fourth elements from the ephemeral shared data set stored in the first memory based on the second combined rule set, wherein generating a result based on elements from the ephemeral shared data set stored in the first memory comprises generating a second result based on fourth elements; and

wherein performing encrypted communication with the second processing device using the result comprises:

receiving, by the first processing device, the encrypted first message from the second processing device;

attempting, by the first processing device, to decrypt the encrypted first message using the second result; and

determining, by the first processing device, whether the attempted decryption of the first encrypted message was successful.

19. The method of claim 14 ,

wherein generating a result based on elements from the ephemeral shared data set stored in the first memory comprises generating, by the first processing device, a first result based on the first elements;

wherein performing encrypted communication with the second processing device using the result comprises:

encrypting, by the first processing device, a first message using the first result; and

sending, by the first processing device, the encrypted first message to the second processing device;

the method further comprising:

receiving, by the second processing device, the first rule set from the first processing device;

selecting, by the second processing device, second elements from the ephemeral shared data set stored in the second memory based on the first rule set;

generating, by the second processing device, a second result based on second elements;

receiving, by the second processing device, the encrypted first message from the first processing device;

attempting, by the second processing device, to decrypt the encrypted first message using the second result;

determining, by the second processing device, whether the attempted decryption of the first encrypted message was successful; and

sending, by the second processing device, an acknowledgement of the encrypted first message to the second processing device in response to successful decryption of the first encrypted communication; and

wherein performing encrypted communication with the second processing device using the result further comprises determining, by the first processing device, whether the acknowledgement of the encrypted first message is received from the second processing device.

20. The method of claim 14 ,

wherein generating a result based on the elements from the ephemeral shared data set stored in the first memory comprises generating, by the first processing device, a first result based on the first elements;

wherein performing encrypted communication with the second processing device using the result comprises:

encrypting, by the first processing device, a first communication using the first result; and

sending, by the first processing device, the encrypted first communication to the second processing device:

the method further comprising:

receiving, by the second processing device, the first rule set from the first processing device:

selecting, by the second processing device, second elements from the ephemeral shared data set stored in the second memory based on the first rule set;

generating, by the second processing device, a second result based on the second elements;

receiving, by the second processing device, the encrypted first communication from the first processing device;

attempting, by the second processing device, to decrypt the encrypted first communication using the second result;

determining, by the second processing device, whether the attempted decryption of the first encrypted communication was successful; and

sending, by the second processing device, an acknowledgement of the encrypted first communication to the second processing device in response to successful decryption of the first encrypted communication; and

wherein performing encrypted communication with the second processing device using the result further comprises determining, by the first processing device, whether the acknowledgement of the encrypted first communication is received from the second processing device.

Assignments (3)
ACQUISITION Recorded Apr 16, 2024
From: INFOSCI, LLC
To: QWERX INC.
Reel/Frame 067128/0309 →
COURT ORDER Recorded Sep 3, 2021
From: THE MARBURY LAW GROUP, PLLC
To: INFOSCI, LLC
Reel/Frame 057385/0690 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2020
From: ELLINGSON, JOHN; RICHARDSON, MATTHEW
To: INFOSCI, LLC
Reel/Frame 052175/0592 →