A computer program product for performing distributed, consistent utility-preserving data masking, the computer program product comprising a non-transitory computer-readable storage medium having a computer-readable program stored therein, wherein the computer-readable program, when executed on a computer system comprising at least one processor, causes each of the at least one processor to perform:
- retrieving an original value from a portion of a data table;
- requesting a mapping service to ascertain whether or not a masking table of the mapping service includes a fictionalized value associated with the original value;
- receiving a response from the mapping service indicating a presence or absence of the fictionalized value associated with the original value in the masking table;
- in response to an absence of the fictionalized value associated with the original value in the masking table, generating a proposed fictionalized value for the original value wherein the proposed fictionalized value preserves at least one utility function of the original value;
- sending, by the processor, the proposed fictionalized value for the original value to the mapping service in order for the mapping service to update the masking table to include a mapping between the proposed fictionalized value and the original value in the masking table;
- and
- applying a first data masking operation to the portion of the data table by replacing the original value with the proposed fictionalized value, wherein one or more of the remaining processors among the at least one processors are each configured to replace the original value in other portions of the data table with the proposed fictionalized value in response to the update of the masking table showing a mapping between the original value and the proposed fictionalized value.