(* Content-type: application/vnd.wolfram.mathematica *)

(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)

(* CreatedBy='Wolfram 15.0' *)

(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[       154,          7]
NotebookDataLength[     25376,        641]
NotebookOptionsPosition[     21222,        563]
NotebookOutlinePosition[     23123,        607]
CellTagsIndexPosition[     23080,        604]
WindowTitle->VigenereSolve
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{
Cell[BoxData[GridBox[{
   {GridBox[{
      {
       ItemBox[Cell[BoxData[
         RowBox[{
          TemplateBox[{12},
           "Spacer1"], Cell[
          "WOLFRAM INSTITUTE/ PUZZLES SYMBOL", "PacletNameCell",
           TextAlignment->Center,ExpressionUUID->
           "228a3d61-4974-4f08-b017-3077641f48d8"], 
          TemplateBox[{8},
           "Spacer1"]}]],
         TextAlignment->Center,ExpressionUUID->
         "e406ec78-0507-42e2-b06b-767461870c5f"],
        Background->LightDarkSwitched[
          RGBColor[0.490196, 0.576471, 0.690196]],
        ItemSize->Full], ""}
     },
     GridBoxAlignment->{"Rows" -> {{Center}}},
     GridBoxItemSize->{"Columns" -> {Full, 
         Scaled[0.02]}, "Rows" -> {{2.5}}}], Cell[TextData[{
     Cell[BoxData[
      TagBox[
       ActionMenuBox[
        FrameBox[Cell[TextData[{
          "See Also",
          " ",
          Cell[BoxData[
           GraphicsBox[
            {GrayLevel[0.66667], Thickness[0.13], 
             LineBox[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]},
            AspectRatio->1,
            ImageSize->20,
            PlotRange->{{-3, 4}, {-1, 1}}]],ExpressionUUID->
           "e1cd7c7b-ce83-45f1-946c-1e3ddd3bba9e"]
         }],ExpressionUUID->"eb26d5b3-f95c-454a-b784-e9b6873e539b"],
         StripOnInput->False],{
        StyleBox[
          "\"VigenereCipher\"", "SeeAlsoRelated", StripOnInput -> False] :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/VigenereCipher"], 
         StyleBox[
          "\"CipherPeriods\"", "SeeAlsoRelated", StripOnInput -> False] :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/CipherPeriods"], 
         StyleBox[
          "\"EnglishNgramScore\"", "SeeAlsoRelated", StripOnInput -> False] :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/EnglishNgramScore"], 
         StyleBox[
          "\"ColumnarTranspositionSolve\"", "SeeAlsoRelated", StripOnInput -> 
           False] :> Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/ColumnarTranspositionSolve"]},
        Appearance->None,
        MenuAppearance->Automatic,
        MenuStyle->"SeeAlso"],
       MouseAppearanceTag["LinkHand"]]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "e4c767a7-801f-4f61-a4c8-1867cdd297d3"],
     "\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\
\[ThickSpace]",
     Cell[BoxData[
      TagBox[
       ActionMenuBox[
        FrameBox[Cell[TextData[{
          "Related Guides",
          " ",
          Cell[BoxData[
           GraphicsBox[
            {GrayLevel[0.66667], Thickness[0.13], 
             LineBox[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]},
            AspectRatio->1,
            ImageSize->20,
            PlotRange->{{-3, 4}, {-1, 1}}]],ExpressionUUID->
           "1cdd6968-a52b-4a27-8898-2e76f24747fc"]
         }],ExpressionUUID->"396a6a56-e73a-4b3c-961a-03a42b3c49b2"],
         StripOnInput->False],{
        "\"Search\"" :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/guide/Search"]},
        Appearance->None,
        MenuAppearance->Automatic,
        MenuStyle->"MoreAbout"],
       MouseAppearanceTag["LinkHand"]]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "9842b579-dd38-4cb2-809c-16a281ab32d7"],
     "\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\
\[ThickSpace]",
     Cell[BoxData[
      TagBox[
       ActionMenuBox[
        FrameBox[Cell[TextData[{
          "URL",
          " ",
          Cell[BoxData[
           GraphicsBox[
            {GrayLevel[0.66667], Thickness[0.13], 
             LineBox[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]},
            AspectRatio->1,
            ImageSize->20,
            PlotRange->{{-3, 4}, {-1, 1}}]],ExpressionUUID->
           "6ce7d1c0-0f4a-4730-80e2-7e1615653514"]
         }],ExpressionUUID->"037d145b-88cc-4cbf-811a-25dcdd44c4de"],
         StripOnInput->False],{
        "\"WolframInstitute/Puzzles/ref/VigenereSolve\"" :> None, 
         "\"Copy Wolfram Documentation Center URL\"" :> 
         CopyToClipboard["WolframInstitute/Puzzles/ref/VigenereSolve"], 
         Delimiter, "\"Copy web URL\"" :> 
         Module[{DocumentationSearch`Private`nb$}, 
           DocumentationSearch`Private`nb$ = 
            NotebookPut[
             Notebook[{
               Cell[BoxData[
                 MakeBoxes[
                  Hyperlink[
                   "http://reference.wolfram.com/language/WolframInstitute/\
Puzzles/ref/VigenereSolve.html"], StandardForm]], "Input", TextClipboardType -> 
                 "PlainText"]}, Visible -> False]]; 
           SelectionMove[DocumentationSearch`Private`nb$, All, Notebook]; 
           FrontEndTokenExecute[DocumentationSearch`Private`nb$, "Copy"]; 
           NotebookClose[DocumentationSearch`Private`nb$]; Null], 
         "\"Go to web URL\"" :> 
         FrontEndExecute[{
           NotebookLocate[{
             URL[If[TrueQ[False], 
                 "http://reference.wolfram.com/system-modeler/", 
                 "http://reference.wolfram.com/language/"] <> 
               "WolframInstitute/Puzzles/ref/VigenereSolve" <> ".html"], 
              None}]}]},
        Appearance->None,
        MenuAppearance->Automatic,
        MenuStyle->"URLMenu"],
       MouseAppearanceTag["LinkHand"]]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "d6d59684-56b0-4efe-958a-512ae04229d6"]
    }], "AnchorBar",
     CacheGraphics->False,ExpressionUUID->
     "32503ded-01b2-4437-8eed-be93c6ab7349"]}
  }]], "AnchorBarGrid",
 CellID->1,ExpressionUUID->"916a8b3d-9c2f-4272-ab88-9f9871dd73c1"],

Cell["WolframInstitute`Puzzles`", "ContextNameCell",ExpressionUUID->"49e6e227-414f-452f-87c3-9caa9af470f4"],

Cell[CellGroupData[{

Cell[BoxData[GridBox[{
   {Cell[TextData[{
     Cell[
     "VigenereSolve", "ObjectName",ExpressionUUID->
      "355aa4dd-3215-4027-a15a-045ea8a1c398"],
     Cell[BoxData[
      TemplateBox[{8},
       "Spacer1"]],ExpressionUUID->"9c856bb4-e5f8-47ac-8d07-2b1db24b978f"],
     Cell[BoxData[
     ""], "ObjectNameTranslation",ExpressionUUID->
      "084d2b49-424d-48d6-b4e4-f62517d80025"]
    }],ExpressionUUID->"c20d6d5f-0046-4953-b852-c63b70e9d98f"], 
    "\[SpanFromLeft]"}
  }]], "ObjectNameGrid",ExpressionUUID->"5a1481a7-df23-4830-a453-\
0fff21be0385"],

Cell[BoxData[GridBox[{
   {"", Cell[TextData[{
     Cell[BoxData[
      RowBox[{
       TemplateBox[{
         Cell[
          TextData["VigenereSolve"]], 
         "paclet:WolframInstitute/Puzzles/ref/VigenereSolve", 
         "WolframInstitute/Puzzles Package Symbol"},
        "PackageLink",
        BaseStyle->"InlineFormula"], "[", 
       StyleBox["text", "TI"], "]"}]], "InlineFormula",
      FontFamily->"Source Sans Pro",
      FontSize->0.9 Inherited,ExpressionUUID->
      "adc7d457-1a34-4148-8a4e-ad3639a34367"],
     "\[LineSeparator]",
     "recovers a periodic Vigenere cipher from ciphertext alone, giving an \
Association with the best ",
     Cell[BoxData["\"\<Plaintext\>\""], "InlineFormula",
      FontFamily->"Source Sans Pro",
      FontSize->0.9 Inherited,ExpressionUUID->
      "e48770c7-d1fe-468e-87ae-57d33e2240de"],
     ", ",
     Cell[BoxData["\"\<Key\>\""], "InlineFormula",
      FontFamily->"Source Sans Pro",
      FontSize->0.9 Inherited,ExpressionUUID->
      "afe6b680-5fad-4a54-b6c3-465f7b2ddc44"],
     ", ",
     Cell[BoxData["\"\<Period\>\""], "InlineFormula",
      FontFamily->"Source Sans Pro",
      FontSize->0.9 Inherited,ExpressionUUID->
      "b35bc377-5f77-4cb5-a895-a29694567669"],
     ", and ",
     Cell[BoxData["\"\<Score\>\""], "InlineFormula",
      FontFamily->"Source Sans Pro",
      FontSize->0.9 Inherited,ExpressionUUID->
      "b50a5114-370f-4755-b914-2bd669c3a00a"],
     "."
    }],ExpressionUUID->"7bf4d261-d661-4145-85b5-3f871d54193f"]}
  }]], "Usage",ExpressionUUID->"ac29db92-7fae-4bae-9dfe-fb51f5e45ad4"]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[Cell[BoxData[Cell[TextData[{
  Cell[BoxData[
   DynamicBox[ToBoxes[
     If[CurrentValue[
        EvaluationCell[], "CellGroupOpen"] =!= Closed, 
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], 
      Rotate[
       Style[
        Graphics[{
          Thickness[0.18], 
          RGBColor[0.8509803921568627, 0.396078431372549, 0], 
          Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
         PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
        0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]],
    ImageSizeCache->{
     13.600000000000001`, {-0.1685058593749993, 13.768505859375}}]],
   ExpressionUUID->"b55d0d67-de97-4b1a-aa75-979ed8af6298"],
  Cell[BoxData[
   TemplateBox[{1},
    "Spacer1"]],ExpressionUUID->"d15e6ac7-2d38-49b3-bb97-fe3cc1d949c2"],
  "Details and Options"
 }], "NotesFrameText",ExpressionUUID->
  "5187bf9e-e876-4f9b-90f9-1fd7724dd3ca"]],ExpressionUUID->"49ee03d7-7450-\
4007-8cb5-c71ab8382552"]], "NotesSection",
 ShowGroupOpener->"Thumbnail",
 WholeCellGroupOpener->True,
 CellGroupingRules->{"SectionGrouping", 50},
 CacheGraphics->False,
 CellID->1446610254,ExpressionUUID->"ae608f5c-15e9-4a3b-bb7d-abab9e65b484"],

Cell[TextData[{
 "For each candidate period it fits every column's shift by chi-square \
against English letter frequencies \[LongDash] a deterministic solve, no \
random restarts \[LongDash] then ranks the whole reconstruction by ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["EnglishNgramScore"]], 
    "paclet:WolframInstitute/Puzzles/ref/EnglishNgramScore", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",ExpressionUUID->
  "1ebd6969-79b8-491a-acb9-99729070c4ff"],
 "."
}], "Notes",ExpressionUUID->"ad4461dd-4842-4e55-949b-72836d4e8c05"],

Cell[TextData[{
 "The options ",
 Cell[BoxData["\<\"PlaintextAlphabet\"\>"], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "cade77d8-cae8-48aa-8220-6e79429e6802"],
 ", ",
 Cell[BoxData["\<\"CiphertextAlphabet\"\>"], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "66ab6ee5-d093-413e-b962-74a49fd4e43e"],
 ", and ",
 Cell[BoxData["\<\"Variant\"\>"], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "f92d0cc3-defe-4a15-af9c-c84d03e068bf"],
 " mirror ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["VigenereCipher"]], 
    "paclet:WolframInstitute/Puzzles/ref/VigenereCipher", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",ExpressionUUID->
  "35ecafc3-ddc7-4297-8ec5-fdeeee7df3fd"],
 ". Passing a KRYPTOS-keyed alphabet on both sides solves the Quagmire III \
arrangement of Kryptos K1/K2."
}], "Notes",ExpressionUUID->"c8b69929-2c45-4fbb-9966-8d112ea27ebe"],

Cell[TextData[{
 Cell[BoxData["\<\"Periods\"\>"], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "dcc56bdc-3ed3-4be1-be1d-63442e85cb9f"],
 " sets the periods searched (default: 1 through 45)."
}], "Notes",ExpressionUUID->"7c8d1c89-f1d5-47d5-87ee-09b95ed02c7f"],

Cell[TextData[{
 Cell[BoxData["\<\"Polish\"\>"], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "6745e613-960c-475e-9e76-cdfe4e04c4e2"],
 " (Automatic for a long, composite winning period) re-solves the winner as a \
",
 StyleBox["double Quagmire",
  FontWeight->"Bold"],
 " \[LongDash] a sum of two shorter cyclewords whose columns are far better \
populated \[LongDash] by alternately fixing one and chi-square fitting the \
other over every factor pair of the period. This recovers the Paradigm \
Kryptos-CTF ",
 StyleBox["PK3",
  FontWeight->"Bold"],
 " (period 40 = 8\[Times]10) from ciphertext alone."
}], "Notes",ExpressionUUID->"388edaba-191e-4b46-95b6-4d062d83590c"],

Cell[TextData[{
 Cell[BoxData[
  RowBox[{"Method", " ", "->", " ", "\<\"C\"\>"}]], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "76d638a6-14f3-4394-bbf1-8b00c5f77b12"],
 " finds the period through a LibraryLink C hill-climb (a global search \
independent of the column-IC heuristic) \[LongDash] the exact plaintext then \
comes from the same Wolfram-Language solve, so the result matches the \
default. It compiles ",
 Cell["LibraryResources/Source/wlqcrack.c", "InlineCode",
  FontFamily->"Source Sans Pro",ExpressionUUID->
  "0950994f-c501-48e6-99c0-10fd081675cf"],
 " on first use and falls back to the pure Wolfram-Language path when no C \
compiler is present."
}], "Notes",ExpressionUUID->"3ddeaf32-78a7-4a29-bdf4-c449ed28e208"],

Cell["\<\
A few hundred letters is comfortable; very short texts leave too few letters \
per column to fit each shift reliably.\
\>", "Notes",ExpressionUUID->"3b526122-b002-4588-bc39-704b5d42b264"]
}, Closed]],

Cell["", "PageDelimiter",ExpressionUUID->"808802cf-506a-43b7-ad32-b753038e2fbc"],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[
     MatchQ[
      CurrentValue[
       EvaluationNotebook[], {
       TaggingRules, "Openers", "PrimaryExamplesSection"}, Open], 
      Alternatives[True, Open]], 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]],
   ImageSizeCache->{
    13.600000000000001`, {4.251494140625001, 9.348505859375}}]],
  ExpressionUUID->"dd30a0f1-047f-49b9-90e4-27fb6c0e7898"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"34b5d2d5-f9c3-4010-8fbd-dd8b944784b3"],
 "Examples",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(1)", "ExampleCount",ExpressionUUID->
  "d4f0377d-f9b0-406d-9f33-310afcf2bad2"]
}], "PrimaryExamplesSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->1516171291,ExpressionUUID->"a0afbce4-13ef-4c3c-a384-6e665762e0c9"],

Cell[BoxData[
 RowBox[{"Needs", "[", "\"\<WolframInstitute`Puzzles`\>\"", "]"}]], "Input", \
"ExampleInitialization",
 CellLabel->"In[1]:=",
 CellID->1969679695,ExpressionUUID->"2f6f6e04-d1e4-423a-b90f-ef96e5dc945e"],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[CurrentValue[
       EvaluationCell[], "CellGroupOpen"] =!= Closed, 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]]]],ExpressionUUID->
  "4075fab9-2597-4b91-886e-32eb69116634"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"e44edd57-caf2-4655-95f9-9d7b285e3dc7"],
 "Basic Examples",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(1)", "ExampleCount",ExpressionUUID->
  "edd8a3f5-65e4-4967-b976-445cbd40c8eb"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->249932535,ExpressionUUID->"69bbe028-7a20-45c8-ad96-7114b9cf16fe"],

Cell["Recover the key of a plain Vigenere cipher:", "ExampleText",ExpressionUUID->"cdf9c6c0-c167-4d13-ac58-33a941686935"],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{
  RowBox[{
  "plain", " ", "=", 
   " ", "\"\<\
THEARCHIVISTOPENEDTHELEDGERANDREADTHATTHEGOLDENNEEDLEONCEUSEDTOBINDTHETAPESTRY\
HADBEENHIDDENINSIDETHEOLDESTVOLUMEWHERENOREADERWOULDEVERTHINKTOLOOKFORSUCHASMA\
LLANDORDINARYTHINGAMONGTHECRUMBLINGPAGESOFAFORGOTTENCATALOGUEKEPTINTHENORTHERN\
VAULTBEHINDTHEIRONDOOR\>\""}], ";"}], "\n", 
 RowBox[{
  RowBox[{"VigenereSolve", "[", 
   RowBox[{"VigenereCipher", "[", 
    RowBox[{"plain", ",", " ", "\"\<SECRET\>\""}], "]"}], "]"}], 
  "[", "\"\<Key\>\"", "]"}]}], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"9bc7191c-5669-432c-812e-174fce5c500d"],

Cell[BoxData["\<\"SECRET\"\>"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"bf28454e-506a-4738-bcbe-96a752ef0219"]
}, Open  ]]
}, Open  ]]
}, Open  ]],

