# If there exists MPC protocols such that f(x1,x2,…,xn)--> y,y,…,y then there exists MPC such that f(x1,x2,…,xn)--> y1,y2,…,yn

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

• any possible hint is welcome! – user76769 Mar 14 '20 at 19:33
• Hint: Can you somehow exploit everyone's individual input being secret? – SEJPM Mar 14 '20 at 22:10

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.