示例#1
0
        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);
        }
示例#2
0
        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);
        }