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

  1. Enter every field in the input table using the stated units and exact supported selector spelling where applicable.
  2. Run the tool. Correct input errors before interpreting an output.
  3. 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 fieldMeaning and unitsAccepted input
padIdsPad ids.List of text values
startOffsetsStart offsets.List of finite numbers
byteLengthsByte lengths.List of finite numbers
Output fieldInterpretation
resultObject containing the following named result fields.
result.overlappingRequestPairsOverlapping request pairs list, in the ordering described in the calculation.
result.reuseDetectedReuse detected flag under the exact conditions described above.
json
{
  "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

  1. Tool behavior and example: One-Time-Pad Reuse Detector — tool.io

Similar or alternative tools

Don't forget to set a bookmark for tool.io!
Privacy | Imprint | Cookies