# US 12,602,501 B2 · System and method for generating synthetic data

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

- Number: US 12,602,501 B2
- Document ID: US12602501B2
- Status: Granted
- Kind: B2
- Application number: 18/788,040
- Filed: 2024-07-29
- Published: 2026-01-29
- Granted: 2026-04-14
- Earliest claimed: 2024-07-29
- Assignees: Bank of America Corporation
- Applicants: Bank of America Corporation
- Inventors: Manu Kurian; Michael R. Young; Vinesh Premji Patel
- Web page: https://patentgrep.com/patent/US12602501B2

## CPC

- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 21/53: by executing in a restricted environment, e.g. sandbox or secure virtual machine
- G06F 2221/034: Test or assess a computer or a system
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In response to receiving a request to generate synthetic data based on real-world data that is stored in a first memory, a processor accesses the first memory to extract at least a portion of the real-world data to use as sample data and determines data properties of the real-world data based on the sample data. The processor generates, based on the data properties, the requested synthetic data that at least partially mimics the real-world data. In response to detecting a request from an unauthorized user to access the real-world data, the processor provides the unauthorized user access to the synthetic data that mimics the real-world data.

## Claims

### Claim 1

A system comprising:
a memory configured to store data properties of real-world data; and
a processor communicatively coupled to the memory and configured to:
receive a request to generate synthetic data based on real-world data stored in a first memory, wherein the synthetic data at least partially mimics the real-world data;
in response to receiving the request, access the first memory to extract at least a portion of the real-world data, wherein the extracted portion of the real-world data is to be used as sample data for generating the synthetic data;
determine data properties of the real-world data based on the sample data extracted from the first memory;
generate, based on the data properties of the real-world data, the requested synthetic data that at least partially mimics the real-world data stored in the first memory, wherein the data properties associated with the synthetic data at least partially match the data properties associated with the real-world data;
detect a request from an unauthorized user to access the real-world data in the first memory; and
in response to detecting the request to access the real-world data, provide the unauthorized user access to the synthetic data that mimics the real-world data;
wherein the processor is configured to generate the synthetic data by:
obtaining a second piece of data, wherein the second piece of data comprises one or more of a second piece of real-world data or a second piece of synthetic data;
inputting the real-world data and the second piece of data into a data tumbler, wherein the data tumbler is a software program configured to generate the synthetic data by mixing different pieces of data; and
obtaining the synthetic data as an output of the data tumbler.

### Claim 2 (depends on 1)

The system of claim 1, wherein the processor is further configured to:
store the synthetic data in a second memory that is different from the first memory; and
in response to detecting the request to access the real-world data, provide the unauthorized user access to the synthetic data stored in the second memory.

### Claim 3 (depends on 1)

The system of claim 1, wherein:
the real-world data is associated with a production system;
the generated synthetic data is configured to at least partially mimic the real-world data associated with the production system;
the request from the unauthorized user comprises a request to access the production system; and
the processor is further configured to:
generate a sandbox environment using the synthetic data, wherein the sandbox environment is separate from and configured to mimic the production system; and
in response to detecting the request to access the real-world data, provide the unauthorized user access to the sandbox environment.

### Claim 4 (depends on 1)

The system of claim 1, wherein production system runs on a first data server and the sandbox environment runs on a second data server that is different form the first data server.

### Claim 5 (depends on 1)

The system of claim 1, wherein the processor is further configured to generate the synthetic data by obfuscating at least a portion of the real-world data.

### Claim 6 (depends on 1)

The system of claim 1, wherein the processor is configured to use a generative Artificial Intelligence (AI) algorithm to generate the synthetic data based at least in part upon the real-world data.

### Claim 7

