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)
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:
 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.

No comments:

Post a Comment