## Saturday, June 30, 2012

### Double noise encryption

Suppose you wanted to send someone a message, M, in binary it might look like:
M= {0,1,1,0,1,0,1,0...}
Before you send it you XOR it with some random noise R1 that happens to look like this (You save this noise pattern for usage one more time later)
R1={1,0,1,1,0,0,1,1...}
Giving
M(R1)={1,1,0,1,1,0,0,1,...}
Then you send it to person 2, anyone seeing the message en route will just see noise.
Then person 2 takes the message and generates some random noise and saves it for later that looks like this:
R2=      {0,0,1,1,0,1,0,0...}
They XOR the message M(R1) they received with their noise to get:
M(R1,R2)= {1,1,1,0,1,1,0,1,...}
Person 2 sends this back to person 1, anyone who intercepts the message would see something like noise:
Person 1 now uses the noise he saved R1 and !XOR's(the opposite of XOR) it with the message he just received to yield:
M(R2)={1,0,1,0,0,0,0,0,1,...}
Now he sends it back to Person 2, and as usual anyone intercepting just sees random noise:
Person 2 now   !XOR's(the opposite of XOR)  the message with his saved noise R2 to get:
M = {0,1,1,0,1,0,1,0}

So you see now person 2 reads the message person 1 sent without it ever being sent as anything that looked other than random noise.
Once the two computers connect this could be done nearly instantaneously.