예제 #1
0
        private static void CoincidenceKeyLength(string logRootPath, EncodedText et)
        {
            CoincidenceKeyLengthAnalyzer ca            = new CoincidenceKeyLengthAnalyzer(et);
            ILogger coincidenceKeyLengthAnalyzerLogger = new FileLogger(logRootPath + "\\coincidence-key.log");

            ca.Analyze(coincidenceKeyLengthAnalyzerLogger);
        }
예제 #2
0
        static private void Task2Solver(string logRootPath)
        {
            SourceText st  = new SourceText(logRootPath + "\\source.txt", Alphabet.Russian);
            Key        key = ReadKey(logRootPath + "\\key.txt", Alphabet.Russian);

            IEncoder    encoder = new VigenereCode.Core.Crypto.Encoder();
            EncodedText outText = encoder.Encode(st, key);

            outText.WriteFile(logRootPath + "\\result.txt");

            CoincidenceKeyLengthAnalyzer ca            = new CoincidenceKeyLengthAnalyzer(outText);
            ILogger coincidenceKeyLengthAnalyzerLogger = new FileLogger(logRootPath + "\\KasiskiTest.log");

            ca.Analyze(coincidenceKeyLengthAnalyzerLogger);

            //IDecoder decoder = new Decoder();
            //(decoder.Decode(outText, key)).WriteFile(logRootPath + "\\source-back.txt");
        }