private void Init() { l0 = Utills.StickedBinaryMsg(msg.Substring(0, msg.Length / 2)); //L0 (32 бит) r0 = Utills.StickedBinaryMsg(msg.Substring(msg.Length / 2, msg.Length / 2)); //R0 (32 бит) x0 = Utills.StickedBinaryMsg(k); //X0 (32 бит), ключ R0X0sum32 = Utills.Modulo2Pow32(r0, x0); //Сумма блоков R0 и X0 по модулю 2 в степени 32 resBlocks = func(R0X0sum32); //Преобразование с помощью блока подстановки sdvig11 = Utills.Shift(resBlocks, -11); // сдвиг на 11 бит влево, f(R0, X0) res = Utills.Modulo2(l0, sdvig11); //Результат (R1): сумма по модулю 2 L0 и f(R0, X0) }
private void Init() { l0 = Utills.StickedBinaryMsg(message.Substring(0, message.Length / 2)); //Блок L0 (32 бит) r0 = Utills.StickedBinaryMsg(message.Substring(message.Length / 2, message.Length / 2)); //Блок R0 (32 бит) x0 = Utills.StickedBinaryMsg(key); //Блок ключа X0 (32 бит) sumR0AndX0 = Utills.Modulo2Pow32(r0, x0); //Сложение блоков R0 и X0 по модулю 2^32 filled = Function(sumR0AndX0); //Преобразование в блоке подстановки f = Utills.Shift(filled, -11); //f(R0, X0), сдвиг на 11 бит влево r1 = Utills.Modulo2(l0, f); //Результат R1: сложение по модулю 2 блоков L0 и f(R0, X0) }
private void Init() { var r0_str = message.Substring(message.Length / 2, message.Length / 2); r0 = Utills.StickedBinaryMsg(r0_str); var x0_str = key; x0 = Utills.StickedBinaryMsg(x0_str); fR0X0 = Utills.Modulo2Pow32(r0, x0); filled = SubstituteElements(fR0X0); shifted = Utills.Shift(filled, -11); var l0_str = message.Substring(0, message.Length / 2); l0 = Utills.StickedBinaryMsg(l0_str); r1 = Utills.Modulo2(l0, shifted); }