One-Time Pad Guide
Share
The One-Time Pad (OTP) is a highly secure encryption method used for confidential communication. Its strength lies in the fact that each encryption key is used only once, making it theoretically unbreakable if implemented correctly. Individuals or groups who need to ensure the absolute privacy of their messages, especially when other communication channels might be compromised or monitored, would use an OTP. This method is particularly valuable in situations where secrecy is paramount, such as sensitive negotiations, covert operations, or protecting personal information from unauthorized access.
This guide explains how to use your One-Time Pad sheet in conjunction with an encode/decode checkerboard to encrypt and decrypt messages. The OTP provides a layer of numerical randomness, while the checkerboard acts as a key for converting letters and symbols to numbers and vice versa.
In order to utilize the security of the One-Time Pad, it's paramount that the numbers you've filled in on the sheet are truly random.
Understanding Your Tools:
- One-Time Pad Sheet: Contains rows of five-digit numbers. Each row contains one five-digit identifier followed by three additional five-digit numbers used for encoding.
- Checkerboard: A table containing letters, numbers, and symbols, each associated with a specific code.
Here's how to use them together:
1. Preparation:
- Ensure both the sender and the receiver have identical copies of the One-Time Pad sheet and the Checkerboard.
2. Encryption Process (Sender):
- Choose a Starting OTP Row (Select an Identifier): The sender looks at their One-Time Pad sheet and selects a row to begin encoding their message. The first five-digit number on this row is the identifier.
- Importance of the Identifier: This identifier tells the receiver exactly which row of their OTP sheet they need to use to decode the message.
- Convert Plaintext to Numbers (using the Checkerboard): Take your plaintext message and use the checkerboard to convert each letter, number, or symbol into its corresponding numerical code.
- Obtain Key Numbers (from the OTP Sheet): Starting from the chosen row, take the three subsequent five-digit numbers (after the identifier) to use as the key for encoding.
- Combine Message Numbers with Key Numbers: For each numerical code of your message, take the next available digits from the OTP key numbers and add them together (modulo 10). Continue this process sequentially through the digits of the three five-digit numbers in the current row.
- Using Subsequent Rows for Long Messages: If your message requires more key digits than are available in the current row (after the identifier), continue the encoding process by moving to the next row on your OTP sheet. When you move to the next row, you will use all four of the five-digit numbers in that row for encoding, with the first five-digit number of that row now serving as part of the key instead of a new identifier. Continue using subsequent rows in this manner as needed for the length of your message. This process of continuing onto the next row should be a pre-arranged understanding between the sender and the receiver.
- Transmit the Encrypted Message: The sender transmits the identifier (the first five numbers of the starting OTP row) followed immediately by the sequence of encrypted numbers. The length of the encrypted message will indicate to the receiver if they need to use subsequent rows for decoding.
3. Decryption Process (Receiver):
- Identify the Starting Key (OTP Row): The receiver looks at the first five digits of the received message. This is the identifier that corresponds to the starting row on their identical OTP sheet.
- Obtain Key Numbers (from the OTP Sheet): Locate the identified starting row on your OTP sheet and take the subsequent three five-digit numbers from that row. If the length of the received encrypted message indicates that multiple rows were used for encoding, continue taking the key numbers from the subsequent rows in order, using all four numbers from each subsequent row.
- Extract Encrypted Numbers: Remove the initial five digits (the identifier) from the received message. The remaining digits are the encrypted message.
- Subtract Key Numbers (from the Encrypted Numbers - Modulo 10): For each number in the encrypted message, take the next available digit from the OTP key numbers (from the identified starting row and subsequent rows if used) and subtract it (modulo 10).
- Convert Numbers Back to Plaintext (using the Checkerboard): Take the resulting sequence of numbers and use the checkerboard to convert each numerical code back to its corresponding letter, number, or symbol.
4. Key Rules - One Time Only!
- The starting row (identified by the initial identifier) and any subsequent rows used for a single message must be considered used only once and should not be reused for other messages.
Key Things to Remember:
- Identical Sheets: Both sender and receiver must have the exact same OTP sheet and checkerboard.
- Identifier as Starting Point: The first five numbers of the encrypted message indicate the starting OTP row used.
- Sequential Row Use: For messages longer than what the initial row's key numbers can handle, encoding and decoding continue on subsequent rows, using all four numbers of those rows.
- One-Time Use: The sequence of OTP rows used for a message is for single use only.
- Modulo 10 Arithmetic: Remember to use modulo 10 addition for encryption and modulo 10 subtraction for decryption.
- Secure Storage: Keep both your OTP sheet and checkerboard secure.
One-Time Pad Example
Identifier: 98765 Key Numbers: 54321 09876 56789
And the corrected checkerboard codes:
- H = 75
- E = 2
- L = 78
- L = 78
- O = 5
Encoding Process (Sender):
- Choose the OTP Row: The sender chooses the row with the identifier 98765.
- Convert Plaintext to Numbers (using the Checkerboard):
- H = 75
- E = 2
- L = 78
- L = 78
- O = 5
- Obtain Key Numbers (from the OTP Sheet): The sender takes the key numbers from the chosen row: 54321 09876 56789
- Combine Message Numbers with Key Numbers (Modulo 10):
- For 'H' (code 75) and the first part of the key (54321):
- 7 + 5 = 12 (becomes 2 modulo 10)
- 5 + 4 = 9 (modulo 10)
- Encoded number for 'H' is 29.
- For 'E' (code 2) and the next part of the key (54321):
- 2 + 3 = 5 (modulo 10)
- Encoded number for 'E' is 5.
- For 'L' (code 78) and the next part of the key (09876):
- 7 + 0 = 7 (modulo 10)
- 8 + 9 = 17 (becomes 7 modulo 10)
- Encoded number for 'L' is 77.
- For 'L' (code 78) and the next part of the key (09876):
- 7 + 8 = 15 (becomes 5 modulo 10)
- 8 + 7 = 15 (becomes 5 modulo 10)
- Encoded number for 'L' is 55.
- For 'O' (code 5) and the next part of the key (56789):
- 5 + 5 = 10 (becomes 0 modulo 10)
- Encoded number for 'O' is 0.
- Transmit the Encrypted Message: The sender transmits the identifier followed by the encoded numbers: 98765 29 5 77 55 0.
Decoding Process (Receiver):
- Identify the Key (OTP Row): The receiver looks at the first five digits of the received message: 98765. They locate this identifier on their OTP sheet.
- Obtain Key Numbers (from the OTP Sheet): The receiver takes the subsequent key numbers from the row with identifier 98765 followed by 54321 09876 56789.
- Extract Encrypted Numbers: The receiver removes the identifier: 29 5 77 55 0.
- Subtract Key Numbers (from the Encrypted Numbers - Modulo 10):
- For 29 and key digits 5 and 4:
- 2 - 5 + 10 = 7 (modulo 10)
- 9 - 4 = 5 (modulo 10)
- Result is 75 ('H').
- For 5 and key digit 3:
- 5 - 3 = 2 (modulo 10)
- Result is 2 ('E').
- For 77 and key digits 0 and 9:
- 7 - 0 = 7 (modulo 10)
- 7 - 9 + 10 = 8 (modulo 10)
- Result is 78 ('L').
- For 55 and key digits 8 and 7:
- 5 - 8 + 10 = 7 (modulo 10)
- 5 - 7 + 10 = 8 (modulo 10)
- Result is 78 ('L').
- For 0 and key digit 5:
- 0 - 5 + 10 = 5 (modulo 10)
- Result is 5 ('O').
- Convert Numbers Back to Plaintext (using the Checkerboard): The receiver uses the checkerboard to convert the numbers back to letters:
- 75 corresponds to H
- 2 corresponds to E
- 78 corresponds to L
- 78 corresponds to L
- 5 corresponds to O
The decoded message is "HELLO".