[{"data":1,"prerenderedAt":624},["ShallowReactive",2],{"navigation_docs":3,"-ciphers-fractionated-morse":332,"-ciphers-fractionated-morse-surround":619},[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":152,"body":334,"description":612,"extension":613,"links":614,"meta":615,"navigation":616,"path":153,"seo":617,"stem":154,"__hash__":618},"docs\u002F2.ciphers\u002F28.fractionated-morse.md",{"type":335,"value":336,"toc":606},"minimark",[337,341,345,434,445,450,468,475,479,519,523,530,533,537,577,580,602],[338,339],"cipher-facts",{"name":340},"fractionated-morse",[342,343,344],"p",{},"Spell the message in Morse. Chop the dots and dashes into threes. Give every three a letter. That's the whole trick, and it works better than it sounds. The triples don't care where a letter ends, so a frequency count never finds a clean E.",[346,347,352],"pre",{"className":348,"code":349,"language":350,"meta":351,"style":351},"language-ts shiki shiki-themes ciphers ciphers ciphers","const fractionated = create(\"fractionated-morse\");\nfractionated.encode(\"Come at once\", { key: \"ROUNDTABLE\" }).text; \u002F\u002F \"CBIILTMHVVFL\"\nfractionated.decode(\"CBIIL TMHVV FL\", { key: \"ROUNDTABLE\" }).text; \u002F\u002F \"COME AT ONCE\"\n","ts","",[353,354,355,385,412],"code",{"__ignoreMap":351},[356,357,360,364,368,371,375,378,382],"span",{"class":358,"line":359},"line",1,[356,361,363],{"class":362},"skH_V","const",[356,365,367],{"class":366},"s38Sx"," fractionated ",[356,369,370],{"class":362},"=",[356,372,374],{"class":373},"sK71F"," create",[356,376,377],{"class":366},"(",[356,379,381],{"class":380},"shU9J","\"fractionated-morse\"",[356,383,384],{"class":366},");\n",[356,386,388,391,394,396,399,402,405,408],{"class":358,"line":387},2,[356,389,390],{"class":366},"fractionated.",[356,392,393],{"class":373},"encode",[356,395,377],{"class":366},[356,397,398],{"class":380},"\"Come at once\"",[356,400,401],{"class":366},", { key: ",[356,403,404],{"class":380},"\"ROUNDTABLE\"",[356,406,407],{"class":366}," }).text; ",[356,409,411],{"class":410},"scIB-","\u002F\u002F \"CBIILTMHVVFL\"\n",[356,413,415,417,420,422,425,427,429,431],{"class":358,"line":414},3,[356,416,390],{"class":366},[356,418,419],{"class":373},"decode",[356,421,377],{"class":366},[356,423,424],{"class":380},"\"CBIIL TMHVV FL\"",[356,426,401],{"class":366},[356,428,404],{"class":380},[356,430,407],{"class":366},[356,432,433],{"class":410},"\u002F\u002F \"COME AT ONCE\"\n",[342,435,436,437,444],{},"That's the example from the ACA's ",[438,439,443],"a",{"href":440,"rel":441},"https:\u002F\u002Fwww.cryptogram.org\u002Fdownloads\u002Faca.info\u002Fciphers\u002FFractionatedMorse.pdf",[442],"nofollow","Fractionated Morse page",". Ten letters in, twelve out. The separators aren't free.",[446,447,449],"h2",{"id":448},"where-do-the-x-go","Where do the x go?",[342,451,452,453,456,457,460,461,464,465,467],{},"One ",[353,454,455],{},"x"," between letters, two between words. ",[353,458,459],{},"COME AT"," becomes ",[353,462,463],{},"-.-.x---x--x.xx.-x-",". Then the Morse is read three symbols at a time. When the last triple comes up short, ",[353,466,455],{}," fills it.",[342,469,470,471,474],{},"Three x in a row never happens. So ",[353,472,473],{},"xxx"," gets no letter, and 26 triples are left for 26 letters. Neat, right?",[446,476,478],{"id":477},"which-letter-is-which-triple","Which letter is which triple?",[342,480,481,482,485,486,489,490,493,494,497,498,501,502,505,506,509,510,512,513,509,516,518],{},"The triples stand in a fixed order, dot before dash before x. ",[353,483,484],{},"..."," comes first, then ",[353,487,488],{},"..-",", then ",[353,491,492],{},"..x",", down to ",[353,495,496],{},"xx-",". The key is written under that row. ",[353,499,500],{},"ROUNDTABLE"," turns into ",[353,503,504],{},"ROUNDTABLECFGHIJKMPQSVWXYZ",", repeats dropped, so ",[353,507,508],{},"R"," means ",[353,511,484],{}," and ",[353,514,515],{},"Z",[353,517,496],{},". A whole alphabet of 26 letters works as it stands.",[446,520,522],{"id":521},"what-gets-enciphered","What gets enciphered?",[342,524,525,526,529],{},"Letters and digits. Spaces split the words. Punctuation drops out, as the ACA normally does it, so ",[353,527,528],{},"Come at once."," gives the same twelve letters. A constructor may encipher commas too. Then encoding here won't match, but decoding still reads back every code the Morse table knows, punctuation included.",[342,531,532],{},"On the way back only A to Z count. Groups of five, the way the ACA prints them, are fine. Output is uppercase, words split by single spaces.",[446,534,536],{"id":535},"why-does-it-refuse-my-ciphertext","Why does it refuse my ciphertext?",[342,538,539,540,543,544,547,548,543,550,553,554,557,558,560,561,564,565,568,569,572,573,576],{},"Because the key is wrong, usually. Take the plain alphabet. ",[353,541,542],{},"I"," is ",[353,545,546],{},".xx",", ",[353,549,508],{},[353,551,552],{},"-xx",", and ",[353,555,556],{},"S"," to ",[353,559,515],{}," all start with x. So ",[353,562,563],{},"IS"," or ",[353,566,567],{},"RZ"," spells three x in a row, which no message gives. Decoding throws ",[353,570,571],{},"CipherError"," on that, on Morse that starts with x, and on a code that's no character at all. ",[353,574,575],{},"AA"," is six dots, and Morse has nothing with six dots.",[342,578,579],{},"That's good news when you're testing keys by hand. A bad one tends to blow up instead of handing you quiet garbage.",[342,581,582,587,588,593,594,597,598,601],{},[438,583,584],{"href":17},[353,585,586],{},"guess"," doesn't know this cipher yet, and ",[438,589,590],{"href":17},[353,591,592],{},"recover"," doesn't take it. A missing key is a ",[353,595,596],{},"MissingOptionError",", a key without letters an ",[353,599,600],{},"InvalidOptionError",".",[603,604,605],"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":351,"searchDepth":387,"depth":387,"links":607},[608,609,610,611],{"id":448,"depth":387,"text":449},{"id":477,"depth":387,"text":478},{"id":521,"depth":387,"text":522},{"id":535,"depth":387,"text":536},"Morse cut into triples of dots, dashes and x. Each triple becomes one letter of a keyed alphabet. Morse you can't hear anymore.","md",null,{},true,{"title":152,"description":612},"-Db_snt1nMZIykcGEIxXT7-8bSn7k6rThijcjy2zUIQ",[620,622],{"title":148,"path":149,"stem":150,"description":621,"children":-1},"Letters and digits to dots and dashes. A space between letters, a slash between words.",{"title":156,"path":157,"stem":158,"description":623,"children":-1},"Five A or B per letter, no separators. The 26-letter table by default, Bacon's own 24-letter one with I\u002FJ and U\u002FV shared on request.",1791487535110]