US 12,488,139 B2
Data services with privacy preservation and repeatability
Margarita Vald, Tel Aviv (IL); and Yaron Sheffer, Tel Aviv (IL)
Assigned to INTUIT INC., Mountain View, CA (US)
Filed by INTUIT INC., Mountain View, CA (US)
Filed on Sep. 23, 2021, as Appl. No. 17/483,663.
Prior Publication US 2023/0093406 A1, Mar. 23, 2023
Int. Cl. G06F 21/62 (2013.01); G06F 21/31 (2013.01); G06F 21/60 (2013.01)
CPC G06F 21/6245 (2013.01) [G06F 21/31 (2013.01); G06F 21/602 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A method comprising:
receiving, by a processor, a first request to perform an operation and one or more data particular to a requester of the first request;
preprocessing, by the processor, one or more data required to perform the operation by identifying and removing one or more outliers in the data;
generating, by the processor, a seed derived from the preprocessed data required to perform the operation, wherein one or more future requests for the same operation with the same data will cause the same seed to be generated, wherein generating the seed comprises hashing at least a portion of the data required to perform the operation and the data particular to the requester of the operation, wherein the data particular to the requester of the operation comprises at least a secret value unique to the requester of the operation and locally held by the processor;
determining, by the processor, a range for a perturbation by comparing at least one previous data used to previously perform the operation and the one or more data required to perform the operation and determining the range in accordance with a result of the comparing;
generating, by the processor, the perturbation by inputting the seed into the pseudorandom number generator, the generating the perturbation comprising configuring the pseudorandom number generator to produce the perturbation within the range, wherein one or more future requests for the same operation with the same data will cause the same perturbation to be generated;
generating, by the processor, an actual result based on performing the operation;
generating, by the processor, a perturbed result, wherein generating the perturbed result comprises performing a second operation based on the actual result and the perturbation; and
returning, by the processor, the perturbed result in response to the first request without having prior knowledge about state information associated with one or more previous requests.