CPC G06N 20/00 (2019.01) [G06F 21/602 (2013.01); G06N 3/02 (2013.01)] | 20 Claims |
1. A system comprising:
one or more processors; and
a non-transitory computer-readable medium storing instructions that, when executed by at least one processor among the one or more processors, cause the at least one processor to perform operations comprising:
assigning random input and output labels to a logical circuit;
generating a garbled table comprising an encryption of the output labels with their respective inputs as symmetric keys;
sending the garbled table to an evaluator;
generating an output discloser table that maps each randomized output label with a corresponding output value, encrypted with a pre-shared key k;
sending the output discloser table to an output discloser along with the key k;
providing a randomized input label for the evaluator in response to a request from the evaluator;
receiving a randomized output label from the evaluator;
sending a mapping output value to the evaluator;
receiving a matching encrypted output from the output discloser; and
decrypting the matching encrypted output using the key k.
|