The one-time pad is the only encryption cipher that has been proven to be uncrackable if implemented correctly, as such it has been the choice for highly sensitive messages for the past fifty years. Soviet spies used one-time pads in the 1940's and 50's. The line between Washington and Moscow also uses one-time pads. The cipher is very hard to implement correctly.
To use a one-time pad, each party must produce a huge number of random bits and share them secretly. When the first person has a message to send to someone, they retrieve a number of random bits equal to the length of the message, and use them to be the message's key. An exclusive or operation (XOR) is applied to the key and the message to produce the encrypted message. The number of bits must be exactly the same size as the number of characters in the message. The key must also consist of random bits that are kept secret from everyone except the sender and receiver.
When the receiver gets the message, he retrieves the same bits from his copy of the random bit collection. He must retrieve the same random bits in exactly the same order that the sender used them. Then they use the sequence of random bits to decrypt the message. The XOR operation is applied to the message and the key to retrieve the plain text.
When properly used, one-time pads have been mathematically proven to be uncrackable. They were first developed by Claude Shannon in the 1940s as a way to keep data secure. A one-time pad is impossible to crack because knowing the cipher text does not mean you can be certain about the contents of the original, plain text message.
One time pads are not generally practical for 4 reasons:
- It's hard to provide enough randomly-generated bits to both sender and receiver to protect all anticipated messages.
- They are hard to implement for huge data secrecy requirements.
- It's hard to ensure the bits are in the right order at both ends.
- It's hard to avoid using the same bits by mistake.
Web browsers and DNS servers use regular stream ciphers like RC4 or lfsr instead of one time pads because they are much easier to use and provide very strong, if not provably impenetrable, security.
When Soviet KGB operatives used one-time pads, they used a decimal code instead of binary bits that are traditionally used. In binary, the XOR operation is essentially an, addition without carry operation, in which the overflow is discarded: in particular, 1+1=0. In a decimal code, addition without carry discards the second digit, as in 7+7 = 4, or 8+8=6. Originally one-time pads were printed in small books, and the spies would destroy pages of numbers as they were used. There is a picture of a book used then in the One-Time Pad FAQ, a book by Marcus Ranum.
One-Time Pads cause a lot of confusion. Some manufactures call their products One-Time Pads because they are provably secure, and they hope that the association will convey total security to their product. Such products are called snake oil in the crypto community which is a product that has been proven to not live up to the vendor's marketing hype. Another problem is people trying to explain the concept, and not wholly understanding it themselves, which leads to a lot of misconceptions. The hardest thing for many people to understand is the notion of total and true randomness.
Here are some other examples that are connected with one-time pads:
Vigenere cipher - a code in which each letter in the plain text is replaced by a different letter taken from one of several different character diagrams. The different character diagrams are usually made by moving the plain text characters by different numbers of steps. The key identifies the sequence of characters used. Vigenere ciphers often use cipher discs for implementation.
Vernam cipher - a Vigenere cipher in which the alphabet consists only of the binary values 0 and 1. Vernam's original cipher used a repeating key but the cipher was easy to break even with extremely long keys. He then made a version where the key did not repeat, this was the first implementation of a one-time pad.
Stream cipher - a Vernam cipher in which the key is generated by a pseudo-random number generator, to eliminate the repeating bit stream.
Need an essay? You can buy essay help from us today!