IP Library Granted Patent US 12,632,573
Granted Patent B2
US 12,632,573 · App. 17/184,365 · Granted May 19, 2026

Method, apparatus, and computer-readable medium for automated construction of data masks

Inventors: Bala Kumaresan (Cupertino, CA); Igor Balabine (Menlo Park, CA)
Assignee: INFORMATICA LLC
G06F21/604
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 12,632,573
App. No.
17/184,365
Granted
May 19, 2026
Kind
B2
Abstract

A system, method and computer-readable medium for generating a data masking syntactic definition for a data element of an unknown data type, including generating one or more alphabets corresponding to one or more element member positions of the data element based at least in part on element members occurring at each element member position in a plurality of data elements of the unknown type, each alphabet comprising a set of one or more sequential element members that have occurred in the plurality of data elements at an element member position and generating a positional map describing a syntactic structure of the data element by mapping at least one of the one or more alphabets to each element member position of the data element.

Claims (59)

1 . A method executed by one or more computing devices for generating a data masking syntactic definition for a data element of an unknown type comprising:

generating, by at least one of the one or more computing devices, one or more alphabets based at least in part on scanning symbols occurring at a plurality of positions of a plurality of data elements of the unknown type, wherein each alphabet corresponds to one or more positions of the data element and comprises a set of one or more symbols that have occurred at each of the one or more positions of the plurality of data elements; and

generating, by at least one of the one or more computing devices, a positional map describing a syntactic structure of the data element by mapping at least one of the one or more alphabets to each position of the data element in a memory of at least one of the one or more computing devices; and

generating, by at least one of the one or more computing devices, one or more special conditions, wherein each special condition in the one or more special conditions maps one or more affected positions in the data element to a conditional subset of at least one alphabet mapped to the one or more affected positions.

2 . The method of claim 1 , further comprising determining the plurality of data elements by:

receiving, by at least one of the one or more computing devices, a set of data elements, the set of data elements having a plurality of different data element lengths, wherein data element length is a measure of the number of element member positions;

dividing, by at least one of the one or more computing devices, the set of data elements into a plurality of groups of data elements based on the data element length of each data element in the set of data elements; and

selecting, by at least one of the one or more computing devices, a group of data elements in the plurality of groups of data elements which has a data element length equal to a data element length of the data element as the plurality of data elements.

3 . The method of claim 1 , wherein the one or more special conditions are generated based at least in part on one or more trends in the scanned symbols occurring at a plurality of positions.

4 . The method of claim 1 , wherein the data masking syntactic definition comprises the one or more alphabets, the positional map, and the one or more one or more special conditions, and further comprising:

generating, by at least one of the one or more computing devices, a masked data element using the data masking syntactic definition.

5 . The method of claim 1 , wherein each alphabet comprises a set of one or more sequential symbols.

6 . The method of claim 1 , wherein generating one or more alphabets based at least in part on scanning symbols occurring at a plurality of positions of a plurality of data elements of the unknown type comprises:

generating a plurality of dictionaries based at least in part on symbols occurring in the plurality of data elements at each of the plurality of positions, wherein each dictionary in the plurality of dictionaries includes symbols occurring at a corresponding position in the plurality of positions;

generating a plurality of potential alphabets by, for each dictionary in the plurality of dictionaries, generating one or more sets of sequential symbols such that the union of the one or more sets of sequential element members includes each symbol in that dictionary, the one or more sets of sequential symbols corresponding to one or more potential alphabets in the plurality of potential alphabets; and

merging the plurality of potential alphabets into the one or more alphabets.

7 . The method of claim 6 , wherein merging the plurality of potential alphabets into the one or more alphabets comprises one or more of:

removing any redundant potential alphabets in the plurality of potential alphabets; or

applying an outlier detection test to the plurality of potential alphabets to remove any potential alphabets which are outliers relative to the plurality of potential alphabets.

8 . An apparatus for generating a data masking syntactic definition for a data element of an unknown type, the apparatus comprising:

one or more processors; and

one or more memories operatively coupled to at least one of the one or more processors and having instructions stored thereon that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to:

generate one or more alphabets based at least in part on scanning symbols occurring at a plurality of positions of a plurality of data elements of the unknown type, wherein each alphabet corresponds to one or more positions of the data element and comprises a set of one or more symbols that have occurred at each of the one or more positions of the plurality of data elements;

generate a positional map describing a syntactic structure of the data element by mapping at least one of the one or more alphabets to each position of the data element in a memory of at least one of the one or more memories; and

generate one or more special conditions, wherein each special condition in the one or more special conditions maps one or more affected positions in the data element to a conditional subset of at least one alphabet mapped to the one or more affected positions.

9 . The apparatus of claim 8 , wherein at least one of the one or more memories has further instructions stored thereon to determine the plurality of data elements that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to:

receive a set of data elements, the set of data elements having a plurality of different data element lengths, wherein data element length is a measure of the number of element member positions;

divide the set of data elements into a plurality of groups of data elements based on the data element length of each data element in the set of data elements; and

select a group of data elements in the plurality of groups of data elements which has a data element length equal to a data element length of the data element as the plurality of data elements.

10 . The apparatus of claim 8 , wherein the one or more special conditions are generated based at least in part on one or more trends in the scanned symbols occurring at a plurality of positions.

11 . The apparatus of claim 8 , wherein the data masking syntactic definition comprises the one or more alphabets, the positional map, and the one or more one or more special conditions, and wherein at least one of the one or more memories has further instructions stored thereon that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to:

