[{"data":1,"prerenderedAt":557},["ShallowReactive",2],{"navigation_docs":3,"-ciphers-quagmire-1":332,"-ciphers-quagmire-1-surround":552},[4,36],{"title":5,"path":6,"stem":7,"children":8,"icon":35},"Guide","\u002Fguide","1.guide\u002F01.index",[9,11,15,19,23,27,31],{"title":10,"path":6,"stem":7},"Getting Started",{"title":12,"path":13,"stem":14},"Encode and decode","\u002Fguide\u002Ftransform","1.guide\u002F02.transform",{"title":16,"path":17,"stem":18},"Analysis","\u002Fguide\u002Fanalysis","1.guide\u002F03.analysis",{"title":20,"path":21,"stem":22},"CLI","\u002Fguide\u002Fcli","1.guide\u002F04.cli",{"title":24,"path":25,"stem":26},"Agents","\u002Fguide\u002Fagents","1.guide\u002F05.agents",{"title":28,"path":29,"stem":30},"Custom ciphers","\u002Fguide\u002Fcustom","1.guide\u002F06.custom",{"title":32,"path":33,"stem":34},"Playground","\u002Fguide\u002Fplayground","1.guide\u002F07.playground","i-lucide-book-open",{"title":37,"path":38,"stem":39,"children":40,"icon":331},"Ciphers","\u002Fciphers","2.ciphers\u002F00.index",[41,43,47,51,55,59,63,67,71,75,79,83,87,91,95,99,103,107,111,115,119,123,127,131,135,139,143,147,151,155,159,163,167,171,175,179,183,187,191,195,199,203,207,211,215,219,223,227,231,235,239,243,247,251,255,259,263,267,271,275,279,283,287,291,295,299,303,307,311,315,319,323,327],{"title":42,"path":38,"stem":39},"Overview",{"title":44,"path":45,"stem":46},"Classical","\u002Fciphers\u002Fclassical","2.ciphers\u002F01.classical",{"title":48,"path":49,"stem":50},"Caesar","\u002Fciphers\u002Fcaesar","2.ciphers\u002F02.caesar",{"title":52,"path":53,"stem":54},"ROT-13","\u002Fciphers\u002Frot13","2.ciphers\u002F03.rot13",{"title":56,"path":57,"stem":58},"ROT-47","\u002Fciphers\u002Frot47","2.ciphers\u002F04.rot47",{"title":60,"path":61,"stem":62},"Atbash","\u002Fciphers\u002Fatbash","2.ciphers\u002F05.atbash",{"title":64,"path":65,"stem":66},"Affine","\u002Fciphers\u002Faffine","2.ciphers\u002F06.affine",{"title":68,"path":69,"stem":70},"Substitution","\u002Fciphers\u002Fsubstitution","2.ciphers\u002F07.substitution",{"title":72,"path":73,"stem":74},"Vigenère","\u002Fciphers\u002Fvigenere","2.ciphers\u002F08.vigenere",{"title":76,"path":77,"stem":78},"Gronsfeld","\u002Fciphers\u002Fgronsfeld","2.ciphers\u002F09.gronsfeld",{"title":80,"path":81,"stem":82},"Beaufort","\u002Fciphers\u002Fbeaufort","2.ciphers\u002F10.beaufort",{"title":84,"path":85,"stem":86},"Porta","\u002Fciphers\u002Fporta","2.ciphers\u002F11.porta",{"title":88,"path":89,"stem":90},"Autokey","\u002Fciphers\u002Fautokey","2.ciphers\u002F12.autokey",{"title":92,"path":93,"stem":94},"Running key","\u002Fciphers\u002Frunning-key","2.ciphers\u002F13.running-key",{"title":96,"path":97,"stem":98},"Trithemius","\u002Fciphers\u002Ftrithemius","2.ciphers\u002F14.trithemius",{"title":100,"path":101,"stem":102},"Alberti","\u002Fciphers\u002Falberti","2.ciphers\u002F15.alberti",{"title":104,"path":105,"stem":106},"Quagmire I","\u002Fciphers\u002Fquagmire-1","2.ciphers\u002F16.quagmire-1",{"title":108,"path":109,"stem":110},"Quagmire II","\u002Fciphers\u002Fquagmire-2","2.ciphers\u002F17.quagmire-2",{"title":112,"path":113,"stem":114},"Quagmire III","\u002Fciphers\u002Fquagmire-3","2.ciphers\u002F18.quagmire-3",{"title":116,"path":117,"stem":118},"Quagmire IV","\u002Fciphers\u002Fquagmire-4","2.ciphers\u002F19.quagmire-4",{"title":120,"path":121,"stem":122},"Chaocipher","\u002Fciphers\u002Fchaocipher","2.ciphers\u002F20.chaocipher",{"title":124,"path":125,"stem":126},"Playfair","\u002Fciphers\u002Fplayfair","2.ciphers\u002F21.playfair",{"title":128,"path":129,"stem":130},"Four-square","\u002Fciphers\u002Ffour-square","2.ciphers\u002F22.four-square",{"title":132,"path":133,"stem":134},"Two-square","\u002Fciphers\u002Ftwo-square","2.ciphers\u002F23.two-square",{"title":136,"path":137,"stem":138},"Hill","\u002Fciphers\u002Fhill","2.ciphers\u002F24.hill",{"title":140,"path":141,"stem":142},"Polybius square","\u002Fciphers\u002Fpolybius","2.ciphers\u002F25.polybius",{"title":144,"path":145,"stem":146},"Nihilist","\u002Fciphers\u002Fnihilist","2.ciphers\u002F26.nihilist",{"title":148,"path":149,"stem":150},"Morse code","\u002Fciphers\u002Fmorse","2.ciphers\u002F27.morse",{"title":152,"path":153,"stem":154},"Fractionated Morse","\u002Fciphers\u002Ffractionated-morse","2.ciphers\u002F28.fractionated-morse",{"title":156,"path":157,"stem":158},"Bacon's cipher","\u002Fciphers\u002Fbacon","2.ciphers\u002F29.bacon",{"title":160,"path":161,"stem":162},"Tap code","\u002Fciphers\u002Ftap-code","2.ciphers\u002F30.tap-code",{"title":164,"path":165,"stem":166},"A1Z26","\u002Fciphers\u002Fa1z26","2.ciphers\u002F31.a1z26",{"title":168,"path":169,"stem":170},"Book cipher","\u002Fciphers\u002Fbook","2.ciphers\u002F32.book",{"title":172,"path":173,"stem":174},"ADFGVX","\u002Fciphers\u002Fadfgvx","2.ciphers\u002F33.adfgvx",{"title":176,"path":177,"stem":178},"Bifid","\u002Fciphers\u002Fbifid","2.ciphers\u002F34.bifid",{"title":180,"path":181,"stem":182},"Straddling checkerboard","\u002Fciphers\u002Fstraddling-checkerboard","2.ciphers\u002F35.straddling-checkerboard",{"title":184,"path":185,"stem":186},"Rail fence","\u002Fciphers\u002Frail-fence","2.ciphers\u002F36.rail-fence",{"title":188,"path":189,"stem":190},"Columnar transposition","\u002Fciphers\u002Fcolumnar","2.ciphers\u002F37.columnar",{"title":192,"path":193,"stem":194},"Route transposition","\u002Fciphers\u002Froute","2.ciphers\u002F38.route",{"title":196,"path":197,"stem":198},"Enigma M3","\u002Fciphers\u002Fenigma","2.ciphers\u002F39.enigma",{"title":200,"path":201,"stem":202},"Block","\u002Fciphers\u002Fblock","2.ciphers\u002F40.block",{"title":204,"path":205,"stem":206},"AES (ECB)","\u002Fciphers\u002Faes","2.ciphers\u002F41.aes",{"title":208,"path":209,"stem":210},"AES (CBC)","\u002Fciphers\u002Faes-cbc","2.ciphers\u002F42.aes-cbc",{"title":212,"path":213,"stem":214},"AES (CFB)","\u002Fciphers\u002Faes-cfb","2.ciphers\u002F43.aes-cfb",{"title":216,"path":217,"stem":218},"AES (OFB)","\u002Fciphers\u002Faes-ofb","2.ciphers\u002F44.aes-ofb",{"title":220,"path":221,"stem":222},"AES (CTR)","\u002Fciphers\u002Faes-ctr","2.ciphers\u002F45.aes-ctr",{"title":224,"path":225,"stem":226},"AES (CCM)","\u002Fciphers\u002Faes-ccm","2.ciphers\u002F46.aes-ccm",{"title":228,"path":229,"stem":230},"AES (OCB)","\u002Fciphers\u002Faes-ocb","2.ciphers\u002F47.aes-ocb",{"title":232,"path":233,"stem":234},"AES (LRW)","\u002Fciphers\u002Faes-lrw","2.ciphers\u002F48.aes-lrw",{"title":236,"path":237,"stem":238},"AES (XTS)","\u002Fciphers\u002Faes-xts","2.ciphers\u002F49.aes-xts",{"title":240,"path":241,"stem":242},"AES (CBC-MAC)","\u002Fciphers\u002Faes-cbc-mac","2.ciphers\u002F50.aes-cbc-mac",{"title":244,"path":245,"stem":246},"AES (passphrase)","\u002Fciphers\u002Faes-passphrase","2.ciphers\u002F51.aes-passphrase",{"title":248,"path":249,"stem":250},"Rijndael (ECB)","\u002Fciphers\u002Frijndael","2.ciphers\u002F52.rijndael",{"title":252,"path":253,"stem":254},"DES (ECB)","\u002Fciphers\u002Fdes","2.ciphers\u002F53.des",{"title":256,"path":257,"stem":258},"DESX (ECB)","\u002Fciphers\u002Fdesx","2.ciphers\u002F54.desx",{"title":260,"path":261,"stem":262},"Triple DES (ECB)","\u002Fciphers\u002Ftriple-des","2.ciphers\u002F55.triple-des",{"title":264,"path":265,"stem":266},"Triple DES (CBC)","\u002Fciphers\u002Ftriple-des-cbc","2.ciphers\u002F56.triple-des-cbc",{"title":268,"path":269,"stem":270},"Blowfish (ECB)","\u002Fciphers\u002Fblowfish","2.ciphers\u002F57.blowfish",{"title":272,"path":273,"stem":274},"IDEA (ECB)","\u002Fciphers\u002Fidea","2.ciphers\u002F58.idea",{"title":276,"path":277,"stem":278},"Lucifer (ECB)","\u002Fciphers\u002Flucifer","2.ciphers\u002F59.lucifer",{"title":280,"path":281,"stem":282},"MARS (ECB)","\u002Fciphers\u002Fmars","2.ciphers\u002F60.mars",{"title":284,"path":285,"stem":286},"Serpent (ECB)","\u002Fciphers\u002Fserpent","2.ciphers\u002F61.serpent",{"title":288,"path":289,"stem":290},"CAST5 (ECB)","\u002Fciphers\u002Fcast5","2.ciphers\u002F62.cast5",{"title":292,"path":293,"stem":294},"OpenPGP (passphrase)","\u002Fciphers\u002Fopenpgp","2.ciphers\u002F63.openpgp",{"title":296,"path":297,"stem":298},"Stream","\u002Fciphers\u002Fstream","2.ciphers\u002F64.stream",{"title":300,"path":301,"stem":302},"Rabbit","\u002Fciphers\u002Frabbit","2.ciphers\u002F65.rabbit",{"title":304,"path":305,"stem":306},"RC4","\u002Fciphers\u002Frc4","2.ciphers\u002F66.rc4",{"title":308,"path":309,"stem":310},"XOR","\u002Fciphers\u002Fxor","2.ciphers\u002F67.xor",{"title":312,"path":313,"stem":314},"Salsa20","\u002Fciphers\u002Fsalsa20","2.ciphers\u002F68.salsa20",{"title":316,"path":317,"stem":318},"XSalsa20","\u002Fciphers\u002Fxsalsa20","2.ciphers\u002F69.xsalsa20",{"title":320,"path":321,"stem":322},"ChaCha20","\u002Fciphers\u002Fchacha20","2.ciphers\u002F70.chacha20",{"title":324,"path":325,"stem":326},"XChaCha20","\u002Fciphers\u002Fxchacha20","2.ciphers\u002F71.xchacha20",{"title":328,"path":329,"stem":330},"ChaCha20-Poly1305","\u002Fciphers\u002Fchacha20-poly1305","2.ciphers\u002F72.chacha20-poly1305","i-lucide-library",{"id":333,"title":104,"body":334,"description":545,"extension":546,"links":547,"meta":548,"navigation":549,"path":105,"seo":550,"stem":106,"__hash__":551},"docs\u002F2.ciphers\u002F16.quagmire-1.md",{"type":335,"value":336,"toc":540},"minimark",[337,341,354,457,468,473,476,487,491,510,514,528,536],[338,339],"cipher-facts",{"name":340},"quagmire-1",[342,343,344,345,349,350,353],"p",{},"Vigenère in a disguise. The ACA numbers its Quagmires the way it numbers keyed alphabets, so Quagmire I keys the plain side and leaves the cipher side straight. ",[346,347,348],"code",{},"SPRINGFEVER"," turns the plain alphabet into ",[346,351,352],{},"SPRINGFEVABCD…",". Then a second word, the indicator, runs down the column under plain A. Each of its letters sets one row of the tableau, and the text takes the rows in turn.",[355,356,361],"pre",{"className":357,"code":358,"language":359,"meta":360,"style":360},"language-ts shiki shiki-themes ciphers ciphers ciphers","const quagmire = create(\"quagmire-1\");\nconst keys = { key: \"SPRINGFEVER\", indicator: \"FLOWER\" };\nquagmire.encode(\"The quag one\", keys).text; \u002F\u002F \"Qpm gqrb uju\"\nquagmire.decode(\"QPMGQRBUJU\", keys).text; \u002F\u002F \"THEQUAGONE\"\n","ts","",[346,362,363,393,418,439],{"__ignoreMap":360},[364,365,368,372,376,379,383,386,390],"span",{"class":366,"line":367},"line",1,[364,369,371],{"class":370},"skH_V","const",[364,373,375],{"class":374},"s38Sx"," quagmire ",[364,377,378],{"class":370},"=",[364,380,382],{"class":381},"sK71F"," create",[364,384,385],{"class":374},"(",[364,387,389],{"class":388},"shU9J","\"quagmire-1\"",[364,391,392],{"class":374},");\n",[364,394,396,398,401,403,406,409,412,415],{"class":366,"line":395},2,[364,397,371],{"class":370},[364,399,400],{"class":374}," keys ",[364,402,378],{"class":370},[364,404,405],{"class":374}," { key: ",[364,407,408],{"class":388},"\"SPRINGFEVER\"",[364,410,411],{"class":374},", indicator: ",[364,413,414],{"class":388},"\"FLOWER\"",[364,416,417],{"class":374}," };\n",[364,419,421,424,427,429,432,435],{"class":366,"line":420},3,[364,422,423],{"class":374},"quagmire.",[364,425,426],{"class":381},"encode",[364,428,385],{"class":374},[364,430,431],{"class":388},"\"The quag one\"",[364,433,434],{"class":374},", keys).text; ",[364,436,438],{"class":437},"scIB-","\u002F\u002F \"Qpm gqrb uju\"\n",[364,440,442,444,447,449,452,454],{"class":366,"line":441},4,[364,443,423],{"class":374},[364,445,446],{"class":381},"decode",[364,448,385],{"class":374},[364,450,451],{"class":388},"\"QPMGQRBUJU\"",[364,453,434],{"class":374},[364,455,456],{"class":437},"\u002F\u002F \"THEQUAGONE\"\n",[342,458,459,460,467],{},"That's the start of the ",[461,462,466],"a",{"href":463,"rel":464},"https:\u002F\u002Fwww.cryptogram.org\u002Fdownloads\u002Faca.info\u002Fciphers\u002FQuagmireI.pdf",[465],"nofollow","ACA's example",". FLOWER has six letters, so the rows come round every six.",[469,470,472],"h2",{"id":471},"what-does-the-indicator-do","What does the indicator do?",[342,474,475],{},"Look down the column under plain A. The first row has F there, then L, O, W, E and R. That's the whole trick. The cipher alphabet slides until the indicator letter sits under A, and every other letter follows.",[342,477,478,479,482,483,486],{},"Under A every time? Not quite. Some puzzles hang the indicator under another letter. ",[346,480,481],{},"indicatorUnder"," names that letter, ",[346,484,485],{},"A"," by default. Get it wrong and the text comes out as confident garbage, so check the puzzle's wording.",[469,488,490],{"id":489},"the-rest-of-the-text","The rest of the text",[342,492,493,494,497,498,501,502,505,506,509],{},"Only ASCII letters move the indicator along. Spaces and punctuation pass through. Lowercase stays lowercase unless ",[346,495,496],{},"preserveCase"," is false, and ",[346,499,500],{},"stripNonAlpha"," drops everything outside A to Z first. The keywords ignore case and anything that isn't a letter. A missing one is a ",[346,503,504],{},"MissingOptionError",", one without letters an ",[346,507,508],{},"InvalidOptionError",".",[469,511,513],{"id":512},"breaking-one","Breaking one",[342,515,516,517,522,523,527],{},"It's periodic, so ",[461,518,519],{"href":17},[346,520,521],{},"period"," finds the indicator's length. On the 319 letters that open ",[524,525,526],"em",{},"A Tale of Two Cities",", under a seven letter indicator, it put 7 first for each of the four Quagmires. Ignore the key it prints next to it though. That's a Vigenère guess, and here it means nothing.",[342,529,530,535],{},[461,531,532],{"href":17},[346,533,534],{},"recover"," doesn't know the Quagmires, so the rest is yours. Every column is one substitution, and all of them come from one keyed alphabet. Rebuild that alphabet once and the columns fall together. Fun, in a long evening kind of way.",[537,538,539],"style",{},"html pre.shiki code .skH_V, html code.shiki .skH_V{--shiki-light:var(--shiki-token-keyword);--shiki-default:var(--shiki-token-keyword);--shiki-dark:var(--shiki-token-keyword)}html pre.shiki code .s38Sx, html code.shiki .s38Sx{--shiki-light:var(--ui-text-highlighted);--shiki-default:var(--ui-text-highlighted);--shiki-dark:var(--ui-text-highlighted)}html pre.shiki code .sK71F, html code.shiki .sK71F{--shiki-light:var(--shiki-token-function);--shiki-default:var(--shiki-token-function);--shiki-dark:var(--shiki-token-function)}html pre.shiki code .shU9J, html code.shiki .shU9J{--shiki-light:var(--shiki-token-string);--shiki-default:var(--shiki-token-string);--shiki-dark:var(--shiki-token-string)}html pre.shiki code .scIB-, html code.shiki .scIB-{--shiki-light:var(--shiki-token-comment);--shiki-default:var(--shiki-token-comment);--shiki-dark:var(--shiki-token-comment)}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":360,"searchDepth":395,"depth":395,"links":541},[542,543,544],{"id":471,"depth":395,"text":472},{"id":489,"depth":395,"text":490},{"id":512,"depth":395,"text":513},"The ACA's first Quagmire. A keyed plain alphabet slides along a straight one. An indicator word says how far.","md",null,{},true,{"title":104,"description":545},"H13d5aJ2sW4uBFluNm0UUnnmkNpYS7d0MA3xanHugqM",[553,555],{"title":100,"path":101,"stem":102,"description":554,"children":-1},"A keyed inner disk against a fixed outer alphabet, turned one step after every period letters. Simplified on purpose, so it's reproducible.",{"title":108,"path":109,"stem":110,"description":556,"children":-1},"Quagmire I upside down. The plain alphabet stays straight and the keyword moves into the cipher alphabet.",1791487534264]