IP Library Granted Patent US 11,425,103
Granted Patent B2
US 11,425,103 · App. 16/812,304 · Granted Aug 23, 2022

Token secured routing

Inventors: David R. Hall (Provo, UT); Jeff Campbell (Spanish Fork, UT); Joshua Dutton (Provo, UT); Monte Johnson (Provo, UT); David Crismon (Herriman, UT)
Assignee: Medic, Inc.
H04L63/0407H04L45/02H04L45/021H04L63/0428H04L63/205
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,425,103
App. No.
16/812,304
Granted
Aug 23, 2022
Kind
B2
Abstract

Systems and methods for token secured routing are disclosed. An outbound routing table is maintained. A first token state is determined. A token value is determined based on the determined token state. First and second portions of the token value are identified. The first message is encrypted using the second portion of the first token value. A first packet is generated that includes the first portion as a token and includes the encrypted first message. The first packet is sent to the second node based on the second outbound routing entry in the outbound routing table.

Claims (94)

1. A method for communication by a first node, comprising:

maintaining an outbound routing table, wherein the outbound routing table includes a first outbound routing entry that maps a second node to a first token state of a first token, wherein the first token comprises a first token value, and wherein a first portion of the first token value comprises the first token state, and a second outbound routing entry that maps the first token state of the first token to a first port;

obtaining a first message for the second node from an application;

identifying the first token state based on the first outbound routing entry;

determining the first token value based on the first token state;

identifying the first portion of the first token value;

identifying a second portion of the first token value;

encrypting the first message using the second portion of the first token value;

generating a first packet comprising the first token state and a first payload, wherein the first payload is the encrypted first message; and

sending the first packet to the second node based on the second outbound routing entry.

2. The method of claim 1 , further comprising:

maintaining an inbound routing table, wherein the inbound routing table includes a first inbound routing entry that maps the first token state of the first token to the second node.

3. The method of claim 2 , further comprising:

identifying a third portion of the first token value, wherein the third portion of the first token value corresponds to a second token state; and

adding a second inbound routing entry to the inbound routing table, wherein the second inbound routing entry is a response route for the first packet, and wherein the second inbound routing entry maps the second token state to the application.

4. The method of claim 3 , further comprising:

receiving a second packet from the second node, wherein the second packet comprises the second token state and a second payload, wherein the second payload comprises a second encrypted message;

comparing the second token state with any entries in the inbound routing table;

identifying the second inbound routing entry in the inbound routing table based on the second token state;

determining the first token value based on the second token state;

identifying the third portion of the first token value, wherein the third portion of the first token value corresponds to the second token state;

identifying a fourth portion of the first token value;

decrypting the second encrypted message using the fourth portion of the fourth token value; and

providing the decrypted second message to the application based on the second inbound routing entry.

5. The method of claim 2 , further comprising:

identifying a fifth portion of the first token value, wherein the fifth portion of the first token value corresponds to a third token state;

updating the first token state in the first outbound routing entry to the third token state;

updating the first token state in the second outbound routing entry to the third token state; and

updating the first token state in the first inbound routing entry to the third token state.

6. The method of claim 5 , further comprising:

receiving a third packet from the second node, wherein the third packet comprises the third token state and a third payload, wherein the third payload comprises an encrypted third message;

comparing the third token state with any entries in the inbound routing table;

identifying the first inbound routing entry in the inbound routing table based on the third token state;

determining the first token value based on the third token state;

identifying the fifth portion of the first token value, wherein the fifth portion of the first token value corresponds to the third token state;

identifying a sixth portion of the first token value;

decrypting the encrypted third message using the sixth portion of the first token value; and

evaluating the decrypted third message.

7. The method of claim 5 , further comprising:

generating a static token for a static route to a third node via the second node;

generating a fourth packet, wherein the fourth packet comprises the third token state and a fourth payload, wherein the fourth payload comprises the static token and a requested route to the third node; and

sending the fourth packet to the second node based on the second outbound routing entry.

8. The method of claim 7 , further comprising:

generating a fifth packet, wherein the fifth packet comprises the static token and a fifth payload; and

sending the fifth packet to the third node via the second node, which forwards the fifth packet to the third node based on the static route.

