д треба податі переставлені підблокі: L и R поміняті місцямі. Для цього й служити функція SW-Перемикач блоків. p align="justify"> После переставляння підблоків один раунд алгоритмом закінчено.
До переставлених підблоків вновь застосовується циклової функція, як це описано Вище. При іншому віклікові раундової Функції Розширення з перестановками Модулі S0, S1 и P4 залішаються Тімі ж, Тільки вікорістовується підключ К2. p align="justify"> За закінченні іншого раунду віконується IP-1-перестановка, й роботу алгоритму закінчено, тоб на віході маємо зашифрований текст.
2.3.3 програмнного реалізація
Приклад 2.1. Нехай маємо 8-бітовій блок відкритого тексту а = 10010111, зашіфруємо его в Системі S-DЕS з параметрами, Вказаною Вище. p align="justify"> Код програми:
# include
# include
# include
# include namespace std; IP [8] = {2,6,3,1,4,8,5,7};// застосовані перестановки и блокіIP_1 [8 ] = {4,1,3,5,7,2,8,6}; вводяться як масівіP_rozsh [8] = {4,1,2,3,2,3,4, 1}; S_0 [4] [4] = {1,0,3,2,1,2,1,0,0,2,1,3,1,0,3,1}; S_1 [4] [ 4] = {1,1,2,0,2,0,1,3,3,0,1,0,3,1,0,2}; P_4 [4] = {2,4,3,1 }; K [10] = {1,0,1,0,0,1,1,1,1,0}; PK_10 [10] = {3,5,2,7,4,10,1,9 , 8,6}; PK_8 [8] = {6,3,7,4,8,5,10,9}; Shifr_object
{: * Massiv []; * Shifr_a []; razr, r, j, s;: _object (int x);
~ Shifr_object (); F (int a); IP (int a, int k);
}; _object: Shifr_object (int x)
{razr = x; * Shifr_a = new int [razr]; * Massiv = new int [2 * razr];
} _object: ~ Shifr_object ()
{[] Massiv; [] Shifr_a;
} Shifr_object: F (int a)// раундовий функція
{r = a; < = 0; j-) p>
{_a [j] = r% 2; = r/2;
} (j = 0; j <2 * razr; j + +)// перестановка з розширеного
{= P_rozsh [j] - 1; [j] = Shifr_a [r];
} <
{[j] = (Massiv [j] + K [j])% 2;
} = S_0 [Massiv [0] * 2 + Massiv [1]] [Massiv [2] * 2 + Massiv [3]];// блок S_0 [0] = s/2; [1] = s% 2; = S_1 [Massiv [4] * 2 + Massiv [5]] [Massiv [6] * 2 + Massiv [7]];// блок S_1 [2] = s/2; [ 3] = s% 2; <
{= P_4 [j] - 1; _a [j] = Massiv [r]; <
} s;
} Shifr_object: IP (int a, int k)// функція, что реалізує підстановкі
{IР та IР_1r, s, i; = a; i = k; <