generate a masked data element using the data masking syntactic definition.

12 . The apparatus of claim 8 , wherein each alphabet comprises a set of one or more sequential symbols.

13 . The apparatus of claim 8 , wherein the instructions that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to generate one or more alphabets based at least in part on scanning symbols occurring at a plurality of positions of a plurality of data elements of the unknown type further cause at least one of the one or more processors to:

generate a plurality of dictionaries based at least in part on symbols occurring in the plurality of data elements at each of the plurality of positions, wherein each dictionary in the plurality of dictionaries includes symbols occurring at a corresponding position in the plurality of positions;

generate a plurality of potential alphabets by, for each dictionary in the plurality of dictionaries, generating one or more sets of sequential symbols such that the union of the one or more sets of sequential element members includes each symbol in that dictionary, the one or more sets of sequential symbols corresponding to one or more potential alphabets in the plurality of potential alphabets; and

merge the plurality of potential alphabets into the one or more alphabets.

14 . The apparatus of claim 13 , wherein the instructions that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to merge the plurality of potential alphabets into the one or more alphabets further cause at least one of the one or more processors to:

remove any redundant potential alphabets in the plurality of potential alphabets; or

apply an outlier detection test to the plurality of potential alphabets to remove any potential alphabets which are outliers relative to the plurality of potential alphabets.

15 . At least one non-transitory computer-readable medium storing computer-readable instructions for generating a data masking syntactic definition for a data element of an unknown type that, when executed by one or more computing devices, cause at least one of the one or more computing devices to:

generate one or more alphabets based at least in part on scanning symbols occurring at a plurality of positions of a plurality of data elements of the unknown type, wherein each alphabet corresponds to one or more positions of the data element and comprises a set of one or more symbols that have occurred at each of the one or more positions of the plurality of data elements;

generate a positional map describing a syntactic structure of the data element by mapping at least one of the one or more alphabets to each position of the data element in a memory of at least one of the one or more memories; and

generate one or more special conditions, wherein each special condition in the one or more special conditions maps one or more affected positions in the data element to a conditional subset of at least one alphabet mapped to the one or more affected positions.

16 . The at least one non-transitory computer-readable medium of claim 15 , wherein at least one of the one or more memories has further instructions stored thereon to determine the plurality of data elements that, when executed by at least one of the one or more computing devices, cause at least one of the one or more computing devices to:

receive a set of data elements, the set of data elements having a plurality of different data element lengths, wherein data element length is a measure of the number of element member positions;

divide the set of data elements into a plurality of groups of data elements based on the data element length of each data element in the set of data elements; and

select a group of data elements in the plurality of groups of data elements which has a data element length equal to a data element length of the data element as the plurality of data elements.

17 . The at least one non-transitory computer-readable medium of claim 16 , wherein the one or more special conditions are generated based at least in part on one or more trends in the scanned symbols occurring at a plurality of positions.

18 . The at least one non-transitory computer-readable medium of claim 15 , wherein the data masking syntactic definition comprises the one or more alphabets, the positional map, and the one or more one or more special conditions, and wherein at least one of the one or more memories has further instructions stored thereon that, when executed by at least one of the one or more computing devices, cause at least one of the one or more computing devices to:

generate a masked data element using the data masking syntactic definition.

19 . The at least one non-transitory computer-readable medium of claim 15 , wherein each alphabet comprises a set of one or more sequential symbols.

20 . The at least one non-transitory computer-readable medium of claim 15 , wherein the instructions that, when executed by at least one of the one or more computing devices, cause at least one of the one or more computing devices to generate one or more alphabets based at least in part on scanning symbols occurring at a plurality of positions of a plurality of data elements of the unknown type further cause at least one of the one or more computing devices to:

generate a plurality of dictionaries based at least in part on symbols occurring in the plurality of data elements at each of the plurality of positions, wherein each dictionary in the plurality of dictionaries includes symbols occurring at a corresponding position in the plurality of positions;

generate a plurality of potential alphabets by, for each dictionary in the plurality of dictionaries, generating one or more sets of sequential symbols such that the union of the one or more sets of sequential element members includes each symbol in that dictionary, the one or more sets of sequential symbols corresponding to one or more potential alphabets in the plurality of potential alphabets; and

merge the plurality of potential alphabets into the one or more alphabets.

21 . The at least one non-transitory computer-readable medium of claim 20 , wherein the instructions that, when executed by at least one of the one or more computing devices, cause at least one of the one or more computing devices to merge the plurality of potential alphabets into the one or more alphabets further cause at least one of the one or more computing devices to:

remove any redundant potential alphabets in the plurality of potential alphabets; or

apply an outlier detection test to the plurality of potential alphabets to remove any potential alphabets which are outliers relative to the plurality of potential alphabets.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: JPMORGAN CHASE BANK, N.A.
To: INFORMATICA LLC
Reel/Frame 073597/0722 →
SECURITY INTEREST Recorded Oct 29, 2021
From: INFORMATICA LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 057973/0568 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2021
From: KUMARESAN, BALA; BALABINE, IGOR
To: INFORMATICA LLC
Reel/Frame 056343/0810 →
Continuity (3)
Continuation 15591661 · May 10, 2017
Continuation In Part 15161586 · May 23, 2016
Related Publication 20220019678A1 · Jan 20, 2022
References Cited (3)
US 20070017985A1 · Lapstun · 2007 [cited by examiner]
US 20110113050A1 · Youn · 2011 [cited by examiner]
US 20150278544A1 · Movshovitz · 2015 [cited by examiner]