ERROR DETECTION & RECOVERY
Five error types can corrupt OTP messages. Knowing how to detect, locate, and recover from errors is essential to field operations.
8.1 Common Errors and Their Signatures
Errors in OTP operations fall into five distinct categories. Each has a characteristic signature that tells you what went wrong and how to recover.
Error Type 1: Page Mismatch
| SYMPTOM | Decryption produces total gibberish from the first digit. |
| CAUSE | Wrong pad page loaded. |
| RECOVERY | Try adjacent pages. If none work, request retransmission via OOB channel with confirmation of page ID. |
Error Type 2: Position Mismatch
| SYMPTOM | First N characters decode correctly, then gibberish. |
| CAUSE | Receiver started at wrong position within the correct page. By coincidence, a short run of correct plaintext was produced. |
| RECOVERY | Try nearby starting positions. A distinctive message header (known phrase) helps narrow the search quickly. |
Error Type 3: Transcription Error in Ciphertext
| SYMPTOM | One isolated character in the decoded plaintext is wrong. Surrounding characters are correct. |
| CAUSE | Single digit error in the ciphertext (not the key). |
| RECOVERY | The error is in the digit string corresponding to that character. If the character is a 2-digit code, either digit could be wrong. A plausible English word context usually recovers the intent. |
Error Type 4: Checkerboard Parsing Error
| SYMPTOM | Correct characters followed by a cascade of wrong characters, often including nonsense letter combinations. |
| CAUSE | An escape digit was missed or a non-escape digit was treated as one. |
| RECOVERY | Try decoding from the point of first wrong character, attempting both 1-digit and 2-digit interpretations at each step. |
Errors 1–3 are isolated — they corrupt one position. Error 4 is cascading — it corrupts everything after the point of failure. This is the most dangerous error in hand operations.
Error Type 5: Off-by-One Key Position
| SYMPTOM | All characters are wrong by a consistent mod-10 offset. (The difference between decoded digit and correct digit is the same value throughout.) |
| CAUSE | Key stream was off by one position, or one key digit was skipped. |
| RECOVERY | Hard to detect without cribs. Use a known-plaintext start sequence to detect this class of error. |
Error Propagation Analysis
The figure below illustrates the critical difference between mod-10 arithmetic errors (isolated, self-correcting) and checkerboard parsing errors (cascading, catastrophic).
8.2 Crib-Based Recovery
A crib is a known or expected piece of plaintext. If you expect the message to begin with READY or CONFIRM or a standard header, you can try to align your key stream to produce that output.
This is exactly what VENONA analysts did in reverse: they guessed probable plaintext, found the key segment, and used that segment to decode adjacent text.
Crib-based analysis is both your recovery tool and your adversary's attack tool. The same technique that helps you fix errors can help an analyst break messages — if keys are reused.
For operational use: always begin messages with a short agreed-upon standard phrase. This is called a message indicator. It serves multiple purposes:
- Confirms correct key alignment
- Provides the receiver an immediate sanity check
- If decrypted correctly, implies the rest of the message is probably right
8.3 Checksum Conventions
Some systems add a simple arithmetic check to each message.
Method: Digit Sum Mod 10
- Compute the sum of all ciphertext digits, mod 10.
- Append the result as the first digit of the final group. (Or as a separate single-digit message appended to the end.)
- Receiver recomputes and compares.
This catches most single-digit transcription errors and all off-by-ten errors. It does not guarantee correctness.
Sum: 6+7+7+5+6+4+9+9+9+4+7+2+4+3+7+4+2+0+2+0+5+8+2+9+3+6 = 139
139 mod 10 = 9
Transmit check digit: 9
If receiver recomputes and gets 9, probability of undetected error is low.
8.4 Exercises
Given this damaged ciphertext (X = illegible digit) and key, recover as much plaintext as possible and identify the likely plaintext for the damaged position:
Hint: look at the context of recovered characters to infer the damaged one.
A decoded message reads:
MEVT/THE/TRAIN/AT/THR/E/OCLOCK
One character appears corrupted. What is the likely intended message? Which digit position in the ciphertext is the error most likely in?
Compute the check digit for the following ciphertext digit string:
Interactive: Error Challenge
The ciphertext below was encrypted from known plaintext. Two digits were corrupted during transmission. Click on the digits you believe are wrong.