Skip to main content
LibreTexts - Ukrayinska

16.3: Транспонування шифрів

  • Page ID
    66154
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)

    Ще один підхід до криптографії - транспонування шифру.

    Транспонування шифрів

    Транспозиційний шифр - це той, в якому порядок символів змінюється, щоб затемнити повідомлення.

    Картинка коси, паличка з обгорнутою навколо неї смужкою паперу кілька разів.Ранньою версією транспозиційного шифру був Scytale [1], в якому папір обертали навколо палички і написано повідомлення. Після розгортання повідомлення буде нечитабельним, доки повідомлення не буде знову обернуто навколо палички того ж розміру.

    Один сучасний транспозиційний шифр робиться шляхом написання повідомлення рядками, потім формування зашифрованого повідомлення з тексту в стовпцях.

    Приклад 6

    Зашифруйте повідомлення «Знайомтеся спочатку і Сосна опівночі», використовуючи рядки довжиною 8 символів.

    Рішення

    Пишемо повідомлення рядами по 8 символів в кожному. Нісенітниці символи додаються в кінці, щоб завершити останній ряд.

    \(\mathrm{MEETATFI}\)

    \(\mathrm{RSTANDPI}\)

    \(\mathrm{NEATMIDN}\)

    \(\mathrm{IGHTPXNR}\)

    Потім ми могли б закодувати повідомлення, записуючи стовпці. Перший стовпець, читаючи вниз, буде MRNI. Всі разом, закодоване повідомлення буде MRNI ESEG ETAH TATT ANMP TDIX FPDN IINR. Прогалини будуть видалені або переміщені, щоб приховати розмір використовуваної таблиці, оскільки це ключ шифрування в цьому повідомленні.

    Приклад 7

    Розшифруйте повідомлення CEE IAI MNL NOG LTR VMH NW за допомогою методу вище з таблицею з рядками по 5 символів.

    Рішення

    Так як всього налічується 20 символів і кожен рядок повинен мати 5 символів, то будуть\(20/5 = 4\) рядки.

    Починаємо писати, ставлячи перші 4 літери, ЦЄІ, вниз по першій колонці.

    \(\mathrm{CALLM}\)

    \(\mathrm{EINTH}\)

    \(\mathrm{EMORN}\)

    \(\mathrm{INGVW}\)

    Тепер ми можемо прочитати повідомлення: ЗАТЕЛЕФОНУЙТЕ МЕНІ ВРАНЦІ VW. VW, швидше за все, дурниці символів, які використовуються для заповнення повідомлення.

    Більш складні версії цього шифру транспозиції на основі рядків і стовпців можна створити, вказавши порядок, в якому стовпці повинні бути записані. Наприклад, метод міг вказати, що після запису повідомлення в рядках слід записати третій стовпець, то четвертий, то перший, потім п'ятий, потім другий. Це додає додаткової складності, яка ускладнить атаку грубою силою.

    Щоб ключ шифрування було легше запам'ятовувати, можна використовувати слово. Наприклад, якщо ключовим словом було «ГРОШІ», воно вказувало б, що рядки повинні мати по 5 символів. Порядок букв в алфавіті буде диктувати, в якому порядку читати стовпці в. Оскільки Е, 4-а буква в слові, є найдавнішою літерою алфавіту зі слова ГРОШІ, спочатку буде використано 4-й стовпець, а потім 1-й стовпець (M), 3-й стовпець (N), 2-й стовпець (O) та 5-й стовпець (Y).

    Приклад 8

    Зашифруйте повідомлення КУПУЙТЕ ТРОХИ МОЛОКА ТА ЯЙЦЯ, використовуючи транспозиційний шифр з ключовим словом MONEY.

    Рішення

    Виписуємо повідомлення рядками по 5 символів:

    \(\mathrm{BUYSO}\)
    \(\mathrm{MEMIL}\)
    \(\mathrm{KANDE}\)
    \(\mathrm{GGSPK}\)

    Тепер записуємо стовпці в порядку 4 1 3 2 5:

    КОВЗАННЯ BMKG ІМНС ЙОГ ОЛЕК

    Як і раніше, ми потім видаляємо або переміщуємо пробіли, щоб приховати докази ключа шифрування.

    Спробуйте зараз 3

    Зашифруйте повідомлення «Зміцнити посольство» за допомогою транспозиційного шифру з ключовим словом HELP

    Відповідь

    HELP дає порядок стовпців 2 1 3 4.

    \(\mathrm{FORT}\)

    \(\mathrm{IFYT}\)

    \(\mathrm{HEEM}\)

    \(\mathrm{BASS}\)

    \(\mathrm{YPLR}\)

    Зашифрований текст: OFE APF IHB YRY ESL TTM SR

    Щоб розшифрувати шифр транспозиції на основі ключових слів, ми скасуємо процес. У наведеному вище прикладі ключове слово MONEY говорить нам почати з 4-го стовпця, тому ми почнемо з написання SIDP вниз 4-й стовпець, а потім перейдіть до 1-го стовпця, 3-го стовпця тощо.

    Приклад 9

    Розшифрувати повідомлення RHA VTN USR EDE AIE RIK ATS OQR за допомогою шифру транспозиції рядків і стовпців з ключовим словом PRIZED.

    Рішення

    Ключове слово PRIZED говорить нам використовувати рядки з 6 символами. Оскільки D стоїть першим в алфавіті, ми починаємо з 6-го стовпця. Оскільки E є наступним в алфавіті, ми будемо слідувати з 5-го стовпця. Продовжуючи, слово PRIZED говорить нам, що повідомлення було записано зі стовпцями в порядку 4 5 3 6 2 1.

    Для розшифровки налаштовуємо таблицю з 6 символами в кожному рядку. Оскільки початок зашифрованого повідомлення прийшло з останнього стовпця, ми починаємо записувати зашифроване повідомлення в останній стовпець.

    \ (\ begin {масив} {|l|l|l|l|}
    \ лінія & & & & &\ mathrm {R}
    \\ лінія & & & &\ mathrm {H}
    \\\ лінія & & & &\ mathrm {A}
    \\ hline & & &\ mathrm {V}\
    \ hline
    \ end {масив}\)

    П'ятий стовпець був другим, з якого було прочитано зашифроване повідомлення, так і наступний, до якого ми пишемо.

    \ (\ begin {масив} {|l|l|l|l|}
    \ лінія & & &\ математика {T} &\ математика {R}\\
    \ лінія & & & &\ mathrm {N} &\ mathrm {H}
    \\ hline & & &\ mathrm {U} &\ mathrm {A}
    \\ hline & & &\ математика {S} &\ mathrm {V}\
    \ рядок
    \ кінець {масив}\)

    Продовжуючи, ми можемо заповнити решту повідомлення.

    \ (\ почати {масив} {|l|l|l|l|l|l|}
    \ рядок\ математика {A} &\ математика {I} &\ математика {R} &\ mathrm {S} &\ mathrm {T} &\ mathrm {R}\\ hline
    \ mathrm {I} &\ mathrm {K} математика {E} &\ mathrm {O} &\ mathrm {N} &\ mathrm {H}\
    \ hline\ mathrm {E} &\ математика {A} &\ математика {D} &\ математика {Q} &\ mathrm {U} &\ mathrm {A}\
    \ mathrm {R} &\ mathrm {T} &\ mathrm {E} &\ mathrm {R} &\ mathrm {S} &\ mathrm {V}\\ hm лінія

    \ end {масив}\)

    Читання через рядки дає наше розшифроване повідомлення: AIRSTRIKEONHEADQUARTERSV

    На жаль, оскільки транспозиційний шифр не змінює частоту окремих літер, він все ще сприйнятливий до частотного аналізу, хоча транспозиція дійсно усуває інформацію з пар літер.


    [1] uk.wikipedia.org/Wiki/Файл: Скайтала% 26 Порожня смужка.png