I'm wondering whether it would be theoretically possible for a cloud hosting provider to run an application for a customer where the customer doesn't trust the hosting provider with the data in the application. The customer would upload a virtual machine image (or similar), and the host would run it, but wouldn't be able to read any of its data.
This seems impossible, because the guest has to decrypt the data in memory in order to use it, and the host could directly read the memory of the virtual machine whenever it wanted to.
Is there some trick to get around that problem? Or any kind of partial solution that makes it harder for the host to access the data inside the virtual machine?
EDIT: I realize that the guest can easily store encrypted data that it never decrypts, like an encrypted email being passed along from one user to another. I'm wondering about whether data that the guest can read can be unreadable to the host.