9. The method of claim 1 , wherein the second portion of the first token value is different than the first portion of the first token value, wherein the second portion of the first token value is subsequent to the first portion of the first token value, wherein the second portion of the first token value is nonoverlapping with the first portion of the first token value, and wherein the second portion of the first token value is adjacent to the first portion of the first token value.

10. The method of claim 9 , wherein the second portion of the first token value is different than the first portion of the first token value, wherein the second portion of the first token value is subsequent to the first portion of the first token value, wherein the second portion of the first token value is nonoverlapping with the first portion of the first token value, and wherein the second portion of the first token value is adjacent to the first portion of the first token value.

11. The method of claim 1 , further comprising:

maintaining an outbound routing table, wherein the outbound routing table includes a first outbound routing entry that maps the second node to a first token state of the first token, and a second outbound routing entry that maps the first token state of the first token to a first port.

12. The method of claim 11 , further comprising:

identifying a third portion of the first token value, wherein the third portion of the first token value corresponds to a second token state; and

adding a third outbound routing entry to the outbound routing table when a response is required, wherein the third outbound routing entry is a response route for the first packet, and wherein the third outbound routing entry maps the second token state to the first port.

13. The method of claim 12 , further comprising:

generating a second message for the second node in response to the first message;

determining the first token value based on the second token state;

identifying the third portion of the first token value, wherein the third portion of the first token value corresponds to the second token state;

identifying a fourth portion of the first token value;

encrypting the second message using the fourth portion of the first token value;

generating a second packet comprising the second state and a second payload, wherein the second payload is the encrypted second message; and

sending the second packet to the second node based on the third outbound routing entry.

14. The method of claim 11 , further comprising:

identifying a fifth portion of the first token value, wherein the fifth portion of the first token value corresponds to a third token state;

updating the first token state in the first outbound routing entry to the third token state;

updating the first token state in the second outbound routing entry to the third token state; and

updating the first token state in the first inbound routing entry to the third token state.

15. The method of claim 14 , further comprising:

generating a third message for the second node;

determining the first token value based on the third token state;

identifying the fifth portion of the first token value, wherein the fifth portion of the first token value corresponds to the third token state;

identifying a sixth portion of the first token value;

encrypting the third message using the sixth portion of the first token value;

generating a third packet comprising the third token state and a third payload, wherein the third payload is the encrypted third message; and

sending the third packet to the second node based on the second outbound routing entry.

16. The method of claim 14 , further comprising:

receiving a fourth packet from the second node, wherein the fourth packet comprises the third token state and a fourth payload, wherein the fourth payload comprises a static token and a requested route to a third node;

adding a second inbound routing entry to the inbound routing table, wherein the second inbound routing entry maps the static token to the static token as a forwarding entry;

adding a fourth outbound routing entry to the outbound routing table, wherein the fourth outbound routing entry maps the static token to a second port; and

forwarding the fourth packet via the second port.

17. The method of claim 16 , further comprising:

receiving a fifth packet from the second node, wherein the fifth packet comprises the static token and a fifth payload;

comparing the static token with any entries in the inbound routing table;

identifying the second inbound routing entry in the inbound routing table based on the static token;

identifying the fourth outbound routing entry in the outbound routing table based on the static token; and

forwarding the fifth packet via the second port based on the fourth outbound routing entry.

18. A method for communication by a first node, comprising:

maintaining an inbound routing table, wherein the inbound routing table includes a first inbound routing entry that maps a first token state of a first token to a second node, wherein the first token comprises a first token value, and wherein a first portion of the first token value comprises the first token state;

receiving a first packet comprising the first token state and a first payload, wherein the first payload is an encrypted first message;

comparing the first token state with any entries in the inbound routing table;

identifying the first inbound routing entry in the inbound routing table based on the first token state;

determining the first token value based on the first token state;

identifying the first portion of the first token value;

identifying a second portion of the first token value;

decrypting the encrypted first message using the second portion of the first token value; and

evaluating the decrypted third message.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2024
From: MEDIC, INC.
To: GUARDIAN HEALTH, INC.
Reel/Frame 066337/0771 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2020
From: HALL LABS LLC
To: MEDIC, INC.
Reel/Frame 052671/0795 →
Continuity (2)
Provisional Application 62888780 · Aug 19, 2019
Related Publication 20210058373A1 · Feb 25, 2021