Beispiel #1
0
        private void LoadKey_Click(object sender, RoutedEventArgs e)
        {
            string path = LoadFile();

            KeyFile.Text = path;
            listKey      = Key.GenerateKey(HelpDES.GetBinaryArrayFromFile(path, 8));
        }
Beispiel #2
0
        /// <summary>
        /// Zwraca tablice bitów o długości okreslonej w parametrze.
        /// </summary>
        /// <param name="number"></param>
        /// <param name="length"></param>
        /// <returns></returns>
        public static BitArray NumberToBinary(int number, int length)
        {
            BitArray b = new BitArray(new int[] { number });

            HelpDES.Reverse(b);
            BitArray outArray = new BitArray(length);

            for (int i = 0; i < length; i++)
            {
                outArray[i] = b[(b.Length - length) + i];
            }
            return(outArray);
        }
Beispiel #3
0
        public static List <BitArray> GenerateKey(BitArray keyIn)
        {
            BitArray        cArray = new BitArray(28);
            BitArray        dArray = new BitArray(28);
            List <BitArray> keyOut = new List <BitArray>();

            keyIn = HelpDES.Permute(keyIn, PC1, 56);   //teraz ma rozmiar 56
            HelpDES.CutInHalf(keyIn, cArray, dArray);
            for (int i = 0; i < 16; i++)
            {
                LeftShifts(cArray, LEFT_SHIFTS_ARRAY[i]);
                LeftShifts(dArray, LEFT_SHIFTS_ARRAY[i]);
                keyOut.Add(HelpDES.Permute(HelpDES.Connect(cArray, dArray), PC2, 48));
            }
            return(keyOut);
        }