I have designed a two-party protocol where two parties outsource their input to the cloud. For example, Alice and Bob have inputs $X$ and $Y$, respectively, after which Alice and Bob encrypt their input independently and then each one outsources the encrypted data to the cloud, independently. Afterward, the cloud performs homomorphic encryption on the encrypted data received from Alice and Bob and sends the result just to Alice.
My protocol is designed in the semi-honest model, and the cloud will not be able to learn anything about the parties' inputs nor the final result. Each party should not learn about another party.
My questions are:
In this protocol, how should I use the real / ideal model paradigm to prove the protocol's security?
Should I consider the cloud as a party who does not have any input and output?
Can I consider the following cases for the security proof of this protocol like this?
a. Alice is corrupted
b. Bob is corrupted
c. Cloud is corrupted
For case c in quesetion 3, how should the simulator simulate? The cloud will only see the encrypted data?