# US 11,997,203 B2 · Systems and methods for privacy preserving accurate analysis of network paths

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,997,203 B2
- Document ID: US11997203B2
- Status: Granted
- Kind: B2
- Application number: 18/133,808
- Filed: 2023-04-12
- Published: 2023-08-10
- Granted: 2024-05-28
- Earliest claimed: 2017-10-15
- Assignees: Network Perception, Inc.
- Applicants: Network Perception, Inc.
- Inventors: David M. Nicol
- Web page: https://patentgrep.com/patent/US11997203B2

## CPC

- H04L 9/14: using a plurality of keys or algorithms
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- H04L 9/0894: {Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage}
- H04L 63/0421: {Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer}
- H04L 63/062: {for key distribution, e.g. centrally by trusted party (cryptographic mechanisms or cryptographic arrangements for key distribution involving a central third party H04L9/0819)}
- H04L 63/1433: {Vulnerability analysis}
- H04L 63/0823: {using certificates (cryptographic mechanisms or cryptographic arrangements for entity authentication involving certificates H04L9/3263)}
- H04L 2463/061: applying further key derivation, e.g. deriving traffic keys from a pair-wise master key
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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 textual descriptions and 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. The present system prevents retrieving the textual descriptions and the ranges of the configuration files of the native configuration database from the anonymized configuration database

## Claims

### Claim 1

A system for anonymizing a group of configuration files to provide an anonymized configuration database, the system comprising:
a native configuration database including sets of configuration files, each configuration file including one or more textual descriptions and one or more ranges, wherein each range includes a consecutive sequence of IP addresses, port numbers, or IP addresses and port numbers, wherein the ranges may be contiguous; and
a key management database including a key assigned to each set of configuration files of the native configuration database;
wherein the program instructions, when executed by the processor, permit the processor to execute steps for anonymizing the textual descriptions and the ranges of the native configuration database to provide an anonymized configuration database, and wherein retrieving the textual description and the ranges of the configuration files of the native configuration database from the anonymized configuration database is prevented.

### Claim 2 (depends on 1)

The system of claim 1, wherein each range includes a consecutive sequence of IP addresses and port numbers.

### Claim 3 (depends on 1)

The system of claim 1, wherein a rule-table is assigned to the set of configuration files, wherein the rule-table includes a plurality of rules that are position-insensitive.

### Claim 4 (depends on 3)

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

### Claim 5 (depends on 1)

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

### Claim 6 (depends on 1)

The system of claim 1, wherein the step of anonymizing the ranges comprises creating a set of ranges that contain an endpoint but do not begin or end at the endpoint, wherein this set of ranges is created by the steps of:
creating a list of range endpoints;
sorting the list of range endpoints; and
computing, for each endpoint, a set of ranges that contain the endpoint but do not begin or end at the endpoint.

### Claim 7 (depends on 6)

The 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.

### Claim 8 (depends on 1)

The 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.

### Claim 9 (depends on 8)

The system of claim 8, 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; and
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.

### Claim 10 (depends on 1)

The 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.

### Claim 11 (depends on 10)

The system of claim 10, further comprising:
a remote anonymized analysis results database;
a remote oblivious analysis engine in communication with remote anonymized systems database and the remote database of anonymized analysis results; and
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.

### Claim 12 (depends on 1)

The 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.

### Claim 13 (depends on 12)

The system of claim 12, 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;
invert the anonymization performed on the representation; and
present the de-anonymized results to the user.

### Claim 14

A method of anonymizing a group of configuration files for secure transmission from a remote-based analysis system to a user, each configuration file comprising an object, each object containing one or more textual descriptions and one or more ranges of consecutive IP addresses, port numbers, or IP addresses and port numbers, said method comprising the steps of:
creating a native configuration database comprising sets of configuration files, each configuration file including one or more textual descriptions and one or more ranges of consecutive IP addresses, port numbers, or IP addresses and port numbers;
assigning a key to the set of configurations, and creating a key management database comprising the keys;
assigning a unique cryptographically secure identity to each object, each cryptographically secure identity being derived from the key; and
anonymizing objects with a cryptographically secure identity derived from the key to provide an anonymized group of configuration files,
wherein retrieving the textual descriptions and the ranges of the native configuration database from the anonymized configuration database is prevented.

### Claim 15 (depends on 14)

The method of claim 14, wherein access to decrypted groups of the anonymized groups of configuration files by a third party is prevented during transmission to and processing by a remote-based analysis system.

### Claim 16 (depends on 15)

The method of claim 15 wherein the remote-based analysis system is a cloud based remote analysis system.

### Claim 17 (depends on 16)

The method of claim 16 wherein a range-intersection within an anonymized collection of ranges of the IP address, port numbers or IP addresses and port numbers, is identified, and wherein the range-intersection is securely preserved in the anonymized groups of configurations processed by the remote-based analysis system, and the anonymized groups of configurations are processed by the remote-based analysis system to provide a processed anonymized group of configurations to be securely transmitted to the user.
