TBone
October 29th, 2004, 12:51
Ok, long post here, but what the hell.
If you aren't familiar with the term, a "gedanken experiment" is a theoretical experiment carried out in your head (gedanken is the German word for "thought", or so I'm told). I'm not sure who coined the phrase - some attribute it to Einstein, but I suspect it could have been any of the famous German scientists who immigrated to the U.S. during WW2.
Anyway, what got me to thinking about this is quantum cryptography. Well, actually it started with the Diffie-Hellman-Merkle key exchange. The idea that two people can exchange a piece of secret information in a non-secret way demolished a fundamental principle in cryptography that had existed for hundreds (if not thousands) of years. And now we've had an even more startling revelation that by clever use of the uncertainty principle, we can devise a system that allows people to exchange information in a way that makes eavesdropping absolutely impossible by the known laws of physics.
So, my gedanken experiment is this: is there a way to design a computing architecture which is truly uncrackable? The underlying assumption has always been that this impossible because the code must be executed at the processor, where the end user can observe it. If you look a little closer at the premise, what we're really saying is:
If the code is executed by the processor, then the user can observe it.
But what if that's not true? It sounds crazy to suggest that you could execute code without looking at it, but quantum physics is full of situations where simply looking at something completely changes its behavior. Can we design a computing machine that only works right when no one is looking at it? What sort of properties would such as system have to posses in order to work?
I think the first necessary arrangement is that the code is stored at a remote location, and delivered to the computer only as-needed. We can transfer it from the code store to the computer across a quantumly encrypted channel, which we already know how to do over reasonably long distances. Likewise, the computer should be designed so that it never stores any data outside of the execution unit. Data which needs to be stored for later use would need to be sent back to the code store, again using a quantum encryption channel. Obviously, a computer with no local memory is highly impractical for current designs. But this is just a thought experiment, we don't have to be practical, just possible
.
Interestingly enough, the speed penalty of transfering data across long distances becomes much less problematic if we utilize massively parallel processing. If you've read some of Richard Feynman's excellent musings on nanotechnology, you'll see that this is an area in which nanotech shows great potential. Which dovetails in to another property of an uncrackable computer in an interesting unification.
Such a computer would have to be very small. So far we've protected the code from observation from it's storage location to the execution unit, and vice versa. But the much more difficult and unknown task of protecting the execution unit itself from observation remains. Present day circuits are no good for this. They're simply too big. The uncertainty principle and most other quantum effects tend to average out and become negligable in large scale systems. We need a system that's small enough for these effects to become a dominant "force". We have to go down to the atomic and sub-atomic level.
It's here that I get stuck. The general trend in designing such tiny circuits is tha they have to be able to withstand all the random perturbations that occur on such small scale. For example, it's necessary to implement reversable logic gates which will reproduce the original arguments should the flow of the circuit be reversed. But for our system to work, we need the circuits to be in a sense, nondurable. We need the behavior of the circuits to change when observed.
So, does anyone want to take a crack (
) at this? Can you come up with a general scheme for a system that can only function correctly when you don't look at it?
If you aren't familiar with the term, a "gedanken experiment" is a theoretical experiment carried out in your head (gedanken is the German word for "thought", or so I'm told). I'm not sure who coined the phrase - some attribute it to Einstein, but I suspect it could have been any of the famous German scientists who immigrated to the U.S. during WW2.
Anyway, what got me to thinking about this is quantum cryptography. Well, actually it started with the Diffie-Hellman-Merkle key exchange. The idea that two people can exchange a piece of secret information in a non-secret way demolished a fundamental principle in cryptography that had existed for hundreds (if not thousands) of years. And now we've had an even more startling revelation that by clever use of the uncertainty principle, we can devise a system that allows people to exchange information in a way that makes eavesdropping absolutely impossible by the known laws of physics.
So, my gedanken experiment is this: is there a way to design a computing architecture which is truly uncrackable? The underlying assumption has always been that this impossible because the code must be executed at the processor, where the end user can observe it. If you look a little closer at the premise, what we're really saying is:
If the code is executed by the processor, then the user can observe it.
But what if that's not true? It sounds crazy to suggest that you could execute code without looking at it, but quantum physics is full of situations where simply looking at something completely changes its behavior. Can we design a computing machine that only works right when no one is looking at it? What sort of properties would such as system have to posses in order to work?
I think the first necessary arrangement is that the code is stored at a remote location, and delivered to the computer only as-needed. We can transfer it from the code store to the computer across a quantumly encrypted channel, which we already know how to do over reasonably long distances. Likewise, the computer should be designed so that it never stores any data outside of the execution unit. Data which needs to be stored for later use would need to be sent back to the code store, again using a quantum encryption channel. Obviously, a computer with no local memory is highly impractical for current designs. But this is just a thought experiment, we don't have to be practical, just possible

Interestingly enough, the speed penalty of transfering data across long distances becomes much less problematic if we utilize massively parallel processing. If you've read some of Richard Feynman's excellent musings on nanotechnology, you'll see that this is an area in which nanotech shows great potential. Which dovetails in to another property of an uncrackable computer in an interesting unification.
Such a computer would have to be very small. So far we've protected the code from observation from it's storage location to the execution unit, and vice versa. But the much more difficult and unknown task of protecting the execution unit itself from observation remains. Present day circuits are no good for this. They're simply too big. The uncertainty principle and most other quantum effects tend to average out and become negligable in large scale systems. We need a system that's small enough for these effects to become a dominant "force". We have to go down to the atomic and sub-atomic level.
It's here that I get stuck. The general trend in designing such tiny circuits is tha they have to be able to withstand all the random perturbations that occur on such small scale. For example, it's necessary to implement reversable logic gates which will reproduce the original arguments should the flow of the circuit be reversed. But for our system to work, we need the circuits to be in a sense, nondurable. We need the behavior of the circuits to change when observed.
So, does anyone want to take a crack (
