Show that if there exists MPC for all same-output n-party functionalities then there exists MPC for all diff-output functionalities.

  • $\begingroup$ any possible hint is welcome! $\endgroup$
    – user76769
    Commented Mar 14, 2020 at 19:33
  • 3
    $\begingroup$ Hint: Can you somehow exploit everyone's individual input being secret? $\endgroup$
    – SEJPM
    Commented Mar 14, 2020 at 22:10

1 Answer 1


Let's try and construct the different-output functionality $f_d$ using the same-output functionality $f_s$. The idea is to have each party, $P_i$ send a "key" $k_i$ along with its (secret) input which is in turn used to encrypt its output $y_i$. We simply pad the output with the key i.e. let $t = (y_1 \oplus k_1) \| (y_2 \oplus k_2) \| \ldots \| (y_n \oplus k_n)$. $f_d$ can be run using $f_s$ as a sub-protocol as shown below

$$ \begin{align} f_d(x_1 \| k_1, x_2 \| k_2, \ldots, x_n \| k_n) &= f_s(x_1 \| k_1, \ldots, x_n \| k_n)\\ &= t, t, \ldots, t \end{align} $$

$\|$ denotes the string concatenation operator and $\oplus$ denotes the XOR operator.

Each party will be able to remove the pad for the substring corresponding to its output but gains no information about the other party's output. Thus, in essence, the output of $f_d$ is of the format $y_1, y_2, \ldots, y_n$ as required.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.