Cell[BoxData[GridBox[{
   {
    DynamicBox[FEPrivate`ImportImage[
      FrontEnd`FileName[{"Documentation", "FooterIcons"}, 
       "RelatedFunction.png"]],
     ImageSizeCache->{50., {26.47265625, 33.52734375}}], GridBox[{
      {
       StyleBox[
        RowBox[{"See", " ", "Also"}], "SeeAlsoSection"]},
      {Cell[TextData[{
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["VigenereCipher"]], 
           "paclet:WolframInstitute/Puzzles/ref/VigenereCipher", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "0cd6212f-ff5e-4ba4-99be-778e392e3e22"],
        "\[NonBreakingSpace]",
        StyleBox[
        "\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
         "InlineSeparator"],
        " ",
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["CipherPeriods"]], 
           "paclet:WolframInstitute/Puzzles/ref/CipherPeriods", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "6e55543d-13d9-40de-a1bf-bea039168727"],
        "\[NonBreakingSpace]",
        StyleBox[
        "\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
         "InlineSeparator"],
        " ",
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["EnglishNgramScore"]], 
           "paclet:WolframInstitute/Puzzles/ref/EnglishNgramScore", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "14054c9c-bf15-42fd-b2da-36c6069afcfd"],
        "\[NonBreakingSpace]",
        StyleBox[
        "\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
         "InlineSeparator"],
        " ",
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["ColumnarTranspositionSolve"]], 
           "paclet:WolframInstitute/Puzzles/ref/ColumnarTranspositionSolve", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "8629773a-6fcb-4f69-9ff8-9f5c9520242a"]
       }], "SeeAlso",ExpressionUUID->"4e8f5d24-1f07-48e2-b2df-29a162abc0d8"]}
     }]}
  }]], "SeeAlsoSection",ExpressionUUID->"5502421a-3b17-4670-96a3-\
fef2df98586d"],

