Changeset 323


Ignore:
Timestamp:
May 25, 2009, 11:52:41 AM (13 years ago)
Author:
Danail Vazov
Message:

Replaced the IntegerValue output with an Array output. This output is used in VigenereAnalyser.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/KasiskiTest/KasiskiTest.cs

    r221 r323  
    2525
    2626        #region Private Variables
    27         private int integerValue;
     27        private int [] integerArray;
    2828        private string stringOutput;
    2929        private string stringInput;
     
    3232        #region Properties (Inputs/Outputs)
    3333
    34         [PropertyInfo(Direction.Input, "The string to be analyzed", "blablah", "", true, true, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
     34        [PropertyInfo(Direction.Input, "The string to be analyzed", "The input string should be a cipher text encrypted using the Vigenere cipher.", "", true, true, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
    3535        public string StringInput
    3636        {
     
    4242        }
    4343       
    44         [PropertyInfo(Direction.Output, "Integer value.", "The last generated ineteger value.", "",false , false, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
    45     public int IntegerValue
    46     {
    47         get { return integerValue; }
     44        [PropertyInfo(Direction.Output, "Integer Array", "An Array containing proposed keylengths as integers. Used by the VigenereAnalyser.", "",true , true, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
     45        public int [] IntegerArray
     46        {
     47        get { return integerArray; }
    4848        set
    4949        {
    50             if (value != integerValue)
    51             {
    52                 integerValue = value;
    53                 OnPropertyChanged("IntegerValue");
     50            if (value != integerArray)
     51            {
     52                integerArray = value;
     53                OnPropertyChanged("IntegerArray");
    5454            }
    5555        }
     
    5757     
    5858   
    59         [PropertyInfo(Direction.Output, "The string to be outputed", "blablah", "", true, true, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
     59        [PropertyInfo(Direction.Output, "Multiples of the keylength and the amount of times they are encountered.", "Keylength is either the most common factor, or a multiple of it.", "", true, true, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
    6060        public string StringOutput
    6161        {
     
    146146                   //CASE SENSITIVITY
    147147
    148                 if (settings.caseSensitivity == 0) { workstring2=workstring2.ToUpper(); }                         
    149                
    150                
    151                
    152                
    153                 //int grammLength = 3; - Setting for maximum gramm length now avaliable in Settings Panel
     148                if (settings.caseSensitivity == 0)
     149                {
     150                    workstring2=workstring2.ToUpper();
     151                }                         
    154152                ArrayList checkedGramms = new ArrayList();
    155153                ArrayList distances = new ArrayList();
    156 
    157                 int g = 0;
    158154                string grammToSearch;
    159155
     
    173169                        grammToSearch = workstring2.Substring(i, d);   //  get every gramm(substring) with gramLength from Settings
    174170
    175 
    176                         //if (g <= checkedGramms.Length - 1)    //
    177                         //{
    178 
    179                            
    180171                            for (int n = i + settings.grammLength; n <= workstring2.Length - settings.grammLength; n++)  //go through workString starting after the end of the taken grammToSearch
    181172                            {
     
    190181
    191182                            }
    192                         //}
    193183                       
    194184                    }
     
    202192                //TODO: SPEED !@#$%^& !!!
    203193
    204                              
    205                
    206                
    207                 //int[] copyOfDistances = distances.GetType(); //Copy distances to find largest member
    208                 //Array.Copy(distances, copyOfDistances, distances.Length);
    209                 //Array.Sort(copyOfDistances);
    210                 //int sqrtOfLargestDist = Convert.ToInt32(Math.Sqrt(copyOfDistances[copyOfDistances.Length - 1])); //sqrtOf largest distance will give the maximum number of prime factors of the distance for example if the distance is a power of 2 which is the worst case
    211194                int x=0;
    212195
     
    239222
    240223                }
     224                integerArray = factorCounter;
     225                OnPropertyChanged("IntegerArray");
     226
    241227                Data.ValueCollection.Clear();
    242228                double bigestheight = factorCounter[2];
     
    248234                    }
    249235                }
    250                 
     236               
    251237                for (int n = 2; n <= factorCounter.Count()-1; n++)
    252238                {
     
    255241                    Data.ValueCollection.Add(row);
    256242                }
    257                
    258 
     243             
    259244                // OUTPUT
    260245                StringOutput = "";
    261                 for(int i=2; i<=factorCounter.Count()-1; i++)
    262                
    263                 {
    264                     StringOutput +=i+":"+Convert.ToString(factorCounter[i])+Environment.NewLine;
    265                 }
     246                for (int i = 2; i <= factorCounter.Count() - 1; i++)
     247                {
     248                    StringOutput += i + ":" + Convert.ToString(factorCounter[i]) + Environment.NewLine;
     249                    OnPropertyChanged("StringOutput");
     250                }
     251               
    266252                presentation.OpenPresentationFile();
    267 
    268              //   for (int k = 0; k <= checkedGramms.Count - 1; k++)
    269              //   {
    270              //       if (Convert.ToInt32(distances[k] )!= 0)
    271              //       { StringOutput += checkedGramms[k] + "/" + Convert.ToString(distances[k]);
    272              //         for (int l = 0; l <= settings.factorSize /*sqrtOfLargestDist */ - 1; l++)
    273              //           {
    274              //               if (factors[k, l] != 0) { StringOutput += "/" + Convert.ToString(factors[k, l]); }
    275 ///
    276           //              }
    277           //              StringOutput += '\n';
    278           //          }
    279           //         
    280            //     }   
    281            //     
    282                 //find the most frequent factor
    283               //  int biggestSoFar=0;
    284               //  int biggestSoFarIndex=0;
    285              // 
    286              //   for (int j = 0; j <= factorCounter.Length - 1; j++)
    287               //  {
    288               //      if (factorCounter[j] > biggestSoFar)
    289                //     {
    290                 //       
    291                 //        biggestSoFar = factorCounter[j];
    292                 //        biggestSoFarIndex = j;
    293                 //    }
    294                //     
    295                // }
    296                // if (biggestSoFarIndex % 2 == 0)
    297                // {
    298                //     StringOutput += '\n' + "The probable keylength is a multiple of: " + biggestSoFarIndex ;
    299                /// }
    300                // else
    301                // {
    302            //
    303               //      StringOutput += '\n' + "most frequent factor is:" + biggestSoFarIndex + '\n' + "with: " + biggestSoFar + " hits";
    304              //   }
    305              //   integerValue = biggestSoFarIndex;
     253               
    306254            }
    307255
Note: See TracChangeset for help on using the changeset viewer.