public DifferentialAnalyser(ISPNCipher spn) { _spn = spn; _generator = new PlainTextGenerator(_spn.BlockLength); Table = new DistributionTable(spn.Substitution); _characteristics = new List <DifferentialCharacteristic>(); }
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"); }