Substitution Frequency Solver Assist
Frequency-rank substitution assistance; zero-count ties alphabetic, mapping is only a caller-ranked hypothesis, not recovered plaintext.
Description
Pair observed ciphertext letter ranks with a caller-supplied plaintext rank as a tentative substitution.
Frequency ranking can help form a tentative monoalphabetic substitution hypothesis. This tool pairs observed ciphertext letter ranks with a plaintext ranking supplied by the caller, making the assumption explicit.
When to use this tool
Pair observed ciphertext letter ranks with a caller-supplied plaintext rank as a tentative substitution. Use it when the input measurements and conventions below match the operation you need.
- Prepare ciphertext, callerPlaintextRank, 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 a permutation of uppercase A through Z as the plaintext rank and ciphertext containing only ASCII letters and whitespace. The tool counts letters case-insensitively, ranks all 26 by descending count with alphabetical ties, then pairs that rank with the supplied plaintext order.1
| Input field | Meaning and units | Accepted input |
|---|---|---|
| ciphertext | Ciphertext. | Text |
| callerPlaintextRank | Caller plaintext rank. | Text |
| Output field | Interpretation |
|---|---|
| result | Object containing the following named result fields. |
| result.observedAlphabetCounts | Observed alphabet counts list, in the ordering described in the calculation. |
| result.observedCipherRank | Observed cipher rank; use the stated units and sign convention. |
| result.hypothesisPairs | Hypothesis pairs list, in the ordering described in the calculation. |
{
"input": {
"ciphertext": "BBB AA C",
"callerPlaintextRank": "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
},
"output": {
"result": {
"observedAlphabetCounts": [
2,
3,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"observedCipherRank": "BACDEFGHIJKLMNOPQRSTUVWXYZ",
"hypothesisPairs": [
"B\u2192A",
"A\u2192B",
"C\u2192C",
"D\u2192D",
"E\u2192E",
"F\u2192F",
"G\u2192G",
"H\u2192H",
"I\u2192I",
"J\u2192J",
"K\u2192K",
"L\u2192L",
"M\u2192M",
"N\u2192N",
"O\u2192O",
"P\u2192P",
"Q\u2192Q",
"R\u2192R",
"S\u2192S",
"T\u2192T",
"U\u2192U",
"V\u2192V",
"W\u2192W",
"X\u2192X",
"Y\u2192Y",
"Z\u2192Z"
]
}
}
} Limitations and assumptions
- Zero-count letters still appear in the ranking. Short texts and language variation can mislead frequency analysis; the mapping is a hypothesis, not a solved key or verified decryption.
- 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
- letter frequency rank compare
Letter-frequency ranking depends on the submitted sample and expected ordering.
- nihilist substitution
Nihilist substitution adds coordinate numbers for message and key symbols.