The Vernam cipher is a symmetrical stream cipher, in which is the open text XORed with a prearranged random input (noise) of the same length.
Security
The key (input noise) should never be used more than once, because otherwise the attacker may subtract encrypted messages and get a combination of both unencrypted messages. The combined message can be decomposed to original messages using statistical methods.
If the above mentioned rule is followed and the key is generated truly randomly, the cipher cannot be broken without the explicit knowledge of the key.
Example
Open text: algorithm Encode into ASCII Open text: 01100001 01101100 01100111 01101111 01110010 01101001 01110100 01101000 01101101 Key: 10111001 01110100 00111010 00010101 01101010 11010100 10101010 10001110 10101010 ---------------------------------------------------------------------------------------------- Ciphertext: 11011000 00011000 01011101 01111010 00011000 10111101 11011110 11100110 11000111
The reciever decrypts the ciphertext with the prearranged key.
Ciphertext: 11011000 00011000 01011101 01111010 00011000 10111101 11011110 11100110 11000111 Key: 10111001 01110100 00111010 00010101 01101010 11010100 10101010 10001110 10101010 ---------------------------------------------------------------------------------------------- Ciphertext: 01100001 01101100 01100111 01101111 01110010 01101001 01110100 01101000 01101101 Decode from ASCII Open text: algorithm