This example is from “Efficient Secure Two-Party Protocols-Carmit Hazay-Yehuda Lindell”.
And the security proof of the above example is this:
I have drawn a picture that is deduced from the above security proof.
I have several questions:
Please, explain to me how the simulator and the adversary interact with each other? I mean what kind of requests can the simulator send to the adversary and vice versa. (what kind of requests can the adversary send to the simulator).
According to the security proof and the picture 1, why does the simulator get input x from the adversary and not from corrupted P1?
Should simulator trust the adversary? I mean is it possible that the adversary, in picture 1, modifies input x, deliberately, and then give it to the simulator? If yes, how will the simulator figure out this modification?
Would you please explain to me what is the real view for P1 and P2 in both pictures? Please explain to me what must the simulator simulate in picture 1 and picture 2?
According to the above definition 2.3.1 and the description on page 24, I think the answer is like this:
Case1: When P1 is corrupted: real view of P1 is (x) and real view of P2 is (x, y, x ^ y) And simulator must simulate P1’s view and P2’s output.
Case2: When P2 is corrupted: real view of P1 is (x) and real view of P2 is (x, y, x ^ y) And simulator must simulate P2’s view and P1’s output.
If my answers are not correct, please correct them.