A method comprising:
receiving a request to generate synthetic data based on real-world data stored in a first memory, wherein the synthetic data at least partially mimics the real-world data;
in response to receiving the request, accessing the first memory to extract at least a portion of the real-world data, wherein the extracted portion of the real-world data is to be used as sample data for generating the synthetic data;
determining data properties of the real-world data based on the sample data extracted from the first memory;
generating, based on the data properties of the real-world data, the requested synthetic data that at least partially mimics the real-world data stored in the first memory, wherein the data properties associated with the synthetic data at least partially match the data properties associated with the real-world data;
detecting a request from an unauthorized user to access the real-world data in the first memory; and
in response to detecting the request to access the real-world data, providing the unauthorized user access to the synthetic data that mimics the real-world data;
wherein the method further comprises generating the synthetic data by:
obtaining a second piece of data, wherein the second piece of data comprises one or more of a second piece of real-world data or a second piece of synthetic data;
inputting the real-world data and the second piece of data into a data tumbler, wherein the data tumbler is a software program configured to generate the synthetic data by mixing different pieces of data; and
obtaining the synthetic data as an output of the data tumbler.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
storing the synthetic data in a second memory that is different from the first memory; and
in response to detecting the request to access the real-world data, providing the unauthorized user access to the synthetic data stored in the second memory.

### Claim 9 (depends on 7)

The method of claim 7, wherein:
the real-world data is associated with a production system;
the generated synthetic data is configured to at least partially mimic the real-world data associated with the production system;
the request from the unauthorized user comprises a request to access the production system; and
further comprising:
generating a sandbox environment using the synthetic data, wherein the sandbox environment is separate from and configured to mimic the production system; and
in response to detecting the request to access the real-world data, providing the unauthorized user access to the sandbox environment.

### Claim 10 (depends on 7)

The method of claim 7, wherein production system runs on a first data server and the sandbox environment runs on a second data server that is different form the first data server.

### Claim 11 (depends on 7)

The method of claim 7, further comprising generating the synthetic data by obfuscating at least a portion of the real-world data.

### Claim 12 (depends on 7)

The method of claim 7, further comprising using a generative Artificial Intelligence (AI) algorithm to generate the synthetic data based at least in part upon the real-world data.

### Claim 13

A non-transitory computer-readable medium storing instructions that when executed by a processor cause the processor to:
receive a request to generate synthetic data based on real-world data stored in a first memory, wherein the synthetic data at least partially mimics the real-world data;
in response to receiving the request, access the first memory to extract at least a portion of the real-world data, wherein the extracted portion of the real-world data is to be used as sample data for generating the synthetic data;
determine data properties of the real-world data based on the sample data extracted from the first memory;
generate, based on the data properties of the real-world data, the requested synthetic data that at least partially mimics the real-world data stored in the first memory, wherein the data properties associated with the synthetic data at least partially match the data properties associated with the real-world data;
detect a request from an unauthorized user to access the real-world data in the first memory; and
in response to detecting the request to access the real-world data, provide the unauthorized user access to the synthetic data that mimics the real-world data;
wherein generating the synthetic data comprises:
obtaining a second piece of data, wherein the second piece of data comprises one or more of a second piece of real-world data or a second piece of synthetic data;
inputting the real-world data and the second piece of data into a data tumbler, wherein the data tumbler is a software program configured to generate the synthetic data by mixing different pieces of data; and
obtaining the synthetic data as an output of the data tumbler.

### Claim 14 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein the instructions further cause the processor to:
store the synthetic data in a second memory that is different from the first memory; and
in response to detecting the request to access the real-world data, provide the unauthorized user access to the synthetic data stored in the second memory.

### Claim 15 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein:
the real-world data is associated with a production system;
the generated synthetic data is configured to at least partially mimic the real-world data associated with the production system;
the request from the unauthorized user comprises a request to access the production system; and
wherein the instructions further cause the processor to:
generate a sandbox environment using the synthetic data, wherein the sandbox environment is separate from and configured to mimic the production system; and
in response to detecting the request to access the real-world data, provide the unauthorized user access to the sandbox environment.

### Claim 16 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein production system runs on a first data server and the sandbox environment runs on a second data server that is different form the first data server.

### Claim 17 (depends on 13)

The non-transitory computer-readable medium of claim 13, generating the synthetic data comprises obfuscating at least a portion of the real-world data.
