One-Time-Pad Reuse Detector
Detect overlap of independently identified actual one-time-pad byte ranges; not ciphertext analysis or proof of pad randomness.
Description
Detect overlapping byte allocations that declare the same one-time-pad identifier.
Reusing overlapping portions of a one-time pad defeats the intended single-use allocation discipline. This checker screens declared pad identifiers and byte ranges for overlap.
When to use this tool
Detect overlapping byte allocations that declare the same one-time-pad identifier. Use it when the input measurements and conventions below match the operation you need.
- Prepare padIds, startOffsets, byteLengths, respecting the measurement basis and boundaries below.
- Compare the worked example with your intended operation before reusing its result.
How to use the tool and how it works
- Enter every field in the input table using the stated units and exact supported selector spelling where applicable.
- Run the tool. Correct input errors before interpreting an output.
- Read the result fields below; use accompanying flags and the stated sign, boundary or model convention when interpreting a number.
Supply aligned lists of nonblank pad IDs, nonnegative integer start offsets and positive integer lengths. For every pair sharing the same pad ID, the tool tests overlap of the half-open ranges [start, start plus length). It returns the zero-based index pairs and whether any overlap exists.1
| Input field | Meaning and units | Accepted input |
|---|---|---|
| padIds | Pad ids. | List of text values |
| startOffsets | Start offsets. | List of finite numbers |
| byteLengths | Byte lengths. | List of finite numbers |
| Output field | Interpretation |
|---|---|
| result | Object containing the following named result fields. |
| result.overlappingRequestPairs | Overlapping request pairs list, in the ordering described in the calculation. |
| result.reuseDetected | Reuse detected flag under the exact conditions described above. |
{
"input": {
"padIds": [
"a",
"a",
"b"
],
"startOffsets": [
0,
3,
0
],
"byteLengths": [
4,
4,
4
]
},
"output": {
"result": {
"overlappingRequestPairs": [
[
0,
1
]
],
"reuseDetected": true
}
}
} Limitations and assumptions
- Adjacent ranges that only share an endpoint do not overlap. The tool trusts identifiers and allocations; it does not inspect ciphertext, prove pad randomness or detect undeclared reuse.
- Every declared field is required and unexpected fields are rejected. Numeric inputs must be finite; input errors are distinct from a valid false result or an explicitly qualified output.
- Extremely large inputs and nonfinite or excessively large outputs are rejected. List positions reported by the tool use zero-based indices unless stated otherwise.
Alternative or Complementary methods
Use the applicable protocol specification and a reviewed implementation for real verification, hashing or key management. A format label, probability model or tentative text mapping does not replace that operation. Compare the scope of the nearby tools below before substituting one.
References
Similar or alternative tools
- pad byte randomness monobit checker
A monobit statistic compares the counts of zero and one bits.
- running key reuse checker
Aligned key streams can contain contiguous equal segments.