views:

66

answers:

2

I understand that the cyphertext from a properly used one time pad cypher reveals absolutely no data about the encrypted message.

Does this mean that there is no way to distinguish a message encrypted with a one time pad from completely random noise? Or is there some theoretical way to determine that there is a message, even though you can't learn anything about it?

+1  A: 

If your one-time pad is completely random, then anything XOR'd with it also is (assuming your message has no/low correlation with the contents of the one-time pad).

Chris Jester-Young
Of course you could randomly generate a pad of all-0 bits, which would be completely random and have no correlation with the message, but still be distinguished from random noise.
Gabe
@Gabe: Seems a little circular. Shouldn't true random number generators generate "noise"? It's incredibly unlikely that you'll get 4096 bits of zeros but much more likely that your random data when XOR'ed with the message will generate an English-readable word/sentence of 512 characters. Even one that makes good sense.
Andrew Flanagan
Andrew: I never said it was likely, just that it could happen!
Gabe
+4  A: 

There is no way to determine if a string has been encrypted with a OTP. You can produce any string of the same size by choosing an appropriate key.

For example (from the Wikipedia One Time Pad article), the plaintext "HELLO" can be encrypted with the key "XMCKL", giving ciphertext "EQNVZ". But it is possible to find keys which produce any 5 character plaintext, such as "LATER". There is no way to determine the original plaintext without the original key.

A OTP can be 'broken' if it is reused (and therefore is no longer a one time pad). The Venona Project is an example of what can happen when OTPs are reused.

A major drawback to OTPs is that you must securely distribute a key equal in size to the plaintext to be encoded.

Fred