Метод гамування
Автор: 86349572305 • Апрель 5, 2021 • Реферат • 1,104 Слов (5 Страниц) • 335 Просмотры
Метод гамування
Ще одним окремим випадком багатоалфавітної підстановки є гамування. У цьому способі шифрування виконується шляхом складання символів початкового тексту і ключа по модулю, рівному числу букв в алфавіті. Якщо в початковому алфавіті, наприклад, 33 символи, то складання проводиться по модулю 33. Такий процес складання початкового тексту і ключа називається в криптографії накладенням гами.
Хай символам початкового алфавіту відповідають числа від 0 (А) до 32 (Я). Якщо позначити число, відповідне початковому символу, x, а символу ключа – к, то можна записати правило гамування таким чином:
[pic 1]
де z – закодований символ, N – кількість символів в алфавіті, а складання по модулю N – операція, аналогічна звичайному складанню, з тією відмінністю, що якщо звичайне підсумовування дає результат, більший або рівний N, то значенням суми вважається залишок від ділення його на N. Наприклад, хай складемо по модулю 33 символи Г (3) і Ю (31):
3 + 31 (mod 33) = 1,
тобто в результаті отримуємо символ Б, відповідний числу 1.
Приклад. Відкритий текст: «ПРИКАЗ» («16 17 09 11 01 08» – номера літер в російському алфавіті).
Гама: «ГАММА» («04 01 13 13 01»).
Операція: складання по mod 33.
у1=16+4(mod 33)=20 y4=11+13(mod 33)=24
у2=17+1(mod 33)=18 y5=1+1(mod 33)=2
у3=9+13(mod 33)=22 y6=8+4(mod 33)=12
Шифртекст: «УСХЧБЛ» («20 18 22 24 02 12»).
Найчастіше на практиці зустрічається двійкове гамування. При цьому використовується двійковий алфавіт, а складання проводиться по модулю два. Операція складання по модулю 2 часто позначається [pic 2], тобто можна записати:
[pic 3].
Операція складання по модулю два в алгебрі логіки називається "АБО, що виключає " або по-англійськи XOR.
Приклад. Припустимо, нам необхідно зашифрувати десяткове число 14 методом гамування з використанням ключа 12. Для цього спочатку необхідно перетворити початкове число і ключ (гамму) в двійкову форму: 14(10)=1110(2), 12(10)=1100(2). Потім треба записати отримані двійкові числа один під одним і кожну пару символів скласти по модулю два. При складанні двох двійкових знаків виходить 0, якщо початкові двійкові цифри однакові, і 1, якщо цифри різні:
[pic 4]
Складемо по модулю два двійкові числа 1110 і 1100:
Початкове число 1 1 1 0
Гамма 1 1 0 0
Результат 0 0 1 0
В результаті складання отримали двійкове число 0010. Якщо перевести його в десяткову форму, отримаємо 2. Таким чином, в результаті застосування до 14 операції гамування з ключем 12 отримуємо в результаті число 2.
Яким же чином виконується розшифровування? Зашифроване число 2 представляється в двійковому вигляді і знову проводиться складання по модулю 2 з тим же ключем:
Зашифроване число 0 0 1 0
Гамма 1 1 0 0
Результат 1 1 1 0
Переведемо отримане двійкове значення 1110 в десятковий вигляд і отримаємо 14, тобто початкове число.
Таким чином, при гамуванні по модулю 2 потрібно використовувати одну і ту ж операцію як для шифрування, так і для розшифровування. Це дозволяє використовувати один і той же алгоритм, а відповідно і одну і ту ж програму при програмній реалізації, як для шифрування, так і для розшифровування.
Операція складання по модулю два дуже швидко виконується на комп'ютері (на відміну від багатьох інших арифметичних операцій), тому накладення гами навіть на дуже великий відкритий текст виконується практично миттєво.
Завдяки вказаним перевагам метод гамування широко застосовується в сучасних технічних системах сам по собі, а також як елемент комбінованих алгоритмів шифрування.
Сформулюємо, як проводиться гамування по модулю 2 в загальному випадку:
· символи початкового тексту і гама представляються в двійковому коді і розташовуються один під іншим, при цьому ключ (гамма) записується стільки раз, скільки буде потрібно;
· кожна пара двійкових знаків складається по модулю два;
· отримана послідовність двійкових знаків кодується символами алфавіту відповідно до вибраного коду.
...