Cryptography - One−Time Pad Cipher



The One−Time Pad algorithm is the enhanced version of Vernam Cipher. It is the only known encryption method that is unbreakable, offering complete security. This algorithm encrypts alphabetic text using the substitution technique, assigning numbers to each character in the plaintext.

To use the One−Time Pad effectively, three conditions must be met:

  • The length of the encryption key matches the length of the secret message.

  • The encryption key consists solely of symbols generated randomly.

  • Each encryption key is employed only once and never reused for multiple messages.

In One−Time Pad Encryption system, every message is scrambled using a unique key that is just as long as the message. The encrypted message (known as ciphertext) seems like complete random and has no resemblance to the original message (called plaintext). This makes it very hard to decipher without the correct key.

How One−Time Pad Work?

One−time pads involve creating a sequence of characters or numbers equal to or longer than the expected longest message. This sequence is generated randomly, often using computer programs with random number generators. These values are physically recorded on a pad or readable device. Pads are distributed to individuals who may exchange sensitive messages. They can be distributed as multiple keys, with a specific key assigned to each day or a specific number of uses, ensuring that each key is used only once and then discarded.

When sending a message, the sender encrypts it character by character using a secret key. Using a computer, each bit in a character (typically eight bits) is combined with the corresponding bit in the key using the XOR operation. In a one-time pad system, XOR is the encryption method. If the key's randomness is uncertain, it can be combined with algorithms like MD5. This type of encryption is like adding a random noise to the message, and only the sender and receiver have the means to remove the noise. One−Time pads are used only once and must not be reused. Reusing a pad allows an interceptor to compare messages and potentially decipher them.

To show how a one-time pad works, consider the message "TEST". A secret key "FVEB" of equal length is generated. Each letter is assigned a number, TEST: 19, 4, 18, 19 and FVEB: 5, 21, 4, 1. Adding the numbers corresponding to plaintext and secret key: 24, 25, 22, 20. Converting these numbers back to letters: Encrypted message: YZWU To decrypt, simply reverse the process, revealing the original message "TEST".

One time Pad

Why is the One−Time Pad Unbreakable?

Unbreakable Nature of the One−Time Pad (OTP) is believed to be uncrackable because, unlike the Vigenere cipher that can be broken through pattern analysis, the OTP key is as long as the message itself. Every possible encrypted symbol has an equal chance of representing the same original symbol, making frequency analysis ineffective in uncovering the correct message.

The key used is entirely random and matches the message length, eliminating any predictable patterns for hackers to exploit. The key is discarded after each message is exchanged. Without it, even the sender and receiver cannot decipher the message. Because the key is random and used only once, it leaves no hints or patterns that hackers can guess to break the code.

Encryption of One−Time Pad

Imagine User1 wants to send a private message to User2. User1 writes down "HELLO" and creates a unique key, "QWERT." −

  • To keep the message secret, User1 matches each letter of "HELLO" with the corresponding letter in "QWERT." For example, H = A + Q, E = B + W.

  • User1's encrypted message becomes "QGNNQ."

  • User2 receives the encrypted message and uses the same "QWERT" key to decode it.

  • He reverses the rule: H - A = Q, E - W = G.

  • User2 recovers the original message, "HELLO."

As the key is used only once and is completely unpredictable, anyone who intercepts the encrypted message cannot decipher it without having the key. That's why the One−Time Pad is considered unbreakable.

Decryption of One−Time Pad

To decrypt the message using one time pad follow the below steps −

  • Gather the encrypted message and the encryption key.

  • Reverse the operations performed during encryption: - If letters were added, subtract them.

  • Apply the reversed operations to each letter using the decryption key.

  • Obtain the original, decrypted message by reversing all transformations.

Example

To decrypt "QKRRU" using the key "WORLD": - Subtract "W" from "Q" to get "H". - Subtract "O" from "K" to get "E". - Continue this process for all letters. - The resulting message, "HELLO", is the decrypted plaintext.

Advantages

Below are some advantages of One time Pad cipher we should consider while working with this cipher −

  • One-time pad encryption offers the strongest possible protection by using a key that is kept confidential and only utilized once.

  • Unlike other encryption techniques, it is immune to weaknesses like brute-force or known-plaintext attacks.

  • One-time pad encryption adapts easily to both textual and binary data.

  • Its implementation is straightforward, allowing it to be executed manually or with the support of a computer.

Use Cases for OTP

See the use cases of One−Time cipher below −

  • Critical Communication − Essential communication for military and government operations requiring the utmost security.

  • Diplomatic Confidentiality − Secure communication among top officials, diplomats, and intelligence agencies.

  • Business Secrecy − Protection of sensitive financial and business information from competitors.

  • Personal Privacy − Securing private and confidential information, including medical records and legal documents.

Drawback

While the OTP offers unbreakable security when used correctly, its practical limitations and challenges in key management and distribution make it less suitable for many real-world applications compared to other encryption methods.

Summary

The One−Time Pad Cipher provides high security by using unique keys for each message, making it very impossible for unauthorized parties to decrypt encrypted data without the relevant key. The encryption and decryption process can be implemented with the help of various methods like modulo operation, addition and subtraction, XOR operation, or utilizing Python's onetimepad module.

Both encryption and decryption processes guarantee that the converted characters stay within the allowable ASCII value range, allowing for accurate reversal.

Advertisements