число, яке визначає номер рядка (рядки нумерують від 0 до 3);
решта 4 біти аргументу х визначають номер стовпця (стовпці нумерують від 0 до 15);
на перетині таким способом визначених рядка й стовпця буде число, яке і є шуканим значенням функції.
Наприклад, для аргументу 110110 (рядок 2, стовпець 11), отримуємо результат 7.
На практиці використовують S-блоки з назвами SI, S2,...,S8.
За допомогою S-блоків можна реалізувати ефект лавини - зміна окремого біта в явному тексті призводить до лавини змін у криптограмі. Оскільки S-блоки застосо-вують до бітів (х1, х2, хЗ, х4, х5, х6), то зміна х1 або х6 зумовлює зміну номера рядка, а рядки не відповідають один одному. Подібне явище маємо й щодо стовпців. Коли S-блоки застосовують багаторазово, тоді ефект лавини посилюється.
Властивості, що їх повинні задовольняти S-блоки, такі:
кожний рядок S-блока використовує всі цілі числа від 0 до 15. Ця властивість гарантує, що знання лише рядка не дає жодної інформації про остаточне зна-чення;
функція, що реалізує дію S-блока, не є афінним перетворенням. Це означає, що ніякий біт результату не можна подати у вигляді , де хі означає і-й біт аргументу, а арифметичні операції виконуються за модулем 2;*
зміна одного біта аргументу змінює принаймні два біти результату. Ця влас-тивість повинна забезпечити ефект лавини у випадку багаторазового застосу-вання S-блоків.
Перестановки
Нехай відображення р : У ---> У є перестановкою, а У - множиною використову-ваних літер. Явний текст at,a2,.--,an (aj є У ) шифрують як послідовність р(а1) р(а2)... р(аn)
У цьому випадку криптограму розшифровують як послідовність р-1(а1) р-1(а2)... р-1(аn)
Ця система шифрування полягає в переставлянні літер явного тексту, на практиці І не застосовують, бо частоти появлення літер у криптограмі й у явному тексті одна-кові. З цього погляду такий спосіб шифрування треба трактувати або як історичну техніку, або як допоміжний елемент складніших методів.
Матричний шифр.
Явний текст записують послідовно рядок за рядком у матрицю. Літери криптограми виписують з цієї ж матриці по стовпцях. Черговість стовпців визначена ключем шифру. Крім того, можна використати два ключі - як для рядків, так і для стовпців.
Розглянемо приклад. Текст припиніть скуповувати акції з ключем для стовпців біржа перетвориться в криптограму исвиїпнкуапьотіріувкитпац. Процес шифрування пояснює наведена нижче матриця:
Цей же текст з ключами для рядків товар і для стовпців біржа перетвориться в криптограму ивсїиукнаптоьіпвуікраптци. Процес шифрування пояснюють наведені нижче таблиці:
Загалом шифр перестановки з періодом l виконує переставляння l літер у певний спосіб, визначений ключем (кількість можливих ключів дорівнює l!). Ключі можна записати у вигляді таблиці, яка відображає, що перша літера кожного блока явного тексту займає в криптограмі позицію і1, друга - позицію і2, .., l-та позицію іl. Наприклад, при 1=4 шифр перестановки з ключемвідобразить текст українська мова дуже милозвучна в криптограму аркуьснїомакудавимежвзоланчу.
Дешифрування текстів, утворених шифрами перестановки, грунтується на аналізі частот появлення пар літер. Наприклад, нехай маємо криптограму іркуьтіпизопзїіцулит і знаємо, що l= 4.
Розділимо криптограму на блоки довжини 4 і запишемо у вигляді
Криптоаналіз полягає в перестановці стовпців і ґрунтується на тому факті, що деякі пари літер практично не трапляються в українській мові. Бачимо, що не можуть бути поряд: стовпці 1 і 4 (бо опиняться поряд літери i та у), 1 і 3 (и та о), 2 і 4 (ї та ц). Отримуємо два можливі варіанти розташування стовпців: (1,2,3,4), що відповідає зашифрованому тексту, та (4, 3, 2, 1).
Останній варіант дає нам явний текст укріпіть позиції з тилу.
Шифр ADFGVX (шифр першої світової війни).
У шифрі використовують комбінацію двох способів шифрування: підстановку й перестановку. Спочатку виконують таку підстановку. Кожну літеру латинської абетки або цифру від 0 до 9 шифровано блоками довжини 2, які складаються з літер A, D, F, G, V і X на підставі таблиці розміру 6x6 (табл. 1.8).
Потім до отриманого криптотексту застосовують шифр перестановки - матрич-ний шифр з ключем.
Припустимо, для прикладу, що хочемо зашифрувати текст DON'T PUT IT OFF TILL TOMORROW (HE ВІДКЛАДАЙТЕ ЦЕ ДО ЗАВТРА). Із табл. 1.8 отримуємо
FXADFAXGVAGXXGGFXGADAVAVXGGFFFFFXGADDAADVXVXADFD.
Отримуємо криптограму
XGGDGFAXDAFVFGDDFGXAFAVFFXXAXFDVAXGVFDXDAVGAGXAA.
Зазначимо, що всі розглянуті вище класичні техніки шифрування (підстановки й перестановки) сьогодні як самостійні шифри втратили значення. Є багато програм для зламування цих шифрів. Класичні техніки шифрування (крім того, що вони цікаві для істориків крипто-графії) становлять інтерес з двох причин. По-перше, з них варто починати вивчення криптографії, бо такими шифрами можна порівняно просто проілюструвати головні по-няття криптографії. По-друге, ці техніки можуть бути складовими частинами серйозні-ших сучасних систем шифрування.