Patent ID: 8731199

Claim:
A method operable on a first computing device for proving that private data meets a criterion where the private data is not revealed, the method comprising: transferring a first commitment and a second commitment to a second computing device, wherein the first commitment represents a commitment to the private data and a first random number and the second commitment represents a commitment to a second random number and a third random number; receiving a first challenge that is a challenge to the first and the second commitments from the second computing device; receiving a garbled circuit for a predicate function and a first support function that are in encrypted forms from the second computing device, wherein the predicate function represents the criterion; producing an evaluation result by evaluating the predicate function and the first support function of the garbled circuit using a first encryption result that represents the private data in encrypted form, a second encryption result that represents the second random number in encrypted form, and the first challenge, wherein the evaluation result includes a first part based on the first encryption result, the second encryption result, and the first challenge and includes a second part based on the first encryption result, the first part is referred to as the first response, and the second part is referred to as the predicate result; transferring the evaluation result to the second computing device; receiving a second challenge from the second computing device; producing a second response from a second support function using the second challenge, the first random number, and the third random number; and transferring the second response to the second computing device, wherein: the first support function is a homomorphic mapping of a check function of the first and the second commitments, and the predicate result over the private data is deemed true if a check function result of the check function is equal to a third commitment of the first response and the second response.