In the ideal world, $A$ sends several inputs $x_1,...,x_\lambda$ to the functionality and $B$ sends input $y$. Functionality sends $f(x_1,y),...,f(x_\lambda,y)$ to $A$ and nothing to $B$.
Suppose that we have a protocol which is secure against semi-honest adversaries to realize this functionality.
In this protocol, $A$ sends encrypted values of $x_i$s to $B$. $B$ computes the encrypted result of each $f(x_i,y)$ and sends them back to $A$. $A$ decrypts these values to know each $f(x_i,y)$.
- Is it possible for $A$ to choose $x_i$s in a way that this protocol is also secure against malicious $B$? For example, $A$ can choose some $x_i$s equal or with some specific relation in such a way that any deviation from the protocol is detected?
What I am intended to say is something like cut-and-choose but for outputs instead of inputs.
- More generally, is it necessary to force the malicious party to act honestly at each intermediate step or it is sufficient to force him to output correctly?