Could anyone direct me to literature regarding privacy proofs in the MPC setting.
For example, how can one prove the following simple problem:
Suppose a setting with $n$ parties $S_1, \ldots, S_n$ wish to compute an additive sharing of $0$, so $r_i\in S_i$ such that $\sum r_i = 0$.
The parties can be assumed to hold some precomputed pairwise shared secrets $k_{ij}=k_{ji}\in S_i,S_j$.
Assume that $H$ is a public hash function. Then the parties compute $$ h_i = \sum_{j\not= i}(-1)^{i<j}H(k_{ij}), $$ where $i<j$ is $1$ if true and $0$ otherwise. Certainly $h_i$ is an additive secret sharing of $0$, and this should be computationaly indistinguishable from, for example, a truly random additive secret sharing computed by some functionality and provided to the parties.
I imagine there should be a generic proof technique for these kinds of problems. Could you direct me to some literature that covers this. I am reading "Secure Multiparty Computation and Secret Sharing" by Cramer, Damgard and Nielsen, but the book seems like an overkill, and I feel like there should be a simpler proof for such a simple statement.
Similarly, consider this statement for a malicious adversary setting. Suppose 1 out of 4 servers can be malicious, they hold a replicated secret sharing of a value, and wish to publish the value itself.
More precisely let $a = a_1 + a_2 + a_3 + a_4$, and let server $i$ hold values $a_i, a_{i+1}$. They wish to reveal $a$, but not all the shares. What they will do is compute a replicated secret sharing of the same form $0=r_1 + r_2 + r_3 + r_4$, server $i$ holding $r_i, r_{i+1}$, and then the servers will publish $(b^i_i, b^i_{i+1})=(a_i+r_i, a_{i+1} + r_{i+1})$ as shown in the table below.
servers | value | mask | output |
---|---|---|---|
$S_1$ | $a_1,a_2$ | $r_1, r_2$ | $b^1_1 = a_1 + r_1,\; b^1_2 = a_2 + r_2$ |
$S_2$ | $a_2,a_3$ | $r_2, r_3$ | $b^2_2 = a_2 + r_2,\; b^2_3 = a_3 + r_3$ |
$S_3$ | $a_3,a_4$ | $r_3, r_4$ | $b^3_3 = a_3 + r_3,\; b^3_4 = a_4 + r_4$ |
$S_4$ | $a_4,a_1$ | $r_4, r_1$ | $b^4_4 = a_4 + r_4,\; b^4_1 = a_1 + r_1$ |
After the servers reveal the outputs, anyone can confirm the correctness of the outputs by checking that $b^i_j = b^k_j$ for all $j=1,2,3,4$, and $k=j, j-1$. Since there is at most one malicious server, we can check their output by comparing it to one of an honest server. Certainly a malicious user can't force a malicious output in this game (but can force an abort since if two outputs are different, there is no way to check which is the honest one.)
Now, I would like to ask how to prove security in this very simple game in the malicious setting? We can also assume that there is a functionality for computing the $r_i$'s, very similar to the one above, by assuming some common secrets and computational security. It seems like there should be a simpler way to prove it rather than going through all the UC framework, but maybe I am wrong.