Patent ID: 8539220

Claim:
A computer-implemented method for performing a function by a server module, the method comprising: obtaining a concealed version of a Boolean circuit at the server module, the Boolean circuit implementing the function using a collection of gates; receiving a first concealed input from a first participant module; using a three-way oblivious transfer technique to receive a second concealed input from a second participant module, the three-way oblivious transfer technique comprising reconstructing the second concealed input using ciphertexts associated with input wires of the Boolean circuit and secret keys associated with a non-concealed input of the second participant module; evaluating the concealed version of the Boolean circuit based on the first concealed input and the second concealed input to generate a concealed output; and sending the concealed output from the server module to the first participant module or the second participant module, wherein the concealed output that is sent from the server module to the first participant module or the second participant module does not reveal actual output values of the evaluating to the server module, wherein the server module is embodied on a computing device that performs at least the evaluating.