IP Library Granted Patent US 10,903,998
Granted Patent B2
US 10,903,998 · App. 16/161,005 · Granted Jan 26, 2021

Systems and methods for privacy preserving accurate analysis of network paths

Inventor: David M. Nicol (Champaign, IL)
Assignee: NETWORK PERCEPTION, INC
H04L9/14G06F16/27H04L9/0894H04L63/0421H04L63/062H04L63/1433H04L63/0823H04L2463/061
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 10,903,998
App. No.
16/161,005
Filed
Oct 15, 2018
Granted
Jan 26, 2021
Kind
B2
Art Unit
2431
USPC
713/168
Abstract

Anonymizing systems and methods comprising a native configurations database including a set of configurations, a key management database including a plurality of private keys, a processor in communication with the native configurations database and the key management database, and a memory coupled to the processor. The set of configurations includes one or more ranges, wherein each range includes a contiguous sequence comprised of IP addresses, port numbers, or IP addresses and port numbers. The processor is configured to retrieve the set of configurations from the native configurations database, wherein the set of configurations includes a plurality of objects; retrieve a private key from the key management database; assign a unique cryptographically secure identity to each object; and anonymize the plurality of objects based on the cryptographically secure identities and the private key.

Claims (59)

1. An anonymizing system comprising:

a native configurations database including a set of configurations, wherein the set of configurations includes one or more ranges, wherein each range includes a contiguous sequence comprised of IP addresses, port numbers, or IP addresses and port numbers;

a key management database including a plurality of private keys;

a processor in communication with the native configurations database and the key management database; and

a memory coupled to the processor configured to store program instructions executable by the processor,

wherein the program instructions, when executed by the processor, cause the processor to:

retrieve the set of configurations from the native configurations database, wherein the set of configurations includes a plurality of objects;

retrieve a private key from the key management database, wherein the private key is associated with the set of configurations;

assign a unique cryptographically secure identity to each object, each identity derived from the private key; and

anonymize the plurality of objects based on the cryptographically secure identities and the private key.

2. The anonymizing system of claim 1 , wherein each range includes one or more of a set of potential hosts, a destination IP address, a source port, and a destination port.

3. The anonymizing system of claim 1 , wherein the step of anonymizing the representation includes assigning a rule-table to the set of configurations, wherein the rule-table includes a plurality of rules that are position-insensitive.

4. The anonymizing system of claim 3 , wherein each range of the anonymized representation includes the same number of members as the corresponding original range.

5. The anonymizing system of claim 1 , wherein the plurality of ranges may be fragmented.

6. The anonymizing system of claim 1 , wherein the step of anonymizing the representation includes the steps of:

create a list of range endpoints;

sort the list of range endpoints; and

compute, for each endpoint, a set of ranges that contain the endpoint but do not begin or end at the endpoint.

7. The anonymizing system of claim 6 , wherein the memory includes further program instructions executable by the processor that, when executed, cause the processor to:

offset the set of ranges.

8. The anonymizing system of claim 1 , wherein the memory includes further program instructions executable by the processor that, when executed, cause the processor to:

generate a public key that describes the range sizes of each object based on the object's cryptographically secure identity.

9. The anonymizing system of claim 1 , further comprising a remote anonymized systems database, and wherein the memory includes further program instructions executable by the processor that, when executed, cause the processor to:

build a representation including a plurality of objects;

assign a unique cryptographically secure identity to each object in the representation, each identity derived from the private key; and

transmit the anonymized representation to the remote anonymized systems database.

10. The anonymizing system of claim 9 , further comprising:

a remote anonymized analysis results database; and

a remote oblivious analysis engine in communication with remote anonymized systems database and the remote database of anonymized analysis results;

a further processor and a further memory coupled to the further processor configured to store further program instructions executable by the further processor,

wherein the further program instructions, when executed by the further processor, cause the further processor to:

receive user input to generate an anonymized analysis of the anonymized representation;

retrieve, by the remote oblivious analysis engine, the anonymized representation from the remote anonymized systems database;

analyze the anonymized representation to develop anonymized analysis results; and

store the anonymized analysis results in the remote anonymized analysis results database.

11. The anonymizing system of claim 1 , further comprising a remote anonymized configurations database, and wherein the memory includes further program instructions executable by the processor that, when executed, cause the processor to:

transmit the anonymized plurality of objects to the remote anonymized configurations database.

12. The anonymizing system of claim 11 , further comprising:

a remote anonymized analysis results database; and

a remote oblivious analysis engine in communication with remote anonymized systems database and the remote database of anonymized analysis results;

a further processor and a further memory coupled to the further processor configured to store further program instructions executable by the further processor,

wherein the further program instructions, when executed by the further processor, cause the further processor to:

receive user input to generate an anonymized analysis of the anonymized representation;

retrieve, by the remote oblivious analysis engine, the anonymized plurality of objects from the remote anonymized configurations database;

build a representation based on the anonymized plurality of objects;

assign a unique cryptographically secure identity to each object in the representation, each identity derived from the private key; and

transmit the anonymized representation to the remote anonymized systems database.

13. The anonymizing system of claim 12 , wherein the further memory includes further program instructions executable by the further processor that, when executed, cause the further processor to:

retrieve the anonymized representation from the remote anonymized systems database;

analyze the anonymized representation to develop anonymized analysis results; and

store the anonymized analysis results in the remote anonymized analysis results database.

14. The anonymizing system of claim 1 , wherein the memory includes further program instructions executable by the processor that, when executed, cause the processor to:

generate a de-anonymization key; and

store the de-anonymization key in the key management database.

15. The anonymizing system of claim 14 , wherein the memory includes further program instructions executable by the processor that, when executed, cause the processor to:

receive user input to de-anonymize the anonymized analysis results;

receive, from the remote anonymized analysis results database, the anonymized analysis results and the de-anonymization key from the key management database; and

invert the anonymization performed on the representation;

present the de-anonymized results to the user.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Jul 1, 2025
From: HERCULES CAPITAL, INC.
To: NETWORK PERCEPTION, INC.
Reel/Frame 071582/0604 →
SECURITY INTEREST Recorded Jun 30, 2025
From: DRAGOS, INC.
To: ACQUIOM AGENCY SERVICES LLC
Reel/Frame 071568/0864 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2018
From: NICOL, DAVID M
To: NETWORK PERCEPTION, INC
Reel/Frame 047173/0346 →
Continuity (2)
Provisional Application 62572517 · Oct 15, 2017
Related Publication 20190116033A1 · Apr 18, 2019
Cited By (3)
US 12,309,272 US 12,316,599 US 12,432,183