Page 28 - 4394
P. 28

блоком  мережі  Фейстеля,  завжди  вибирають  нелінійною  й
         практично у всіх випадках необоротною.
                 Структура  мережі  Фейстеля  зображена  на  рисунку  3.2.  Вона
         основана  на  тому,  що логічна  функція  XOR,  або  сумування  за

         модулем  2  з  позначенням  ,  є  інволютивною  операцією.  Це
         означає, що  застосування  функції  XOR   двічі з одним і тим самим

         аргументом дає вихідний результат. Тобто

                               (A Xor B) Xor B = A  B  B = A  0 = А.

                 Звідси випливає, що можна будувати довгі ланцюги  XOR  з
         різними аргументами типу

                               F = A Xor B Xor C Xor D Xor E,

         і  якщо  потім  застосувати  цю  функцію  у  зворотному  порядку,  то
         отримаємо знову А:


                                      F Xor E Xor D Xor C Xor B = A.
                 Нехай  тепер  X   -  блок  даних.  Запишемо  його  у  вигляді  двох
                                     0
         підблоків однакової довжини лівого L  та правого R : X  = (L , R ).
                                                                                       0
                                                                                  0
                                                              0
                                                                                               0
                                                                                                    0
         Тоді у результаті першого раунду (ітерації) мережі Фейстеля (див.
         рисунок 3.2, а) отримаємо:
                                      X  = (R , F(R , К )  L ),
                                                0
                                                        0
                                                             0
                                        1
                                                                     0
         а після виконання і-го раунду, i =  1, 2 , …, n :
                                      L  = R   F(L  , K ) ,
                                                                i-1
                                              i-1
                                        i
                                                         i-1
                                      R  = L  .
                                        i
                                              i-1
         Тут n – загальна кількість всіх раундів.




























                                                                 28
   23   24   25   26   27   28   29   30   31   32   33