private string F(string input) //Функция F { string output = Logics.CyclicShiftRight(input.Substring(0, 8), 3) + Logics.XOR(input.Substring(15, 8), input.Substring(16, 8)) + Logics.CyclicShiftLeft(input.Substring(8, 8), 5) + Logics.NOT(input.Substring(24, 8)); return(output); }
private string KeyToNextRound(int i) //Вычисление ключа для следующего раунда { string key = ""; string KeyCSR = ""; if (crypt) { KeyCSR = Logics.CyclicShiftRight(Key, (i + 1) * 3); } else { KeyCSR = Logics.CyclicShiftRight(Key, (quantityOfRounds - i) * 3); } for (int j = 0; j < Key.Length; j++) { if (j % 2 == 1) { key += KeyCSR[j]; } } return(key); }