Quagmire IV
Quagmire IV
Three keywords: plain alphabet, cipher alphabet, indicator.
- Keyspace
- (26!)² × 26^indicatorLength
- Decode
- same options back
- Works on
- A-Z, the rest passes
- Family
- 14 in polyalphabetic
Options
Access
- Create
create("quagmire-4") - CLI
ciphers encode quagmire-4 'THIS ONE EMPLOYS THREE KEYWORDS' --key SENSORY --second-key PERCEPTION --indicator EXTRA --indicator-under S - Tryplayground with the sample above
- Kinvigenere, gronsfeld, beaufort, porta +9
The full set. key keys the plain alphabet, secondKey the cipher one, and the indicator slides the second along the first. The ACA's example also hangs the indicator under plain S, so this is where indicatorUnder earns its keep.
const quagmire = create("quagmire-4");
const keys = { key: "SENSORY", secondKey: "PERCEPTION", indicator: "EXTRA", indicatorUnder: "S" };
quagmire.encode("This one employs three keywords", keys).text;
// "Vbmr fcy ispmpbr rheic xrreigdx"
That's the ACA's Quagmire IV, VBMRF CYISP and on. Leave indicatorUnder out and the same call starts Kcfw ixq. Same keywords, other text. Did anything warn you? Nope.
Why is it the hard one?
Nothing lines up anymore. Quagmire I and II keep one side straight, III uses the same alphabet twice. Here both sides are scrambled, each its own way. The columns still repeat, so period still finds the indicator's length. After that you're rebuilding two alphabets at once. Bring tea.
Text, case and errors work as for Quagmire I. Only Quagmire IV takes secondKey, and it can't go without one.