using System.Collections.Generic;
static string alpha = "abcdefghijklmnopqrstuvwxyz";
static string cipher = "RYIBPCARRRWERYBRMPEERXXIOMWTNFZRRYBMZCHNDPXHDZTPDVVHWUTLTTENUCGY".ToLower();
static string crib = "lincoln";
public static void Main()
var length = cipher.Length - crib.Length;
var poly = GetPolyDict();
for (int i = 0; i < length; i++)
Console.WriteLine("---------------------------------");
for (int j = 0; j < crib.Length; j++)
poly.TryGetValue(b, out ap);
Console.WriteLine(String.Format("Cipher: {0} Crib: {1} E: {2}", a, b, d));
Console.WriteLine("Key: " + key);
public static Dictionary<char, string> GetPolyDict()
var poly = new Dictionary<char, string>();
poly.Add('l', "LMNOPQRSTUVWXYZABCDEFGHIJK".ToLower());
poly.Add('i', "IJKLMNOPQRSTUVWXYZABCDEFGH".ToLower());
poly.Add('c', "CDEFGHIJKLMNOPQRSTUVWXYZAB".ToLower());
poly.Add('o', "OPQRSTUVWXYZABCDEFGHIJKLMN".ToLower());
poly.Add('n', "NOPQRSTUVWXYZABCDEFGHIJKLM".ToLower());