Comment Still an open research question (Score 1) 150
you want to virtualize a computer, run the program and then check that:
* the computations have not been hampered with
* nobody has been snooping in your computations
This goal is currently out of reach. It is an open problem in computer science if it's even possible!
The exact term is "encrypted computation". Imagine if you could not only encrypt a file, but run it after it's been encrypted! You could send the file to some cloud and run it there, without revealing _what_ is being computed or what data you use. You get the result back and safely decrypt it on your own PC.
Now if someone in the cloud tried to attack your computer program, with a buffer overflow say, or the hardware it ran on was faulty, the encrypted result would be garbage and you wouldn't be able to decrypt it. That's actually great, because it gives you a way to check if the program ran correctly or not. Just like how checksums assure you that a file has been transmitted correctly. If we had this capability, we could run any program on fast, cheap, but error-prone hardware. We could run anything on graphic cards, which make a mistake now and then, overclock CPUs far more than today, or maybe even run faster and cheaper hardware that nobody has yet built, because it would be too error prone.