private void LoadKey_Click(object sender, RoutedEventArgs e) { string path = LoadFile(); KeyFile.Text = path; listKey = Key.GenerateKey(HelpDES.GetBinaryArrayFromFile(path, 8)); }
/// <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); }
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); }