22.04.2014 Views

a590003

a590003

a590003

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

anteed correctness of the computation). Unfortunately, a subtle issue arises when trying to argue correctness of<br />

the simulator. Note that the above discussed check involves decrypting the output. While this is indeed possible<br />

in the real world execution, it is not clear how to perform the same check during simulation. Indeed, in the proof<br />

of security, we would need to rely on the semantic security of the underlying FHE scheme, which conflicts with<br />

performing decryption. We remark that the natural approach of having the simulator perform a related check<br />

(e.g., perform Eval operation of the FHE scheme to match the ciphertexts) rather than perform decryptions can<br />

be defeated by specific attacks by the adversary. We do not elaborate on this issue further here, but note that in<br />

order to argue correctness of simulation, we need to ensure that the verification checks performed in the honest<br />

execution and the simulated executions must be the same.<br />

The above issue is resolved by delegating the functionality G (described above) instead of ¯F . The key idea<br />

is that instead of performing the aforementioned consistency check via decryption (of the single layer of FHE),<br />

we can now perform a similar check by first decrypting the outer layer, and then re-encrypting the input of the<br />

client (the clients are supposed to provide the encryption randomness in the verification protocol) and matching<br />

it with the values X and Y , respectively. The simulator can now be in possession of the outer layer FHE secret<br />

key since we can rely on the semantic security of the inner layer FHE.<br />

The above description is somewhat oversimplified for lack of space. We refer the reader to the protocol<br />

description for more details.<br />

Handling more than two clients. It is easy to see that the obvious extension of the above protocol to the case<br />

of n clients requires the server to compute and return 2 n values. Here we informally describe how to avoid this<br />

problem. Recall that each client picked a random bit b i and sent either (x i , r i ) or (r i , x i ), both doubly encrypted,<br />

depending on the bit b i . To avoid the exponential blow up, we have the n clients jointly generate random bits<br />

b 1 , · · · , b n such that exactly one b i = 1 (where i is random in [n]) and all other b j = 0, j ≠ i (Doing this without<br />

interaction is a significant challenge, but we show that this can be achieved.). Now, the server only needs to<br />

compute 2n ciphertexts: n that encrypt F (x 1 , . . . , x n ) and n that encrypt F (r 1 , . . . , r n ). In this case, we can<br />

prove security of our protocol as long as at most a fraction of the clients are corrupted (even if they collude with<br />

the worker). More details in Section 5.1.<br />

1.4 Related Work<br />

The problem of efficiently verifiying computations performed by an untrusted party has been extensively studied<br />

in the literature for the case of a single client outsourcing the computation to a server. Various approaches have<br />

been used: interactive solutions [GKR08], SNARG-based solutions [BCC88, Kil92, Mic94, BCCT12, GLR11,<br />

DFH12, Gro10, Lip12, GGPR12], and pre-processing model based solutions [GGP10, CKV10, AIK10]. The<br />

works of [KMR11] and [CKKC12] consider outsourcing of multi-party computation but consider only the case<br />

where adversarial parties do not collude with each other or a semi-honest setting. Finally, with a focus on<br />

minimizing interaction, the work of [CKKC13] considers non-interactive multi-client verifiable computation, but<br />

only consider soundness against a malicious server when clients are honest and privacy, independently, against a<br />

malicious server and a malicious client. For a more detailed description of related works, see Appendix A.<br />

2 Preliminaries<br />

2.1 Our Model<br />

In this section, we present in detail, the computation and communication model as well as the security definition<br />

considered in this paper. For simplicity, we shall deal with the two-party case of our protocol first and then show<br />

how to extend this to the mult-party case. In other words, we consdier the setting of 2 clients (or delegators)<br />

D = {D 1 , D 2 } who wish to jointly outsource the computation of any PPT function over their private inputs to<br />

a worker W. Specifically, we consider the case where the clients wish to perform arbitrarily many evaluations<br />

of a function F of their choice over different sets of inputs. Unlike the standard multiparty computation setting,<br />

we wish to ensure that the computation of each client is independent of the amount of computation needed<br />

6<br />

11. How to Delegate Secure Multiparty Computation to the Cloud

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!