Over the passed few days I've been thinking about the possibility of sending bits over "probabilistic" connections.
I've already put together a crude working prototype, and although it does "work", I'm wondering just how secure it is. I can't seem to think of any way that the data could be compromised in transit, but like I said, I just don't know if I've looked at it from enough angles.
Here's a simplified (if contrived) example of how it might work. Suppose you were stranded atop a mountain and suddenly your wife, down at the base, calls and asks for the pin number to your debit card. She's got some shopping to do, but just can't seem to find her card! Fortunately, you have already agreed upon a certain N-bit number, V, in advance. So to send your M-bit pin, all you have to do is the following:
Both parties would obviously be updating V in lock-step. I would think that no one else would be able to make much sense of it though (provided N is large enough of course), just due to the probabilistic nature of the protocol.
Or maybe I'm missing something important here?
I've already put together a crude working prototype, and although it does "work", I'm wondering just how secure it is. I can't seem to think of any way that the data could be compromised in transit, but like I said, I just don't know if I've looked at it from enough angles.
Here's a simplified (if contrived) example of how it might work. Suppose you were stranded atop a mountain and suddenly your wife, down at the base, calls and asks for the pin number to your debit card. She's got some shopping to do, but just can't seem to find her card! Fortunately, you have already agreed upon a certain N-bit number, V, in advance. So to send your M-bit pin, all you have to do is the following:
Code:
Set K = 1.
For M steps:
If the Kth bit of your pin number is zero:
Send S = an unbiased, random sequence.
Otherwise:
Send S = a sufficiently biased sequence.
Set V = V Xor S.
Increment V.
Shift K left.
Or maybe I'm missing something important here?