Exemplo n.º 1
0
 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)
 }
Exemplo n.º 2
0
 private void Init()
 {
     msgBinary         = Utills.StickedBinaryMsg(message);
     sbstMsg           = PermuteElements(msgBinary, permuteTable1);
     l                 = sbstMsg.Substring(0, sbstMsg.Length / 2);
     r                 = sbstMsg.Substring(sbstMsg.Length / 2, sbstMsg.Length / 2);
     extendedBlockR    = ExtendBlockSize(r);
     keyBinary         = dropBits(Utills.StickedBinaryMsg(key));
     sumKeyAndExtR     = Utills.Modulo2(extendedBlockR, keyBinary, 48);
     anotherSubstitute = SBlockSubstitution(sumKeyAndExtR, sBlockTable);
     concatRAndL       = string.Concat(anotherSubstitute + l);
     substSum          = PermuteElements(concatRAndL, permuteTable2);
 }
Exemplo n.º 3
0
 private void Init()
 {
     msg2      = Utills.StickedBinaryMsg(msg);                           //Входное сообщение в двоичном виде.
     perMsg    = PermuteElements(msg2, Table1);                          //Начальная перестановка
     l         = perMsg.Substring(0, perMsg.Length / 2);                 //Блок L
     r         = perMsg.Substring(perMsg.Length / 2, perMsg.Length / 2); //Блок R
     exr       = r4to6(r);                                               //Расширение подблоков R
     k2        = keyTo48(Utills.StickedBinaryMsg(k));                    //Уменьшение 64-битного исходного ключа до 48-бит
     summKAndR = Utills.Modulo2(exr, k2, 48);                            //Сумма расширенного блока R0 с блоком ключа по модулю 2
     s         = SBlockSubstitution(summKAndR, sElements);               //S-преобразование
     pAndL     = string.Concat(l + PermuteElements(s, pElements));       //P-преобразование и L
     res       = PermuteElements(pAndL, Table2);                         //Конечная перестановка
 }
Exemplo n.º 4
0
 private void Init()
 {
     msgBinary      = Utills.StickedBinaryMsg(message);                          //Входное сообщение в двоичном виде.
     sbstMsg        = PermuteElements(msgBinary, Table1);                        //Начальная перестановка
     l              = sbstMsg.Substring(0, sbstMsg.Length / 2);                  //Блок L
     r              = sbstMsg.Substring(sbstMsg.Length / 2, sbstMsg.Length / 2); //Блок R
     extendedBlockR = ExtendBlockSize(r);                                        //Расширение подблоков R
     keyBinary      = dropBits(Utills.StickedBinaryMsg(key));                    //Уменьшение 64-битного исходного ключа до 48-бит
     sumKeyAndR     = Utills.Modulo2(extendedBlockR, keyBinary, 48);             //Сумма расширенного блока R0 с блоком ключа по модулю 2
     sBlock         = SBlockSubstitution(sumKeyAndR, sBlockTable);               //S-преобразование
     pBlockAndL     = string.Concat(l + PermuteElements(sBlock, permutePBlock)); //P-преобразование и L
     result         = PermuteElements(pBlockAndL, Table2);                       //Конечная перестановка
 }
Exemplo n.º 5
0
        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);
        }