Here's something I've been thinking about: Is it possible to create a computer system based on encryption? Could you have a computer that does not just increase the program counter for each instruction, but instead jumps around forward and back based on a combination of an encrypted program and a public key? Without the public key, the computer would never know what the next instruction was. If you try to watch the execution, to figure out the order, you can't tell if the next address was chosen because it's just next or if it was chosen as the result of a comparison. A new encryption/decryption algorithm would need to be invented so as to securely hide how the next address was chosen. Decryption hardware would have to be created so things run fast enough. There is lots of other things to be worked out, but is it possible? If it is possible, software piracy is given a major blow with such a system. Have any particular program encrypted with a different private key for each customer. Compile the name of the purchaser into the program code, and then tracing illegal copies to the leak is trivial. In case it's not clear above, the whole system is based on encryption. It is not just a matter of the executable being encrypted. I don't want the owner to be able to decrypt the executable and run that, he has to run it encrypted. Peter Baumbach baumbach@atmel.com