Running-Key Reuse Detector
Locate exact aligned key-stream matching runs, evidence of matches not proof of insecure reuse or recovery of unavailable keys.
Description
Aligned key streams can contain contiguous equal segments.
Aligned key streams can contain contiguous equal segments.1
Matching a submitted segment does not establish undisclosed key reuse or recover protected messages. Use Running-Key Reuse Detector to evaluate the supplied inputs under the specific model below.
When to use Running-Key Reuse Detector
Use Running-Key Reuse Detector to evaluate the supplied inputs under the specific model below. Choose the intended encoding, alphabet or check and keep the exact character, key and measurement conventions described below.
How to use Running-Key Reuse Detector and understand its results
- Choose the intended encoding, alphabet or check and keep the exact character, key and measurement conventions described below.
- Enter Key stream a, Key stream b, Minimum matching run using the field table and validation rules below, then run the tool.
- Read Matching run start indices, Matching run lengths and interpret units, signs, ordering and placeholders as explained below.
- If the tool reports an input error, correct that field and rerun. A successful false result, empty match list or unknown-evidence placeholder has the specific meaning described here; check the limitations before applying the result.
| Input field | Meaning | Value type | Requirement |
|---|---|---|---|
| keyStreamA | Key stream a | string | Required; constraints below |
| keyStreamB | Key stream b | string | Required; constraints below |
| minimumMatchingRun | Minimum matching run | number | Required; constraints below |
Enter two equal-length uppercase A–Z streams of at most 4096 characters and an integer minimum run length from 1 to 128. Scan corresponding positions and report maximal equal-symbol runs meeting the minimum, with zero-based starts and lengths. Equal substrings at different offsets are not searched. Empty streams produce empty results and matches alone do not establish key reuse.
runs = maximal positions where streamA[i]==streamB[i], retained when length≥minimum Field order, units and branch conditions follow the implementation explanation above.
| Output field | Meaning | Value type |
|---|---|---|
| matchingRunStartIndices | Matching run start indices | array of number |
| matchingRunLengths | Matching run lengths | array of number |
{
"input": {
"keyStreamA": "ABCDEF",
"keyStreamB": "ZZCDEZ",
"minimumMatchingRun": 3
},
"output": {
"matchingRunStartIndices": [
2
],
"matchingRunLengths": [
3
]
}
} Limitations and assumptions
Matching a submitted segment does not establish undisclosed key reuse or recover protected messages. Apply the exact scope and assumptions described above.
All listed fields require explicit values. Unexpected fields, incorrect types, nonfinite numbers and sparse arrays fail validation. Domain-specific bounds, alignments and supported tokens are stated above; extremely large inputs or outputs can also be rejected. These errors differ from successful results such as false, no matches or unknown evidence.
Alternative or Complementary methods
Use Pad Byte Monobit Randomness Check for a related task: A monobit statistic compares the counts of zero and one bits.
Use Hex-Dump Entropy Per Block for a related task: Empirical byte entropy summarizes the observed distribution in a block.
References
-
Running-Key Reuse Detector — tool.io
Similar or alternative tools
- Pad Byte Monobit Randomness Check
A monobit statistic compares the counts of zero and one bits.
- Hex-Dump Entropy Per Block
Empirical byte entropy summarizes the observed distribution in a block.