Cell[BoxData[GridBox[{
   {
    DynamicBox[FEPrivate`ImportImage[
      FrontEnd`FileName[{"Documentation", "FooterIcons"}, "RelatedGuide.png"]],
     ImageSizeCache->{50., {26.47265625, 33.52734375}}], GridBox[{
      {
       StyleBox[
        RowBox[{"Related", " ", "Guides"}], "MoreAboutSection"]},
      {
       RowBox[{"\[FilledVerySmallSquare]", Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["Search"]], 
           "paclet:WolframInstitute/Puzzles/guide/Search"},
          "RefLinkPlain",
          BaseStyle->{"MoreAbout"}]], "MoreAbout",ExpressionUUID->
         "30276caa-649f-44e8-8421-4f5bbae1544c"]}]}
     }]}
  }]], "MoreAboutSection",ExpressionUUID->"571751f2-43af-4ee2-b7b5-\
d18a160c9ec3"],

Cell[" ", "FooterCell",ExpressionUUID->"c9259ebd-0279-43c3-a1ae-582e9b939565"]
},
Saveable->False,
ScreenStyleEnvironment->"Working",
WindowSize->{900, 830},
WindowMargins->{{0, Automatic}, {Automatic, 0}},
WindowTitle->"VigenereSolve",
TaggingRules->{
 "ModificationHighlight" -> False, "ColorType" -> "", "LinkTrails" -> "", 
  "ExampleCounter" -> 1, 
  "Openers" -> {
   "PrimaryExamplesSection" -> Open, "ExampleSection" -> {"0" -> Open}, 
    "AllOptsTable" -> Closed}, "NewStyles" -> True, 
  "CitationPopupData" -> $Failed, "ShowCitation" -> False, "HasOptions" -> 
  True, "RootCaptions" -> "", "HeaderCoreAreaLink" -> {}, 
  "Metadata" -> {
   "built" -> "{2026, 8, 27, 0, 11, 54.377387}", 
    "history" -> {"XX", "", "", ""}, "context" -> "WolframInstitute`Puzzles`",
     "keywords" -> {}, "specialkeywords" -> {}, 
    "tutorialcollectionlinks" -> {}, "index" -> True, "label" -> 
    "Wolfram Institute/ Puzzles Symbol", "language" -> "en", "paclet" -> 
    "WolframInstitute/Puzzles", "status" -> "None", "summary" -> 
    "PackageLink[VigenereSolve,paclet : \
WolframInstitute/Puzzles/ref/VigenereSolve, WolframInstitute/Puzzles Package \
Symbol][text] recovers a periodic Vigenere cipher from ciphertext alone, \
giving an Association with the best Plaintext, Key, Period, and Score.", 
    "synonyms" -> {}, "tabletags" -> {}, "title" -> "VigenereSolve", 
    "titlemodifier" -> "", "metadescription" -> "", "windowtitle" -> 
    "VigenereSolve", "type" -> "Symbol", "uri" -> 
    "WolframInstitute/Puzzles/ref/VigenereSolve", "WorkflowDockedCell" -> ""},
   "SearchTextTranslated" -> ""},
