public DifferentialAnalyser(ISPNCipher spn)
 {
     _spn             = spn;
     _generator       = new PlainTextGenerator(_spn.BlockLength);
     Table            = new DistributionTable(spn.Substitution);
     _characteristics = new List <DifferentialCharacteristic>();
 }
示例#2
0
        static void AnalyseSPN(ISPNCipher spn)
        {
            Console.WriteLine("\tDIFFERENTIAL ANALYSIS OF " + spn.Name.ToUpper());
            DifferentialAnalyser analyser = new DifferentialAnalyser(spn);

            Console.WriteLine("\r\n\tDifference Distribution Table of " + spn.Name);
            Console.WriteLine(analyser.Table);

            DifferentialCharacteristic characteristic = analyser.CreateCharacteristic();

            Console.WriteLine("\r\n\tFound Differential Characteristic: ");
            Console.WriteLine("\t" + characteristic);

            int partialKey = analyser.Analyse();

            Console.WriteLine("\r\n\tFound Partial Key: ");
            WriteInBinary(partialKey);

            Console.WriteLine("\r\n\tDIFFERENTIAL ANALYSIS OF " + spn.Name.ToUpper() + " HAS COMPLETED\r\n\r\n");
        }