CellContext->CellGroup,
FrontEndVersion->"15.0 for Mac OS X ARM (64-bit) (May 19, 2026)",
StyleDefinitions->FrontEnd`FileName[{"Wolfram"}, "Reference.nb"],
ExpressionUUID->"992e9a86-7a5e-4d79-9f71-b625fa36a204"
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[581, 21, 5641, 139, 70, "AnchorBarGrid",ExpressionUUID->"916a8b3d-9c2f-4272-ab88-9f9871dd73c1",
 CellID->1],
Cell[6225, 162, 107, 0, 70, "ContextNameCell",ExpressionUUID->"49e6e227-414f-452f-87c3-9caa9af470f4"],
Cell[CellGroupData[{
Cell[6357, 166, 556, 14, 70, "ObjectNameGrid",ExpressionUUID->"5a1481a7-df23-4830-a453-0fff21be0385"],
Cell[6916, 182, 1575, 39, 70, "Usage",ExpressionUUID->"ac29db92-7fae-4bae-9dfe-fb51f5e45ad4"]
}, Open  ]],
Cell[CellGroupData[{
Cell[8528, 226, 1444, 34, 70, "NotesSection",ExpressionUUID->"ae608f5c-15e9-4a3b-bb7d-abab9e65b484",
 CellGroupingRules->{"SectionGrouping", 50},
 CellID->1446610254],
Cell[9975, 262, 655, 15, 70, "Notes",ExpressionUUID->"ad4461dd-4842-4e55-949b-72836d4e8c05"],
Cell[10633, 279, 1113, 29, 70, "Notes",ExpressionUUID->"c8b69929-2c45-4fbb-9966-8d112ea27ebe"],
Cell[11749, 310, 308, 6, 70, "Notes",ExpressionUUID->"7c8d1c89-f1d5-47d5-87ee-09b95ed02c7f"],
Cell[12060, 318, 723, 16, 70, "Notes",ExpressionUUID->"388edaba-191e-4b46-95b6-4d062d83590c"],
Cell[12786, 336, 784, 15, 70, "Notes",ExpressionUUID->"3ddeaf32-78a7-4a29-bdf4-c449ed28e208"],
Cell[13573, 353, 197, 3, 70, "Notes",ExpressionUUID->"3b526122-b002-4588-bc39-704b5d42b264"]
}, Closed]],
Cell[13785, 359, 80, 0, 70, "PageDelimiter",ExpressionUUID->"808802cf-506a-43b7-ad32-b753038e2fbc"],
Cell[CellGroupData[{
Cell[13890, 363, 1401, 37, 70, "PrimaryExamplesSection",ExpressionUUID->"a0afbce4-13ef-4c3c-a384-6e665762e0c9",
 CellID->1516171291],
Cell[15294, 402, 216, 4, 70, "Input",ExpressionUUID->"2f6f6e04-d1e4-423a-b90f-ef96e5dc945e",
 CellID->1969679695],
Cell[CellGroupData[{
Cell[15535, 410, 1235, 31, 70, "ExampleSection",ExpressionUUID->"69bbe028-7a20-45c8-ad96-7114b9cf16fe",
 CellID->249932535],
Cell[16773, 443, 121, 0, 70, "ExampleText",ExpressionUUID->"cdf9c6c0-c167-4d13-ac58-33a941686935"],
Cell[CellGroupData[{
Cell[16919, 447, 668, 15, 70, "Input",ExpressionUUID->"9bc7191c-5669-432c-812e-174fce5c500d"],
Cell[17590, 464, 120, 1, 70, "Output",ExpressionUUID->"bf28454e-506a-4738-bcbe-96a752ef0219"]
}, Open  ]]
}, Open  ]]
}, Open  ]],
Cell[17749, 470, 2645, 68, 70, "SeeAlsoSection",ExpressionUUID->"5502421a-3b17-4670-96a3-fef2df98586d"],
Cell[20397, 540, 740, 19, 70, "MoreAboutSection",ExpressionUUID->"571751f2-43af-4ee2-b7b5-d18a160c9ec3"],
Cell[21140, 561, 78, 0, 70, "FooterCell",ExpressionUUID->"c9259ebd-0279-43c3-a1ae-582e9b939565"]
}
]
*)

(* End of internal cache information *)

